-
Notifications
You must be signed in to change notification settings - Fork 900
Compatibility of OpenMPI 4.1.8-Compiled Binaries with OpenMPI 5.0.7 #13253
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
Comments
Generally, binaries compiled with Open MPI v4.1.x should be forward compatible with Open MPI v5.0.x. However, you have hit a feature that was actually removed in Open MPI v5.0.x: the MPI C++ bindings. As the configure error message indicates, the MPI C++ bindings were removed by the MPI Forum (i.e., the standards body that governs the MPI specification document) well over a decade ago. Hence, there's a whole library (libmpi_cxx) that is not present in Open MPI v5.0.x at all -- even if you attempt to recompile the application with Open MPI v5.0.x, it will likely fail to compile because the MPI C++ bindings classes and declarations are not available. I'm afraid that the only option for MPI applications that use the long-since deprecated and removed MPI C++ bindings is to stay with Open MPI v4.1.x. A more long-term solution may be to update the application to not use the MPI C++ bindings (e.g., convert the application to use the MPI C bindings). I know that this is additional work, but the MPI C++ bindings won't be coming back in the form that existed back in MPI-2 days. Sorry! ☹ |
@jsquyres is absolutely correct. That being said, if the application does not explicitly uses the MPI C++ bindings, the error could be an overkill from the linker. |
Thank you for the insights and suggestions @jsquyres @ggouaillardet
with the following code,
i prepared a stub shared library -
and here is the output of ldd after the shared library generation
It seems along with lib_mpicxx the libopen-rte.so is also unavailable with the openmpiv5 but still, application ran successfully.
now the ldd reports
and the run is still successful. in summary, with the dummy/stub mpi_cxx library method the binary works as expected. |
Glad it worked for you! |
Hi Team,
We have some binary applications compiled using OpenMPI 4.1.8 on rocky linux 9.5. When I load the OpenMPI 5.0.7 environment on same server and run ldd on one of these binaries, I see the following output:
the path of openmpi4's libmpi_cxx is not present in LD_LIBRARY_PATH so probably the openmpi4's libmpi_cxx.so.40 is being referenced due to rpath #13252 ? .
I understand that libmpi_cxx.so.40 is not part of OpenMPI 5.0.7 and enabling C++ MPI bindings using --enable-mpi-cxx gives the following warning and error during configuration:
Despite this, I attempted to run the binary using mpirun from openmpiv5 and encountered the following runtime error:
My question:
Is there a way to run binaries compiled with OpenMPI 4.1.8 using an OpenMPI 5.0.7 environment? Or is it generally not supported to run such MPI applications across these major version changes?
I understand that recompiling from source against OpenMPI 5.0.7 is the recommended path forward if the source is available. Please advise.
The text was updated successfully, but these errors were encountered: