Open rjdave opened 1 month ago
This problem occurs when you use the same MPI provider (openmpi-4.1.6 in your case) with different compilers?
This problem occurs when you use the same MPI provider (openmpi-4.1.6 in your case) with different compilers?
Yes. I also had a similar error with spack-stack earlier this year when Open MPI first switched to 5.x. I had previously built the stack with the Intel compilers when Open MPI was still at 4.1.6. A couple months later I pulled the latest stack which had upgraded Open MPI to 5.0 to build with the GCC 11.4 compilers. In that case, the spack stack setup-meta-modules
command produced the same error complaining that there were multiple version choices for Open MPI. However, when I temporarily moved /path/to/spack-stack/modulefiles/openmpi/4.1.6
and ran the command again, it completed successfully. I moved the 4.1.6 directory back into place and was able to use stack-intel
and stack-gcc
without issue.
Describe the bug Building the devel branch of the stack (as of 05/22/2024) with Intel then GCC results in a "Multiple version matches" error when it tries to create the meta modules.
To Reproduce Note: I have forced the use of Open MPI 4.1.6 by requesting it in
site/packages.yaml
to facilitate using TotalView (the 5.x line has removed the MPIR process acquisition interface required by TotalView).Build the stack with both Intel and GCC compilers then try to execute
spack stack setup-meta-modules
in either environment and you will get output similar to below:Curiously, If I temporarily move
4.1.6-2edufp4
, for example, and run thespack stack setup-meta-modules
it gets further (far enough to make the stack loadable), but still errors like below so there are nostack-openmpi
orstack-python
modules created.Expected behavior
spack stack setup-meta-modules
should complete without errorsSystem: Linux Workstation running Rocky 9. Intel is 2023.0.0 (2021.8.0 legacy compilers (icc,icpc,ifort)) and GCC is 11.4.1 system package manager install.
Additional context This appears to be somewhat recent and is possibly due to the fact that spack now adds the shortened hash to the openmpi (and presumably other MPI implementations) version sub-directories. In previous versions,
/path/to/spack-stack/modulefiles/openmpi
would contain version number (i.e. 4.1.6) folders. However, now the hash is added to the folder name so instead of/path/to/spack-stack/modulefiles/openmpi
containing a single 4.1.6 folder withintel
andgcc
sub-directories, there is a4.1.6-<intel_built_hash>
and a4.1.6-<gcc_built_hash>
folder.