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

User control of MPI threading support level #335

Open
theurich opened this issue Dec 13, 2024 · 1 comment
Open

User control of MPI threading support level #335

theurich opened this issue Dec 13, 2024 · 1 comment
Assignees

Comments

@theurich
Copy link
Member

theurich commented Dec 13, 2024

Currently when ESMF_Initialize() is called without MPI already being initialized, it will try to initialize MPI with MPI_THREAD_MULTIPLE (unless ESMF is built without Pthreads support, in which case it goes for MPI_THREAD_SINGLE).

Regardless of how and where MPI was initialized, ESMF checks for the actual provided threading support of the MPI layer, and makes internal threading decisions accordingly.

Some of the literature I have read seems to indicate that higher threading support levels in MPI do come with additional memory usage, and/or have performance impact (e.g. on tag matching and things like that). I think it would be nice for ESMF_Initialize() to offer the user a way to specify the requested MPI threading support level. This would then be routed through ESMX in the usual manner. It would provide an easy way to test the performance impact of different threading support levels in actual applications.

@anntsay
Copy link

anntsay commented Jan 22, 2025

Group meeting:
Gerhard: currently, we uses the highest MPI thread level, and may put pressure on memory.. so to balance that, maybe we could set this as an option in order to have better user control of performance. If this is to be modified, the code should just confined to the initialization phase, so it is pretty low risk.

could be also be a good troubleshoot tool so we could experiment whether MPI number of thread is the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants