Skip to content

Commit

Permalink
In spack-ext/lib/jcsda-emc/spack-stack/stack, update meta_modules.py …
Browse files Browse the repository at this point in the history
…and templates/{mpi,mpi.lua}: set compiler paths in MPI meta modules directly using SUBSTITUTES_SAVE, not using environment variables (JCSDA#1479)
  • Loading branch information
climbfuji authored Jan 29, 2025
1 parent ece9d20 commit 36c7d41
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 13 deletions.
11 changes: 8 additions & 3 deletions spack-ext/lib/jcsda-emc/spack-stack/stack/meta_modules.py
Original file line number Diff line number Diff line change
Expand Up @@ -695,7 +695,7 @@ def custom_sort_key(entry):

# Compiler wrapper environment variables
if "intel" in mpi_name and compiler_name == "oneapi":
substitutes["MPICC"] = os.path.join("mpiicx")
substitutes["MPICC"] = os.path.join("mpiicx")
substitutes["MPICXX"] = os.path.join("mpiicpx")
if "ifx" in SUBSTITUTES_SAVE["FC"] and not "ifort" in SUBSTITUTES_SAVE["FC"]:
substitutes["MPIF77"] = os.path.join("mpiifx")
Expand All @@ -706,15 +706,20 @@ def custom_sort_key(entry):
else:
raise Exception(f"For {mpi_name}, cannot determine MPI wrapper from FC={SUBSTITUTES_SAVE['FC']}")
elif "intel" in mpi_name and compiler_name == "intel":
substitutes["MPICC"] = os.path.join("mpiicc")
substitutes["MPICC"] = os.path.join("mpiicc")
substitutes["MPICXX"] = os.path.join("mpiicpc")
substitutes["MPIF77"] = os.path.join("mpiifort")
substitutes["MPIF90"] = os.path.join("mpiifort")
else:
substitutes["MPICC"] = os.path.join("mpicc")
substitutes["MPICC"] = os.path.join("mpicc")
substitutes["MPICXX"] = os.path.join("mpic++")
substitutes["MPIF77"] = os.path.join("mpif77")
substitutes["MPIF90"] = os.path.join("mpif90")
# Also set the direct compiler environment variables
substitutes["CC"] = SUBSTITUTES_SAVE["CC"]
substitutes["CXX"] = SUBSTITUTES_SAVE["CXX"]
substitutes["F77"] = SUBSTITUTES_SAVE["F77"]
substitutes["FC"] = SUBSTITUTES_SAVE["FC"]

# Spack mpi+compiler module hierarchy
modulepath = os.path.join(
Expand Down
10 changes: 5 additions & 5 deletions spack-ext/lib/jcsda-emc/spack-stack/stack/templates/mpi
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ setenv {MPI_F77} {@MPIF77@}
setenv {MPI_F90} {@MPIF90@}

# intel specific mpi wrapper environment variables
setenv {I_MPI_CC} $env(CC)
setenv {I_MPI_CXX} $env(CXX)
setenv {I_MPI_F77} $env(F77)
setenv {I_MPI_F90} $env(FC)
setenv {I_MPI_FC} $env(FC)
setenv {I_MPI_CC} {@CC@}
setenv {I_MPI_CXX} {@CXX@}
setenv {I_MPI_F77} {@F77@}
setenv {I_MPI_F90} {@FC@}
setenv {I_MPI_FC} {@FC@}

# compiler flags and other environment variables
@COMPFLAGS@
Expand Down
10 changes: 5 additions & 5 deletions spack-ext/lib/jcsda-emc/spack-stack/stack/templates/mpi.lua
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,11 @@ setenv("MPI_F77", "@MPIF77@")
setenv("MPI_F90", "@MPIF90@")

-- intel specific mpi wrapper environment variables
setenv("I_MPI_CC", os.getenv("CC"))
setenv("I_MPI_CXX", os.getenv("CXX"))
setenv("I_MPI_F77", os.getenv("F77"))
setenv("I_MPI_F90", os.getenv("FC"))
setenv("I_MPI_FC", os.getenv("FC"))
setenv("I_MPI_CC", "@CC@")
setenv("I_MPI_CXX", "@CXX@")
setenv("I_MPI_F77", "@F77@")
setenv("I_MPI_F90", "@FC@")
setenv("I_MPI_FC", "@FC@")

-- compiler flags and other environment variables
@COMPFLAGS@
Expand Down

0 comments on commit 36c7d41

Please sign in to comment.