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

Option to disable unsupported features -- eg: matched send/recv #759

Open
JBlaschke opened this issue Aug 4, 2023 · 5 comments
Open

Option to disable unsupported features -- eg: matched send/recv #759

JBlaschke opened this issue Aug 4, 2023 · 5 comments
Labels

Comments

@JBlaschke
Copy link
Contributor

Hey Folks,

I am testing a basic MPI Send/Recv example and noticed that the version with MPI.Send and MPI.Recv! works fine, while MPI.send / MPI.recv don't on NERSC Perlmutter. The error points to:

msg, stat = Mprobe(comm, Status; source=source, tag=tag)
-- and digging around further, it turns out that currently Mprobe is not not supported by Cray.

This bug will be fixed eventually -- but I anticipate that this won't be the first time that a vendor's MPI implementation won't fully support everything in the standard. So my question is: do we want to develop a process to disable things like matched send/recv?

PSA: If you get:

MPICH ERROR [Rank 1] [job id 13281867.0] [Fri Aug  4 13:47:24 2023] [nid008633] - Abort(808039439) (rank 1 in comm 0): Fatal error in PMPI_Mprobe: Other MPI error, error stack:
PMPI_Mprobe(118)........:  MPI_Mprobe(source=0, tag=5, comm=MPI_COMM_WORLD, message=0x7ffde7da199c, status=0x7ffde7da19a0)
PMPI_Mprobe(101)........:
MPID_Mprobe(199)........:
MPIDI_improbe_safe(146).:
MPIDI_improbe_unsafe(88):
(unknown)(): Other MPI error

then right now, switch to the upper-case functions -- eg. MPI.Recv!

@JBlaschke
Copy link
Contributor Author

To elaborate: with "a process to disable things like matched send/recv?" I mean something like a setting that will disable selected non-crucial features. This setting will non-mandatory, and will not disable anything default, but can be used on systems with incomplete MPI support.

@simonbyrne
Copy link
Member

You could add a preferences option to switch back to the old (slightly incorrect) behavior before #699? Seems like a bit of a slippery slope though.

@JBlaschke
Copy link
Contributor Author

What made those slightly incorrect?

@simonbyrne
Copy link
Member

I'd have to look at the spec again, but it certainly isn't correct in the presence of multi-threading (since there is no guarantee that the receive will match the probe request)

@JBlaschke
Copy link
Contributor Author

Ah! I see

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

No branches or pull requests

2 participants