GEM Considerations
This section discusses some specific considerations for the forthcoming integration of the GEM dynamical core into CanCPL and CanESM.
The current communication strategy used in the GEM-NEMO coupled model used at MRD differs from the current CanESM
coupling. GEM and NEMO exist in their own MPI_COMM_WORLDs and communicate over TCP/IP using the GOSSIP communication
layer (as illustrated in the following figure). This differs from the CanESM coupling paradigm which splits a single
MPI_COMM_WORLD into communicators for each model component.
GEM-NEMO communication topology using TCP/IP based GOSSIP communication layer. Each component exists in its own
separate MPI_COMM_WORLD not just separate MPI communicators.
Additionally, GEM uses the RPN_COMM_LIBRARY which wraps much of the MPI API and deals with most of the MPI
communications within GEM. This includes the splitting of the MPI_COMM_WORLD into separate communicators for the Yin
and Yang submodels which form the global overset grid.
The MPI initialization of GEM will likely need to be modified to conform to the CanESM communication paradigm which
requires a single MPI_COMM_WORLD for all components within the coupled model. Two ways forward have been proposed.
During the initialization of GEM, GEM is responsible for splitting the
MPI_COMM_WORLDinto a GEM and non-GEM set of communicators. Both of those are then passed intodefine_groupsin CanCPL. CanCPL and NEMO during their call todefine_groupssplits the GEM communicator between the two.GEM calls
define_groupsbefore the Yin-Yang grid communicators are split off. This requires relinquishing control from GEM over the entireMPI_COMM_WORLD. This route requires less refactoring of CanCPL than the first option, but is slightly more invasive into the GEM/RPN initialization.