-
Notifications
You must be signed in to change notification settings - Fork 194
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
Intel MPI module version is broken for "2018 Beta" and "2018 Beta Update 1" #479
Comments
This creates a consistent versioning for Intel MPI when the version string extracted from mpiicc has oddball modifiers like "2017 Update 2" or "2018 Beta 1" Fixes openhpc#479
@chuckatkins, based on some other discussions regarding the pxse compatibility packages that came up on the user list, I have updated the approach taken in the 1.3.2 branch and was wondering if you could try them out in your environment? In theory, they should also handle the "beta" business you reported (it worked ok for me with Beta1). The main difference in the latest builds is to remove the Requires from the .spec file as user's have gotten burned by inconsistencies from installations of different flavors of PXSE (e.g. composer vs. cluster install). Instead, they query for an RPM that owns The actual modulefile generation remains the same, but versioning is determined directly from the RPM metadata instead of things like If you want to try them out, you can grab the current 1.3.2 builds for CentOS at:
Thanks. |
That helps a bunch! I didn't install the RPMs but I tested the version code by pulling it out into seperate shell scripts and it seems to work well. On my test machine, I have 9 different versions installed from 16 u3 through 18 beta 1. I get the following version info:
and
So the "proper" versioning seems to work well. The only problem currently is that there's still no way to tie the impi version to the compiler version. Should those remain entirely independent? While I understand that technically any impi version can be used with any compiler but should it? Is there way to construct the modules such that at least the default impi version used is the version that corresponds to the compiler it's deployed with? This would still allow you to explicitly mix and match compiler and mpi versions but just keep the default impi version aqligned with the compiler. |
I was thinking something like this: mpiicc_subpath="linux/mpi/intel64/bin/mpiicc"
for file in ${versions}; do
prefix=`echo ${file} | sed "s|${icc_subpath}||"`
version=`rpm -q --qf '%{VERSION}.%{RELEASE}\n' -f ${file}`
impi_version=`rpm -q --qf '%{VERSION}.%{RELEASE}\n' -f ${prefix}${mpiicc_subpath}`
if [ -z "${impi_version}" ];then
echo "--> Version ${version} detected"
else
echo "--> Version ${version} detected, Default IMPI Version ${impi_version}"
fi
done Where #%Module
if { $::env(LMOD_FAMILY_MPI_DEFAULT_IMPI_VERSION) ne "" } {
set ModulesVersion $::env(LMOD_FAMILY_MPI_DEFAULT_IMPI_VERSION)
} That do you think? |
Either way, the version matching issue is outside the scope of this one. I'll close this and open a new one to discuss and address referencing the PR. |
The text was updated successfully, but these errors were encountered: