diff options
author | Greg Becker <becker33@llnl.gov> | 2022-11-04 14:52:11 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-04 14:52:11 -0700 |
commit | 53fbaa5dcded49d4fa04ee307813071873dab4f3 (patch) | |
tree | 922ed93c53336d76c2ed2c083b8a7fa0ef5a1d98 /var | |
parent | a88c74dc1795e7aa38c5ac04b7af16d1c7c586f5 (diff) | |
download | spack-53fbaa5dcded49d4fa04ee307813071873dab4f3.tar.gz spack-53fbaa5dcded49d4fa04ee307813071873dab4f3.tar.bz2 spack-53fbaa5dcded49d4fa04ee307813071873dab4f3.tar.xz spack-53fbaa5dcded49d4fa04ee307813071873dab4f3.zip |
Cray support: use linux platform for newer craype versions (#29392)
Newer versions of the CrayPE for EX systems have standalone compiler executables for CCE and compiler wrappers for Cray MPICH. With those, we can treat the cray systems as part of the linux platform rather than having a separate cray platform.
This PR:
- [x] Changes cray platform detection to ignore EX systems with Craype version 21.10 or later
- [x] Changes the cce compiler to be detectable via paths
- [x] Changes the spack compiler wrapper to understand the executable names for the standalone cce compiler (`craycc`, `crayCC`, `crayftn`).
Diffstat (limited to 'var')
7 files changed, 17 insertions, 17 deletions
diff --git a/var/spack/repos/builtin/packages/aluminum/package.py b/var/spack/repos/builtin/packages/aluminum/package.py index 3d903dfaf2..cad16d0193 100644 --- a/var/spack/repos/builtin/packages/aluminum/package.py +++ b/var/spack/repos/builtin/packages/aluminum/package.py @@ -54,13 +54,13 @@ class Aluminum(CMakePackage, CudaPackage, ROCmPackage): variant( "ofi_libfabric_plugin", default=True, - when="+rccl platform=cray", + when="+rccl", description="Builds with support for OFI libfabric enhanced RCCL/NCCL communication lib", ) variant( "ofi_libfabric_plugin", default=True, - when="+nccl platform=cray", + when="+nccl", description="Builds with support for OFI libfabric enhanced RCCL/NCCL communication lib", ) @@ -75,8 +75,8 @@ class Aluminum(CMakePackage, CudaPackage, ROCmPackage): depends_on("hipcub", when="@:0.1,0.6.0: +rocm") depends_on("rccl", when="+rccl") - depends_on("aws-ofi-rccl", when="+rccl +ofi_libfabric_plugin platform=cray") - depends_on("aws-ofi-nccl", when="+nccl +ofi_libfabric_plugin platform=cray") + depends_on("aws-ofi-rccl", when="+rccl +ofi_libfabric_plugin") + depends_on("aws-ofi-nccl", when="+nccl +ofi_libfabric_plugin") conflicts("~cuda", when="+cuda_rma", msg="CUDA RMA support requires CUDA") conflicts("+cuda", when="+rocm", msg="CUDA and ROCm support are mutually exclusive") diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py index dcfde5415b..c7c9b4bb03 100644 --- a/var/spack/repos/builtin/packages/esmf/package.py +++ b/var/spack/repos/builtin/packages/esmf/package.py @@ -255,7 +255,7 @@ class Esmf(MakefilePackage): # ESMF_COMM must be set to indicate which MPI implementation # is used to build the ESMF library. if "+mpi" in spec: - if "platform=cray" in self.spec: + if "^cray-mpich" in self.spec: os.environ["ESMF_COMM"] = "mpi" elif "^mvapich2" in spec: os.environ["ESMF_COMM"] = "mvapich2" diff --git a/var/spack/repos/builtin/packages/mpich/package.py b/var/spack/repos/builtin/packages/mpich/package.py index 8692cf0636..8604903f32 100644 --- a/var/spack/repos/builtin/packages/mpich/package.py +++ b/var/spack/repos/builtin/packages/mpich/package.py @@ -390,8 +390,7 @@ with '-Wl,-commons,use_dylibs' and without # their run environments the code to make the compilers available. # For Cray MPIs, the regular compiler wrappers *are* the MPI wrappers. # Cray MPIs always have cray in the module name, e.g. "cray-mpich" - external_modules = self.spec.external_modules - if external_modules and "cray" in external_modules[0]: + if self.spec.satisfies("platform=cray"): # This is intended to support external MPICH instances registered # by Spack on Cray machines prior to a879c87; users defining an # external MPICH entry for Cray should generally refer to the @@ -420,8 +419,7 @@ with '-Wl,-commons,use_dylibs' and without # For Cray MPIs, the regular compiler wrappers *are* the MPI wrappers. # Cray MPIs always have cray in the module name, e.g. "cray-mpich" - external_modules = spec.external_modules - if external_modules and "cray" in external_modules[0]: + if self.spec.satisfies("platform=cray"): spec.mpicc = spack_cc spec.mpicxx = spack_cxx spec.mpifc = spack_fc diff --git a/var/spack/repos/builtin/packages/mvapich2/package.py b/var/spack/repos/builtin/packages/mvapich2/package.py index d806260c99..9f1d094ca0 100644 --- a/var/spack/repos/builtin/packages/mvapich2/package.py +++ b/var/spack/repos/builtin/packages/mvapich2/package.py @@ -358,8 +358,7 @@ class Mvapich2(AutotoolsPackage): def setup_compiler_environment(self, env): # For Cray MPIs, the regular compiler wrappers *are* the MPI wrappers. # Cray MPIs always have cray in the module name, e.g. "cray-mvapich" - external_modules = self.spec.external_modules - if external_modules and "cray" in external_modules[0]: + if self.spec.satisfies("platform=cray"): env.set("MPICC", spack_cc) env.set("MPICXX", spack_cxx) env.set("MPIF77", spack_fc) @@ -373,8 +372,7 @@ class Mvapich2(AutotoolsPackage): def setup_dependent_package(self, module, dependent_spec): # For Cray MPIs, the regular compiler wrappers *are* the MPI wrappers. # Cray MPIs always have cray in the module name, e.g. "cray-mvapich" - external_modules = self.spec.external_modules - if external_modules and "cray" in external_modules[0]: + if self.spec.satisfies("platform=cray"): self.spec.mpicc = spack_cc self.spec.mpicxx = spack_cxx self.spec.mpifc = spack_fc diff --git a/var/spack/repos/builtin/packages/opencoarrays/package.py b/var/spack/repos/builtin/packages/opencoarrays/package.py index 470d501f5d..6c9a309c6f 100644 --- a/var/spack/repos/builtin/packages/opencoarrays/package.py +++ b/var/spack/repos/builtin/packages/opencoarrays/package.py @@ -35,7 +35,7 @@ class Opencoarrays(CMakePackage): depends_on("mpi") # This patch removes a bunch of checks for the version of MPI available on # the system. They make the Crays hang. - patch("CMakeLists.patch", when="platform=cray") + patch("CMakeLists.patch", when="^cray-mpich") def cmake_args(self): args = [] diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py index cf0baf5164..5c7870def1 100644 --- a/var/spack/repos/builtin/packages/scorep/package.py +++ b/var/spack/repos/builtin/packages/scorep/package.py @@ -124,7 +124,11 @@ class Scorep(AutotoolsPackage): if spec.satisfies("^intel-mpi"): config_args.append("--with-mpi=intel3") - elif spec.satisfies("^mpich") or spec.satisfies("^mvapich2"): + elif ( + spec.satisfies("^mpich") + or spec.satisfies("^mvapich2") + or spec.satisfies("^cray-mpich") + ): config_args.append("--with-mpi=mpich3") elif spec.satisfies("^openmpi"): config_args.append("--with-mpi=openmpi") diff --git a/var/spack/repos/builtin/packages/xsdk/package.py b/var/spack/repos/builtin/packages/xsdk/package.py index d0396f9d26..627143b41c 100644 --- a/var/spack/repos/builtin/packages/xsdk/package.py +++ b/var/spack/repos/builtin/packages/xsdk/package.py @@ -190,7 +190,7 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): xsdk_depends_on("datatransferkit@3.1-rc2", when="@0.6.0 +trilinos +datatransferkit") xsdk_depends_on("petsc +trilinos", when="+trilinos @:0.6.0") - xsdk_depends_on("petsc +batch", when="platform=cray @0.5.0:") + xsdk_depends_on("petsc +batch", when="@0.5.0: ^cray-mpich") xsdk_depends_on( "petsc@main+mpi+hypre+superlu-dist+metis+hdf5~mumps+double~int64", when="@develop", @@ -398,7 +398,7 @@ class Xsdk(BundlePackage, CudaPackage, ROCmPackage): xsdk_depends_on("py-libensemble@0.5.2+petsc4py", when="@0.5.0 +libensemble") xsdk_depends_on("py-petsc4py@3.12.0", when="@0.5.0 +libensemble") - xsdk_depends_on("precice ~petsc", when="platform=cray +precice") + xsdk_depends_on("precice ~petsc", when="+precice ^cray-mpich") xsdk_depends_on("precice@develop", when="@develop +precice") xsdk_depends_on("precice@2.3.0", when="@0.7.0 +precice") xsdk_depends_on("precice@2.1.1", when="@0.6.0 +precice") |