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

Remove MPI static globals #4858

Merged
merged 2 commits into from
Feb 29, 2024
Merged

Conversation

jngrad
Copy link
Member

@jngrad jngrad commented Feb 2, 2024

Fixes #4856

Description of changes:

  • fix multiple bugs caused by undefined behavior due to the static initialization order of MPI global objects
  • ESPResSo is now compatible with Boost 1.84+

bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Feb 5, 2024
https://build.opensuse.org/request/show/1144047
by user cjunghans + anag+factory
- Fix undefined behavior due to improper handling of MPI static globals
- Add mpi.patch to remove MPI globals (gh#espressomd/espresso#4858)
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Feb 7, 2024
https://build.opensuse.org/request/show/1144047
by user cjunghans + anag+factory
- Fix undefined behavior due to improper handling of MPI static globals
- Add mpi.patch to remove MPI globals (gh#espressomd/espresso#4858)
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Feb 7, 2024
https://build.opensuse.org/request/show/1144047
by user cjunghans + anag+factory
- Fix undefined behavior due to improper handling of MPI static globals
- Add mpi.patch to remove MPI globals (gh#espressomd/espresso#4858)
All MPI-related static global variables were removed, replaced by
non-owning pointers, or replaced by owning pointers that are reset
at normal program termination. Objects that need a MPI environment
during destruction (FFT MPI plans, parallel file writers, etc.)
now keep a shared pointer to the MPI environment. MpiCallbacks
unit tests now call `MpiCallbacks::loop()` on worker nodes to avoid
a non-empty receive queue at destruction of the MPI environment
(fatal error in MPICH 4.1+).
@jngrad jngrad marked this pull request as ready for review February 27, 2024 12:49
@jngrad jngrad added this to the ESPResSo 4.2.2 milestone Feb 27, 2024
@jngrad
Copy link
Member Author

jngrad commented Feb 27, 2024

Bugfix backported to 4.2.1 and submitted to stable by Bohdi as espresso-4.2.1-11.fc41.

@jngrad jngrad added the automerge Merge with kodiak label Feb 29, 2024
@kodiakhq kodiakhq bot merged commit 7ad0534 into espressomd:python Feb 29, 2024
10 checks passed
@jngrad jngrad deleted the boost_mpi_bugfix branch February 29, 2024 13:24
jngrad pushed a commit to jngrad/espresso that referenced this pull request Feb 29, 2024
Fixes espressomd#4856

Description of changes:
- fix multiple bugs caused by undefined behavior due to the static initialization order of MPI global objects
- ESPResSo is now compatible with Boost 1.84+
jngrad pushed a commit to jngrad/espresso that referenced this pull request Feb 29, 2024
Fixes espressomd#4856

Description of changes:
- fix multiple bugs caused by undefined behavior due to the static initialization order of MPI global objects
- ESPResSo is now compatible with Boost 1.84+
jngrad pushed a commit to jngrad/espresso that referenced this pull request Feb 29, 2024
Fixes espressomd#4856

Description of changes:
- fix multiple bugs caused by undefined behavior due to the static initialization order of MPI global objects
- ESPResSo is now compatible with Boost 1.84+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Undefined behavior from static global variables
2 participants