Debugging "Warning: Preferred DataPlane "mpi" not found." #4431
Replies: 7 comments 10 replies
-
Hi Riccardo! There are restrictions to using the MPI data plane because it requires a 1) an mpi implementation that supports mpi client/server, and 2) mpi to be initialized in thread-safe mode (I.E. with MPI_THREAD_MULTIPLE). We can't know those things until run-time, so we do look for them and then fallback to alternative dataplanes if our requirements are not satisfied. That said, requirement 1 is not something we can actually test trivially, so we have an (probably overly) conservative fallback of testing to see if the MPI implementation is MPICH. If you have a non-MPICH MPI, you should be able to override this by forcing enabling the MPI DP which is passing the flag`-DADIOS2_HAVE_MPI_CLIENT_SERVER=ON' to CMake when building ADIOS. Can you give this a try? |
Beta Was this translation helpful? Give feedback.
-
Hi @eisenhauer, thanks for the quick reply! I can try again with that flag, maybe on our Polaris machine instead of Sunspot to use plain MPICH, but I did already test with that and with suggestions I found here and here, but saw the same issue. Do you have any pointers on where these runtime checks are taking place so perhaps I can understand better why they are not passing? |
Beta Was this translation helpful? Give feedback.
-
Hmm. I'm looking at the code and wondering if something might have broken this. Some things that come into play are MpiGetPriority() in adios/source/adios2/toolkit/sst/cp/mpi_dp.c and the dataplane selection code in dp.c. WIth SSTVerbose=5, you should be getting a trace message like "MPI DP disabled since the following predicate is false:" if SST doesn't think that the MPI dataplane is viable. If you're seeing that, it might give us a clue. |
Beta Was this translation helpful? Give feedback.
-
Sounds good, I'll take a look at those files and see if I can understand why MPI is being discarded. I'll be able to rebuild and run with SSTVerbose=5 later today and report an update. Thanks again! |
Beta Was this translation helpful? Give feedback.
-
Hi @eisenhauer , I was able to get the MPI DataPlane to be selected thanks to your pointers. The CMake flag did not work, so I just commented the I am still running into an issue though when running the application with the MPI DataPlane. I open three streams throughout the run (is this bad practice?) -- the first one just sends some "meta data" to synchronize the two components, and this transfer completes with the MPI DataPlane just fine. The second stream produces a seg fault. Core files (below) suggest the issue is in in libmpi.so at internal_Recv(), but this was Sunspot again so will try on Polaris to see if I get the same error.
Thanks again for the help! |
Beta Was this translation helpful? Give feedback.
-
If you have a reasonably small test case, I'm also happy to run it myself to debug... |
Beta Was this translation helpful? Give feedback.
-
Just wanted to give an update. I spent some time working on Frontier trying to test this. The MPI dataplane should work on Frontier, but doesn't seem to. This is not your problem, but a different problem that we need to look at as well. Hoping to get to both of these, but it's a busy time of year. |
Beta Was this translation helpful? Give feedback.
-
Hello,
I am working with the SST engine and trying to get the MPI Data Plane to work, but I always see "Warning: Preferred DataPlane "mpi" not found." and then another Data Plane is selected for me. I am trying to stream data between two mpi4py programs, and I can do so with WAN and RDMA planes, but not MPI. I wanted to ask a few questions here to see if I can understand more about the warning message:
SstVerbose
to values greater than 1, I don't see any other information as to why the MPI data plane cannot be used. Is there something in the logs I missed?Note that I am setting
MPI4PY_RC_THREADS=TRUE
andMPI4PY_RC_THREAD_LEVEL="multiple"
to ensure MPI is initialized with multi-thread enabled.Thank you in advance for any feedback on this issue!
Riccardo
Beta Was this translation helpful? Give feedback.
All reactions