Skip to content

ofi/common: cannot handle general sessions model #12869

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

Closed
hppritcha opened this issue Oct 18, 2024 · 2 comments
Closed

ofi/common: cannot handle general sessions model #12869

hppritcha opened this issue Oct 18, 2024 · 2 comments

Comments

@hppritcha
Copy link
Member

Looks like some world-model thinking got built into the ofi common code.
See sections 11.2 and 11.3 of the MPI 4.0 standard for a discussion of these two different methods for initializing MPI.

the sessions_init_twice test (https://github.com/open-mpi/ompi-tests/blob/master/ibm/sessions/sessions_init_twice.c) case fails when using OFI MTL currently.

@hppritcha hppritcha self-assigned this Oct 18, 2024
@hppritcha
Copy link
Member Author

a workaround is to configure ompi with --enable-mca-dso

@hppritcha
Copy link
Member Author

looks like commit 5432c32 broke sessions support.

hppritcha added a commit to hppritcha/ompi that referenced this issue Oct 18, 2024
With sessions initialization model (section 11.3 of MPI 4 standard)
MPI may be initialized and finalized any number of times.

This patch refactors code that was assuming a one shot init/finalize
sequence for initializing Open MPI and its MCA param space

The underlying problem with the replaced code was that an app call MPI_Session_finalize
and if there are no more instances active, the MCA param space is
destroyed.  So if one does not build Open MPI to use dynamically load frameworks,
and are using static variables in a way that assumes the MCA param
space is always preserved if a static variable is set to some value,
then things break if a subsequent MPI_Session_init is invoked.

Related to open-mpi#12869

Signed-off-by: Howard Pritchard <[email protected]>
hppritcha added a commit to hppritcha/ompi that referenced this issue Oct 18, 2024
With sessions initialization model (section 11.3 of MPI 4 standard)
MPI may be initialized and finalized any number of times.

This patch refactors code that was assuming a one shot init/finalize
sequence for initializing Open MPI and its MCA param space

The underlying problem with the replaced code was that when an app calls MPI_Session_finalize
and there are no more sessions active, the MCA param space is
destroyed.  So if one does not build Open MPI to use dynamically load components,
and a component is using static variables in a way that assumes the MCA param
space is always preserved if a static variable is set to some value,
then things break if a subsequent MPI_Session_init is invoked.

Related to open-mpi#12869

Signed-off-by: Howard Pritchard <[email protected]>
hppritcha added a commit to hppritcha/ompi that referenced this issue Oct 18, 2024
With sessions initialization model (section 11.3 of MPI 4 standard)
MPI may be initialized and finalized any number of times.

This patch refactors code that was assuming a one shot init/finalize
sequence for initializing Open MPI and its MCA param space

The underlying problem with the replaced code was that when an app calls MPI_Session_finalize
and there are no more sessions active, the MCA param space is
destroyed.  So if one does not build Open MPI to use dynamically load components,
and a component is using static variables in a way that assumes the MCA param
space is always preserved if a static variable is set to some value,
then things break if a subsequent MPI_Session_init is invoked.

Related to open-mpi#12869

Signed-off-by: Howard Pritchard <[email protected]>
hppritcha added a commit to hppritcha/ompi that referenced this issue Oct 25, 2024
With sessions initialization model (section 11.3 of MPI 4 standard)
MPI may be initialized and finalized any number of times.

This patch refactors code that was assuming a one shot init/finalize
sequence for initializing Open MPI and its MCA param space

The underlying problem with the replaced code was that when an app calls MPI_Session_finalize
and there are no more sessions active, the MCA param space is
destroyed.  So if one does not build Open MPI to use dynamically load components,
and a component is using static variables in a way that assumes the MCA param
space is always preserved if a static variable is set to some value,
then things break if a subsequent MPI_Session_init is invoked.

Related to open-mpi#12869

Signed-off-by: Howard Pritchard <[email protected]>
(cherry picked from commit 2f4ba1b)
@janjust janjust closed this as completed Nov 4, 2024
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