Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor MPI handling in TPS #211

Merged
merged 14 commits into from
Jul 17, 2023
Merged

Refactor MPI handling in TPS #211

merged 14 commits into from
Jul 17, 2023

Conversation

uvilla
Copy link
Member

@uvilla uvilla commented Jul 6, 2023

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:

@uvilla uvilla requested a review from trevilo July 6, 2023 03:13
@uvilla uvilla mentioned this pull request Jul 11, 2023
@uvilla uvilla marked this pull request as ready for review July 14, 2023 19:13
@trevilo trevilo merged commit d7c8c9e into main Jul 17, 2023
11 checks passed
@trevilo trevilo deleted the tpscommworld-dev branch October 24, 2023 14:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants