-
Notifications
You must be signed in to change notification settings - Fork 63
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
Add MPI_Finalize "detouring" mechanism #765
base: master
Are you sure you want to change the base?
Conversation
Co-authored-by: Phil Miller - NOAA <philip.miller@noaa.gov>
Co-authored-by: Phil Miller - NOAA <philip.miller@noaa.gov>
Something needs to say |
2861184
to
7cf8df5
Compare
Ubuntu linux tests failing due to a timeout running the tests. Downloading the logs and poking around, I see a LOT of these
and eventually the test times out
|
@hellkite500 Yeah this is happening across PR's and the master branch, see: #750 (comment). Not sure why this is happening, but it's not reproducible locally for neither Phil nor I |
Ah, I'm still catching up on a few things. Just wasn't sure if this was related to these changes or not...I looked at a few recent PR's and didn't see the failures. Might try getting an Ubuntu image spun up to test on. |
Converting back to draft, since we may not need this for the time being if ESMF PR esmf-org/esmf#234 gets merged and released quickly. It could be useful for other uncooperative libraries that insist on acting like they own MPI, though. |
Where is the PMPI_Finalize coming from? I can not find documentation on It, I am guessing that it is directly called by the MPI library provided MPI_Finalize. Also is using this compatible across different MPI implementations? Ok this is the from section 15 of the MPI standard, documentation on this is not something easy to find. But It looks like this should be fine on all MPI implementations that meet the standard. |
This PR resolves #748 by implementing a shim library that overrides
MPI_Finalize
calls to become no-op. Additionally, calls toMPI_Finalize
from NGen code are modified toPMPI_Finalize
to call the MPI library's actual implementation.Adding everyone as reviewers for visibility on this change.
Additions
MPIDetour
inutilities/mpi/
with the source fileMPIDetour.c
.Changes
MPI_Finalize
insrc/NGen.cpp
are converted toPMPI_Finalize
.TODO
NGen::forcing
will link to this library to handle ESMF's (and any other external) calls toMPI_Finalize
so that NGen keeps responsibility.Checklist
Target Environment support