aosprey / mckpp-f90

Multi-Column configuration of the K Profile Parameterisation mixed-layer ocean model (F90 version)
GNU General Public License v3.0
2 stars 0 forks source link

MPI parallelisation #14

Open aosprey opened 3 years ago

aosprey commented 3 years ago

Plan for parallelising the code with MPI:

Control code:

Domain decomposition:

Parallel routines:

XIOS:

Parallel netcdf reads:

aosprey commented 3 years ago

What makes the parallelisation tricky is that we want to parallelise over npts but this dimension is contiguous in memory, since the arrays are dimensioned array(npts,nz). Therefore scattering any 2d (or 3d fields) requires extracting non-contiguous chunks of data and packing into a send buffer. If the dimensions were reveresed and nz was contiguous, the scatter could be done with an MPI_scatter routine directly (I think).

It would be better to fix this first #15

aosprey commented 3 years ago

Some progress on parallelisation has been made in the mpi branch.

aosprey commented 3 years ago

We may want to have a data structure to hold global fields (as in CAM routines), e.g. kpp_global_fields.