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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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:
SstVerboseto 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=TRUEandMPI4PY_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