-
Notifications
You must be signed in to change notification settings - Fork 569
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
Incorrect MPI augmentation if binary == "system" #6893
Comments
My sense is that option 2 is the path of least resistance at the moment. So name issues can be addressed by overriding a consistent set of files and symlinks. |
I'm not sure option 2 is going to work well given the problem with the soname |
Yeah my stance on this (which is not satisfying) is that the user of system must also use preferences to change the libraries of their dependency. Long-term goal was to get some decent Spack integration going to make this feasible... |
Option 2 works as long as one of the following two options is true:
Fundamentally, a change in SONAME means that the ABI has a decent chance of being incompatible, so I'm not sure it makes sense to try and work around that, I think it's kind of playing with fire. So the best option, in my mind, is to build up tooling for setting preferences en-masse to picking up system library versions. If someone wants to look into this, I'm happy to give some guidance on how I think it should work. |
Could we change this: using MPIPreferences
if MPIPreferences.binary == "system"
using MPIPreferences.System
else
using OpenMPI_jll
end |
For libraries which have an MPI dependency, we augment based in the MPIPreferences
abi
key:https://github.com/JuliaBinaryWrappers/HDF5_jll.jl/blob/b96de8ada558f8d70e27b5561d4f5df815b01ebf/.pkg/platform_augmentation.jl#L13
However we augment by loading the corresponding JLL. e.g. the augmentation for
abi = "openmpi"
always loads OpenMPI_jll:https://github.com/JuliaBinaryWrappers/HDF5_jll.jl/blob/main/src/wrappers/x86_64-linux-gnu-libgfortran5-cxx03-mpi%2Bopenmpi.jl#L9
The problem is if someone uses
binary = "system"
: then MPI.jl will load the system binary, but downstream dependencies (e.g. HDF5_jll) will load the corresponding MPI JLL binary, causing problems:JuliaIO/HDF5.jl#1079
There are a couple of potential fixes here:
cc: @giordano @staticfloat @mkitti @vchuravy
The text was updated successfully, but these errors were encountered: