-
Notifications
You must be signed in to change notification settings - Fork 52
Add OpenMPI host injection script #963
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
base: 2023.06-software.eessi.io
Are you sure you want to change the base?
Conversation
Instance
|
Instance
|
@pfermi You should be able to create CI for this since you can install OpenMPI from the OS. |
Tested the script on OpenMPI-5.0.7 built with EasyBuild(draft easyconfig) using eessi_container and the following was noted:
|
@TopRichard Can you show the command line you used so it's clear where you pointed the script to? Indeed, the final contents seem to be missing critical libraries. @pfermi The script should only apply |
|
Bash script that given a path to an OpenMPI installation in the host, makes a copy of the OpenMPI libraries,
libfabric and libpmix and inject the necessary host libraries with the absolute path. In order to know which libraries must be injected it uses
ldd
from EESSI (${EESSI_EPREFIX}/usr/bin/ldd
) and the host (/usr/bin/ldd
).The script is organized in functions. The function inject_mpi is the one actually performing the injection. There is a download_patchelf function in charge of downloading version v0.17.2 of patchelf, because the patchelf shipped with EESSI could not do the injection successfully.
The initial injection happens in a temporary directory, that can be specified from the command line, but if not specified it uses
mktemp -d
. At the end the temporary directory is removed, unless--noclean
is specified in command line execution of the script.The script, by default, does not perform the injection if the directory
.../host_injections/rpath_overrides/OpenMPI/system/lib
is not empty, unless--force
is given to the script.