Interfaces with python/PARLA require that the MPI_Init is called from the main executable and not by the TPS::Tps class.
To this aims, this PR introduce the following changes:
Remove the object mfem::MPI_Session from the base code. Note that mfem::MPI_Session is deprecated in mfem and does not allow for MPI initialization outside this object.
Bump required MFEM version to 4.4
Introduce an MPI_Comm TPSCommWorld to be used inside the tps code as the world communicator. New tests were added to run a simulation on a subset of processes
Remove mfem::MPI_Session from the constructor of all TPS::Solver. TPS::Solver can grab the MPI_Comm TPSCommWorld directly from the TPS::Tps that is passed at construction time.
All tps executables now call mfem::Mpi::Init from the main function
tps.py now uses mpi4py to initialize MPI. MPI Communicator can now be provided from the Python interface
TODOs:
[x] pip install mpi4py in the tps Docker container
[x] Minimum MFEM version 4.4
[x] Test the GPU built (Depends on PR #213 )
[x] Update local runners to MFEM version 4.4 (Depends on PR #213 )
[x] Allow the Python interface to wrap mpi4py communicators
Interfaces with python/PARLA require that the
MPI_Init
is called from themain
executable and not by theTPS::Tps
class.To this aims, this PR introduce the following changes:
Remove the object
mfem::MPI_Session
from the base code. Note thatmfem::MPI_Session
is deprecated inmfem
and does not allow for MPI initialization outside this object.Bump required MFEM version to 4.4
Introduce an
MPI_Comm TPSCommWorld
to be used inside thetps
code as the world communicator. New tests were added to run a simulation on a subset of processesRemove
mfem::MPI_Session
from the constructor of allTPS::Solver
.TPS::Solver
can grab theMPI_Comm TPSCommWorld
directly from theTPS::Tps
that is passed at construction time.All
tps
executables now callmfem::Mpi::Init
from themain
functiontps.py
now usesmpi4py
to initialize MPI. MPI Communicator can now be provided from the Python interfaceTODOs:
pip install mpi4py
in thetps
Docker containermpi4py
communicators