-
Notifications
You must be signed in to change notification settings - Fork 868
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
API Call to find OpenMPI IO Backend #11715
Comments
Ping @edgargabriel @ggouaillardet for guidance/help :) |
I do not think there is one yet, but I'll try.
Keep in mind the backend is not "one for all" but on a per-file basis. For
example, ompio is the default backend but in the previous versions, ROMIO
was used for files on a Lustre filesystem.
|
@axl3 I was actually looking in to this a few days, I don't think there is a clean and easy solution, the information is not exposed to the application layer. In addition, the method would have to work out of the box with older versions of Open MPI, otherwise it is worthless (i.e. adding now a new function that would provide the information doesn't resolve the issue for you). I tried de-referencing the MPI_File pointer on the application layer to determine selected component , but the compiler doesn't let me do that (error: dereferencing pointer to incomplete type ‘struct ompi_file_t). |
@ax3l Probably the best we could do is offer new functionality that would set an info key on each This would help for future versions of Open MPI, but wouldn't help with older versions. |
https://soundcloud.com/user-24030555/you-ranglurch I think the info key idea is the correct route. There is a bug in the HDF5 issue tracker to fix this currently being broken (HDFGroup/hdf5#3025), but once that's working correctly again, returning a (new) info key is straightforward. |
Is the info key something you could implement? |
I can probably do that, but it might take a week or two until I get to it |
This raises another obvious question: should we do this kind of thing for other MPI handles? E.g., should we have one or more info keys on communicators that indicate what kind of PML and MTL/BTLs were selected for that communicator? Or, should we use the MPI_T interface to allow users to get the value of the |
Super, thanks! |
I don't have a super strong opinion here, but would lean toward the info keys. Tagging @mahermanns & @wrwilliams for the MPI Tools perspective. |
@ax3l FWIW and meanwhile, here is a hack you might find helpful: note Open MPI must be built with
|
MPI_T gives two potential advantages over info keys as I see it:
If neither of these matter, info keys should be fine and will be more straightforward to use; certainly it makes sense to implement first with info keys and see whether the costs are acceptable. |
Hi,
@franzpoeschel and I develop a parallel, domain-science centered I/O layer built on parallel HDF5 (based on MPI-I/O) and ADIOS2 called openPMD.
Our users use OpenMPI and MPICH.
For OpenMPI, we sometimes need to work-around issues depending on the version and MPI-I/O backend, e.g., "for OpenMPI <5 with ROMIO" or "for OpenMPI 3 with OMPIO". The defaults for the MPI-I/O backend vary, depending on: cluster admin configuration options at built time, environment variables and mpirun CLI options.
Is there a runtime API to query the currently used MPI-I/O backend in OpenMPI?
So far, we tried looking at the env variable
OMPI_MCA_io
, but since it is processed by OpenMPI, contains logical operators (like lists of other options and "not") and reacts differently depending on built-time configure options of OpenMPI, it would be safer if we could query the MPI-I/O backend with an OpenMPI API.attn @edgargabriel :)
The text was updated successfully, but these errors were encountered: