diff --git a/lib/spack/spack/build_systems/oneapi.py b/lib/spack/spack/build_systems/oneapi.py index bc567adf5b7..d107a395e27 100644 --- a/lib/spack/spack/build_systems/oneapi.py +++ b/lib/spack/spack/build_systems/oneapi.py @@ -311,4 +311,4 @@ def ld_flags(self): #: Tuple of Intel math libraries, exported to packages -INTEL_MATH_LIBRARIES = ("intel-mkl", "intel-oneapi-mkl", "intel-parallel-studio") +INTEL_MATH_LIBRARIES = ("intel-oneapi-mkl",) diff --git a/lib/spack/spack/cmd/create.py b/lib/spack/spack/cmd/create.py index 0e246a9c9d0..7e81c9eb4ba 100644 --- a/lib/spack/spack/cmd/create.py +++ b/lib/spack/spack/cmd/create.py @@ -572,7 +572,7 @@ def edit(self, spec, prefix): class IntelPackageTemplate(PackageTemplate): """Provides appropriate overrides for licensed Intel software""" - base_class_name = "IntelPackage" + base_class_name = "IntelOneApiPackage" body_def = """\ # FIXME: Override `setup_environment` if necessary.""" diff --git a/lib/spack/spack/test/cmd/create.py b/lib/spack/spack/test/cmd/create.py index 154e5c28419..0ad1b99700d 100644 --- a/lib/spack/spack/test/cmd/create.py +++ b/lib/spack/spack/test/cmd/create.py @@ -62,7 +62,7 @@ ( ["-t", "intel", "/test-intel"], "test-intel", - [r"TestIntel(IntelPackage)", r"setup_environment"], + [r"TestIntel(IntelOneApiPackage)", r"setup_environment"], ), ( ["-t", "makefile", "/test-makefile"], diff --git a/lib/spack/spack/test/cmd/providers.py b/lib/spack/spack/test/cmd/providers.py index 2a82146a19f..b9fab73f432 100644 --- a/lib/spack/spack/test/cmd/providers.py +++ b/lib/spack/spack/test/cmd/providers.py @@ -24,8 +24,6 @@ def test_it_just_runs(pkg): ( ("mpi",), [ - "intel-mpi", - "intel-parallel-studio", "mpich", "mpilander", "mvapich2", diff --git a/var/spack/repos/builtin/packages/abinit/package.py b/var/spack/repos/builtin/packages/abinit/package.py index 1ce0247cb40..41b58955568 100644 --- a/var/spack/repos/builtin/packages/abinit/package.py +++ b/var/spack/repos/builtin/packages/abinit/package.py @@ -209,7 +209,7 @@ def configure_args(self): linalg = spec["lapack"].libs + spec["blas"].libs # linalg_flavor is selected using the virtual lapack provider - is_using_intel_libraries = spec["lapack"].name in INTEL_MATH_LIBRARIES + is_using_intel_libraries = spec["lapack"].name == "intel-oneapi-mkl" # These *must* be elifs, otherwise spack's lapack provider is ignored # linalg_flavor ends up as "custom", which is not supported by abinit@9.10.3: diff --git a/var/spack/repos/builtin/packages/arrayfire/package.py b/var/spack/repos/builtin/packages/arrayfire/package.py index c07b5c42e24..24ffc3f6993 100644 --- a/var/spack/repos/builtin/packages/arrayfire/package.py +++ b/var/spack/repos/builtin/packages/arrayfire/package.py @@ -86,7 +86,7 @@ def cmake_args(self): ] args.append(self.define("CUDA_architecture_build_targets", arch_list)) - if self.spec["blas"].name in INTEL_MATH_LIBRARIES: + if self.spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"): if self.version >= Version("3.8.0"): args.append(self.define("AF_COMPUTE_LIBRARY", "Intel-MKL")) else: diff --git a/var/spack/repos/builtin/packages/bart/package.py b/var/spack/repos/builtin/packages/bart/package.py index 4e34a674df9..d4d87205f70 100644 --- a/var/spack/repos/builtin/packages/bart/package.py +++ b/var/spack/repos/builtin/packages/bart/package.py @@ -52,7 +52,7 @@ def edit(self, spec, prefix): if spec["blas"].name == "openblas": env["OPENBLAS"] = "1" - elif spec["blas"].name in INTEL_MATH_LIBRARIES: + elif spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"): env["MKL"] = "1" env["MKL_BASE"] = spec["mkl"].prefix.mkl else: diff --git a/var/spack/repos/builtin/packages/batchedblas/package.py b/var/spack/repos/builtin/packages/batchedblas/package.py index 8f05dee5c38..f57aee1a673 100644 --- a/var/spack/repos/builtin/packages/batchedblas/package.py +++ b/var/spack/repos/builtin/packages/batchedblas/package.py @@ -26,7 +26,7 @@ class Batchedblas(MakefilePackage): def edit(self, spec, prefix): CCFLAGS = [self.compiler.openmp_flag, "-I./", "-O3"] BLAS = ["-lm", spec["blas"].libs.ld_flags] - if spec["blas"].name not in INTEL_MATH_LIBRARIES: + if not spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"): CCFLAGS.append("-D_CBLAS_") if spec.satisfies("%intel"): CCFLAGS.extend(["-Os"]) diff --git a/var/spack/repos/builtin/packages/beatnik/package.py b/var/spack/repos/builtin/packages/beatnik/package.py index f962ba55521..da67898dd37 100644 --- a/var/spack/repos/builtin/packages/beatnik/package.py +++ b/var/spack/repos/builtin/packages/beatnik/package.py @@ -69,7 +69,8 @@ class Beatnik(CMakePackage, CudaPackage, ROCmPackage): conflicts("mpich ~cuda", when="+cuda") conflicts("mpich ~rocm", when="+rocm") conflicts("openmpi ~cuda", when="+cuda") - conflicts("^intel-mpi") # Heffte won't build with intel MPI because of needed C++ MPI support + # Heffte won't build with intel MPI because of needed C++ MPI support + conflicts("^intel-oneapi-mpi") conflicts("^spectrum-mpi", when="^cuda@11.3:") # cuda-aware spectrum is broken with cuda 11.3: # Propagate CUDA and AMD GPU targets to cabana diff --git a/var/spack/repos/builtin/packages/berkeleygw/package.py b/var/spack/repos/builtin/packages/berkeleygw/package.py index 2c24029c883..3761c4fe9d7 100644 --- a/var/spack/repos/builtin/packages/berkeleygw/package.py +++ b/var/spack/repos/builtin/packages/berkeleygw/package.py @@ -78,12 +78,7 @@ class Berkeleygw(MakefilePackage): depends_on("cray-fftw+openmp", when="^[virtuals=fftw-api] cray-fftw") depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw") depends_on("fujitsu-fftw+openmp", when="^[virtuals=fftw-api] fujitsu-fftw") - depends_on("intel-mkl threads=openmp", when="^[virtuals=fftw-api] intel-mkl") depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=fftw-api] intel-oneapi-mkl") - depends_on( - "intel-parallel-studio threads=openmp", - when="^[virtuals=fftw-api] intel-parallel-studio", - ) with when("~openmp"): depends_on("acfl threads=none", when="^[virtuals=fftw-api] acfl") @@ -92,11 +87,7 @@ class Berkeleygw(MakefilePackage): depends_on("cray-fftw~openmp", when="^[virtuals=fftw-api] cray-fftw") depends_on("fftw~openmp", when="^[virtuals=fftw-api] fftw") depends_on("fujitsu-fftw~openmp", when="^[virtuals=fftw-api] fujitsu-fftw") - depends_on("intel-mkl threads=none", when="^[virtuals=fftw-api] intel-mkl") depends_on("intel-oneapi-mkl threads=none", when="^[virtuals=fftw-api] intel-oneapi-mkl") - depends_on( - "intel-parallel-studio threads=none", when="^[virtuals=fftw-api] intel-parallel-studio" - ) # in order to run the installed python scripts depends_on("python", type=("build", "run"), when="+python") diff --git a/var/spack/repos/builtin/packages/cosma/package.py b/var/spack/repos/builtin/packages/cosma/package.py index 453631e43f6..90afe3a9d1b 100644 --- a/var/spack/repos/builtin/packages/cosma/package.py +++ b/var/spack/repos/builtin/packages/cosma/package.py @@ -89,17 +89,20 @@ def cosma_blas_cmake_arg(self): query_to_cmake_arg = [ ("+cuda", "CUDA"), ("+rocm", "ROCM"), - ("^intel-mkl", "MKL"), - ("^intel-oneapi-mkl", "MKL"), - ("^cray-libsci", "CRAY_LIBSCI"), - ("^netlib-lapack", "CUSTOM"), - ("^openblas", "OPENBLAS"), - ("^fujitsu-ssl2", "SSL2"), + ("^[virtuals=blas] intel-oneapi-mkl", "MKL"), + ("^[virtuals=blas] cray-libsci", "CRAY_LIBSCI"), + ("^[virtuals=blas] netlib-lapack", "CUSTOM"), + ("^[virtuals=blas] openblas", "OPENBLAS"), + ("^[virtuals=blas] fujitsu-ssl2", "SSL2"), ] if self.version >= Version("2.4.0"): query_to_cmake_arg.extend( - [("^blis", "BLIS"), ("^amdblis", "BLIS"), ("^atlas", "ATLAS")] + [ + ("^[virtuals=blas] blis", "BLIS"), + ("^[virtuals=blas] amdblis", "BLIS"), + ("^[virtuals=blas] atlas", "ATLAS"), + ] ) for query, cmake_arg in query_to_cmake_arg: @@ -113,7 +116,7 @@ def cosma_scalapack_cmake_arg(self): if spec.satisfies("~scalapack"): return "OFF" - elif spec.satisfies("^intel-mkl") or spec.satisfies("^intel-oneapi-mkl"): + elif spec.satisfies("^[virtuals=scalapack] intel-oneapi-mkl"): return "MKL" elif spec.satisfies("^cray-libsci"): return "CRAY_LIBSCI" diff --git a/var/spack/repos/builtin/packages/costa/package.py b/var/spack/repos/builtin/packages/costa/package.py index 202e4a1c4f9..b8e09d4a4ef 100644 --- a/var/spack/repos/builtin/packages/costa/package.py +++ b/var/spack/repos/builtin/packages/costa/package.py @@ -58,9 +58,9 @@ def costa_scalapack_cmake_arg(self): if spec.satisfies("~scalapack"): return "OFF" - elif spec.satisfies("^intel-mkl") or spec.satisfies("^intel-oneapi-mkl"): + elif spec.satisfies("^[virtuals=scalapack] intel-oneapi-mkl"): return "MKL" - elif spec.satisfies("^cray-libsci"): + elif spec.satisfies("^[virtuals=scalapack] cray-libsci"): return "CRAY_LIBSCI" return "CUSTOM" diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py index 1396eb26a3c..90bd834802f 100644 --- a/var/spack/repos/builtin/packages/cp2k/package.py +++ b/var/spack/repos/builtin/packages/cp2k/package.py @@ -495,7 +495,7 @@ def edit(self, pkg, spec, prefix): } dflags = ["-DNDEBUG"] if spec.satisfies("@:2023.2") else [] - if fftw.name in ("intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"): + if fftw.name == "intel-oneapi-mkl": cppflags = ["-D__FFTW3_MKL", "-I{0}".format(fftw_header_dir)] else: cppflags = ["-D__FFTW3", "-I{0}".format(fftw_header_dir)] @@ -705,7 +705,7 @@ def edit(self, pkg, spec, prefix): if spec.satisfies("platform=darwin"): cppflags.extend(["-D__NO_STATM_ACCESS"]) - if spec["blas"].name in ("intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"): + if spec["blas"].name == "intel-oneapi-mkl": cppflags += ["-D__MKL"] elif spec["blas"].name == "accelerate": cppflags += ["-D__ACCELERATE"] @@ -725,8 +725,6 @@ def edit(self, pkg, spec, prefix): else: mpi = spec["mpi:cxx"].libs - # while intel-mkl has a mpi variant and adds the scalapack - # libs to its libs, intel-oneapi-mkl does not. if spec["scalapack"].name == "intel-oneapi-mkl": mpi_impl = "openmpi" if spec["mpi"].name in ["openmpi", "hpcx-mpi"] else "intelmpi" scalapack = [ @@ -1098,7 +1096,7 @@ def cmake_args(self): lapack = spec["lapack"] blas = spec["blas"] - if blas.name in ["intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"]: + if blas.name == "intel-oneapi-mkl": args += ["-DCP2K_BLAS_VENDOR=MKL"] if sys.platform == "darwin": args += [ diff --git a/var/spack/repos/builtin/packages/ctffind/package.py b/var/spack/repos/builtin/packages/ctffind/package.py index 98058580fd7..f2b0b674533 100644 --- a/var/spack/repos/builtin/packages/ctffind/package.py +++ b/var/spack/repos/builtin/packages/ctffind/package.py @@ -43,7 +43,7 @@ def url_for_version(self, version): def configure_args(self): config_args = [] - if self.spec["fftw-api"].name in INTEL_MATH_LIBRARIES: + if self.spec.satisfies("^[virtuals=fftw-api] intel-oneapi-mkl"): config_args.extend( [ "--enable-mkl", diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py index 1f55d7e87e6..2624f7e4d09 100644 --- a/var/spack/repos/builtin/packages/dealii/package.py +++ b/var/spack/repos/builtin/packages/dealii/package.py @@ -388,12 +388,16 @@ class Dealii(CMakePackage, CudaPackage): # Check that the combination of variants makes sense # 64-bit BLAS: - for _package in ["openblas", "intel-mkl", "intel-parallel-studio+mkl"]: - conflicts( - "^{0}+ilp64".format(_package), - when="@:8.5.1", - msg="64bit BLAS is only supported from 9.0.0", - ) + conflicts( + "^[virtuals=lapack] openblas+ilp64", + when="@:8.5.1", + msg="64bit BLAS is only supported from 9.0.0", + ) + conflicts( + "^[virtuals=lapack] intel-oneapi-mkl+ilp64", + when="@:8.5.1", + msg="64bit BLAS is only supported from 9.0.0", + ) # MPI requirements: for _package in [ @@ -505,10 +509,8 @@ def cmake_args(self): # 64 bit indices options.append(self.define_from_variant("DEAL_II_WITH_64BIT_INDICES", "int64")) - if ( - spec.satisfies("^openblas+ilp64") - or spec.satisfies("^intel-mkl+ilp64") - or spec.satisfies("^intel-parallel-studio+mkl+ilp64") + if spec.satisfies("^[virtuals=lapack] openblas+ilp64") or spec.satisfies( + "^[virtuals=lapack] intel-oneapi-mkl+ilp64" ): options.append(self.define("LAPACK_WITH_64BIT_BLAS_INDICES", True)) @@ -570,20 +572,9 @@ def cmake_args(self): options.append(self.define_from_variant("DEAL_II_WITH_TBB", "threads")) else: options.append(self.define_from_variant("DEAL_II_WITH_THREADS", "threads")) + if spec.satisfies("+threads"): - if spec.satisfies("^intel-parallel-studio+tbb"): - # deal.II/cmake will have hard time picking up TBB from Intel. - tbb_ver = ".".join(("%s" % spec["tbb"].version).split(".")[1:]) - options.extend( - [ - self.define("TBB_FOUND", True), - self.define("TBB_VERSION", tbb_ver), - self.define("TBB_INCLUDE_DIRS", ";".join(spec["tbb"].headers.directories)), - self.define("TBB_LIBRARIES", spec["tbb"].libs.joined(";")), - ] - ) - else: - options.append(self.define("TBB_DIR", spec["tbb"].prefix)) + options.append(self.define("TBB_DIR", spec["tbb"].prefix)) # Optional dependencies for which library names are the same as CMake # variables: diff --git a/var/spack/repos/builtin/packages/dla-future/package.py b/var/spack/repos/builtin/packages/dla-future/package.py index e261c3aef3b..b2a8a4b68bf 100644 --- a/var/spack/repos/builtin/packages/dla-future/package.py +++ b/var/spack/repos/builtin/packages/dla-future/package.py @@ -182,71 +182,41 @@ def cmake_args(self): args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared")) # BLAS/LAPACK - if spec.version <= Version("0.4") and spec["lapack"].name in INTEL_MATH_LIBRARIES: + if spec.version <= Version("0.4") and spec.satisfies( + "^[virtuals=lapack] intel-oneapi-mkl" + ): mkl_provider = spec["lapack"].name vmap = { - "intel-oneapi-mkl": { - "threading": { - "none": "sequential", - "openmp": "gnu_thread", - "tbb": "tbb_thread", - }, - "mpi": {"intel-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"}, - }, - "intel-mkl": { - "threading": {"none": "seq", "openmp": "omp", "tbb": "tbb"}, - "mpi": {"intel-mpi": "mpich", "mpich": "mpich", "openmpi": "ompi"}, - }, + "threading": {"none": "sequential", "openmp": "gnu_thread", "tbb": "tbb_thread"}, + "mpi": {"intel-oneapi-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"}, } - if mkl_provider not in vmap.keys(): - raise RuntimeError( - f"dla-future does not support {mkl_provider} as lapack provider" - ) - mkl_mapper = vmap[mkl_provider] - - mkl_threads = mkl_mapper["threading"][spec[mkl_provider].variants["threads"].value] - if mkl_provider == "intel-oneapi-mkl": - args += [ - self.define("DLAF_WITH_MKL", True), - self.define("MKL_INTERFACE", "lp64"), - self.define("MKL_THREADING", mkl_threads), - ] - elif mkl_provider == "intel-mkl": - args += [ - ( - self.define("DLAF_WITH_MKL", True) - if spec.version <= Version("0.3") - else self.define("DLAF_WITH_MKL_LEGACY", True) - ), - self.define("MKL_LAPACK_TARGET", f"mkl::mkl_intel_32bit_{mkl_threads}_dyn"), - ] + mkl_threads = vmap["threading"][spec["intel-oneapi-mkl"].variants["threads"].value] + args += [ + self.define("DLAF_WITH_MKL", True), + self.define("MKL_INTERFACE", "lp64"), + self.define("MKL_THREADING", mkl_threads), + ] if spec.satisfies("+scalapack"): try: mpi_provider = spec["mpi"].name if mpi_provider in ["mpich", "cray-mpich", "mvapich", "mvapich2"]: - mkl_mpi = mkl_mapper["mpi"]["mpich"] + mkl_mpi = vmap["mpi"]["mpich"] else: - mkl_mpi = mkl_mapper["mpi"][mpi_provider] + mkl_mpi = vmap["mpi"][mpi_provider] except KeyError: raise RuntimeError( f"dla-future does not support {spec['mpi'].name} as mpi provider with " f"the selected scalapack provider {mkl_provider}" ) - if mkl_provider == "intel-oneapi-mkl": - args.append(self.define("MKL_MPI", mkl_mpi)) - elif mkl_provider == "intel-mkl": - args.append( - self.define( - "MKL_SCALAPACK_TARGET", - f"mkl::scalapack_{mkl_mpi}_intel_32bit_{mkl_threads}_dyn", - ) - ) + args.append(self.define("MKL_MPI", mkl_mpi)) else: - args.append(self.define("DLAF_WITH_MKL", spec["lapack"].name in INTEL_MATH_LIBRARIES)) + args.append( + self.define("DLAF_WITH_MKL", spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl")) + ) add_dlaf_prefix = lambda x: x if spec.satisfies("@:0.6") else "DLAF_" + x args.append( self.define( diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py index 87d1c068de5..2567be42f57 100644 --- a/var/spack/repos/builtin/packages/dyninst/package.py +++ b/var/spack/repos/builtin/packages/dyninst/package.py @@ -63,7 +63,6 @@ class Dyninst(CMakePackage): # package layout. Need to use tbb provided config instead. conflicts("^intel-tbb@2021.1:") conflicts("^intel-oneapi-tbb@2021.1:") - conflicts("^intel-parallel-studio") depends_on("tbb") requires("^[virtuals=tbb] intel-tbb@2019.9:", when="@13.0.0:") diff --git a/var/spack/repos/builtin/packages/elk/package.py b/var/spack/repos/builtin/packages/elk/package.py index 4364beba11f..c2132c88f44 100644 --- a/var/spack/repos/builtin/packages/elk/package.py +++ b/var/spack/repos/builtin/packages/elk/package.py @@ -81,11 +81,7 @@ class Elk(MakefilePackage): depends_on("mkl", when="linalg=mkl") with when("linalg=mkl +openmp"): - depends_on("intel-mkl threads=openmp", when="^[virtuals=mkl] intel-mkl") depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=mkl] intel-oneapi-mkl") - depends_on( - "intel-parallel-studio threads=openmp", when="^[virtuals=mkl] intel-parallel-studio" - ) depends_on("openblas", when="linalg=openblas") depends_on("openblas threads=openmp", when="linalg=openblas +openmp") @@ -200,8 +196,6 @@ def edit(self, spec, prefix): config["SRC_FFT"] += " cfftifc_mkl.f90" cp = which("cp") mkl_prefix = spec["mkl"].prefix - if spec.satisfies("^intel-mkl"): - mkl_prefix = mkl_prefix.mkl cp( join_path(mkl_prefix.include, "mkl_dfti.f90"), join_path(self.build_directory, "src"), diff --git a/var/spack/repos/builtin/packages/elmerfem/package.py b/var/spack/repos/builtin/packages/elmerfem/package.py index d4b2225cd1c..e4f9066b0c1 100644 --- a/var/spack/repos/builtin/packages/elmerfem/package.py +++ b/var/spack/repos/builtin/packages/elmerfem/package.py @@ -69,7 +69,7 @@ def cmake_args(self): else: args.append("-DWITH_MPI=OFF") - if self.spec.satisfies("^intel-mkl"): + if self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"): args.append("-DWITH_MKL:BOOL=TRUE") if spec.satisfies("+openmp"): diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py index 9f654131beb..f14c2d314e3 100644 --- a/var/spack/repos/builtin/packages/elpa/package.py +++ b/var/spack/repos/builtin/packages/elpa/package.py @@ -93,14 +93,9 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage): # https://gitlab.mpcdf.mpg.de/elpa/elpa/-/blob/master/documentation/PERFORMANCE_TUNING.md?ref_type=heads#builds-with-openmp-enabled with when("+openmp"): requires("^openblas threads=openmp", when="^[virtuals=blas,lapack] openblas") - requires("^intel-mkl threads=openmp", when="^[virtuals=blas,lapack] intel-mkl") requires( "^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas,lapack] intel-oneapi-mkl" ) - requires( - "^intel-parallel-studio threads=openmp", - when="^[virtuals=blas,lapack] intel-parallel-studio", - ) # fails to build due to broken type-bound procedures in OMP parallel regions conflicts( diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py index ea4257c94d5..edc77eacbfe 100644 --- a/var/spack/repos/builtin/packages/esmf/package.py +++ b/var/spack/repos/builtin/packages/esmf/package.py @@ -343,11 +343,7 @@ def setup_build_environment(self, env): "^[virtuals=mpi] hpcx-mpi" ): env.set("ESMF_COMM", "openmpi") - elif ( - spec.satisfies("^[virtuals=mpi] intel-parallel-studio+mpi") - or spec.satisfies("^[virtuals=mpi] intel-mpi") - or spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi") - ): + elif spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi"): env.set("ESMF_COMM", "intelmpi") elif spec.satisfies("^[virtuals=mpi] mpt"): # MPT is the HPE (SGI) variant of mpich diff --git a/var/spack/repos/builtin/packages/exabayes/package.py b/var/spack/repos/builtin/packages/exabayes/package.py index 1fd71005e06..1e96595fe7b 100644 --- a/var/spack/repos/builtin/packages/exabayes/package.py +++ b/var/spack/repos/builtin/packages/exabayes/package.py @@ -30,21 +30,15 @@ class Exabayes(AutotoolsPackage): # GCC 7.1.0 is used. conflicts("%gcc@:4.5.4, 7.1.0:", when="@:1.5.0") conflicts("%clang@:3.1") - conflicts("^intel-mpi", when="+mpi") - conflicts("^intel-parallel-studio+mpi", when="+mpi") + conflicts("^intel-oneapi-mpi", when="+mpi") conflicts("^mvapich2", when="+mpi") conflicts("^spectrum-mpi", when="+mpi") def configure_args(self): - args = [] - if self.spec.satisfies("+mpi"): - args.append("--enable-mpi") - else: - args.append("--disable-mpi") - return args + return self.enable_or_disable("mpi") def flag_handler(self, name, flags): if name.lower() == "cxxflags": # manual cites need for c++11 flags.append(self.compiler.cxx11_flag) - return (flags, None, None) + return flags, None, None diff --git a/var/spack/repos/builtin/packages/exciting/package.py b/var/spack/repos/builtin/packages/exciting/package.py index 24e5631235c..2c9cf6df2a3 100644 --- a/var/spack/repos/builtin/packages/exciting/package.py +++ b/var/spack/repos/builtin/packages/exciting/package.py @@ -42,11 +42,8 @@ class Exciting(MakefilePackage): depends_on("mkl", when="+mkl") depends_on("mpi", when="+mpi") depends_on("scalapack", when="+scalapack") - # conflicts('%gcc@10:', msg='exciting cannot be built with GCC 10') - requires("%intel", when="^mkl", msg="Intel MKL only works with the Intel compiler") - requires("%intel", when="^intel-mkl", msg="Intel MKL only works with the Intel compiler") - requires("%intel", when="^intel-mpi", msg="Intel MPI only works with the Intel compiler") + conflicts("%intel") def patch(self): """Fix bad logic in m_makespectrum.f90 for the Oxygen release""" diff --git a/var/spack/repos/builtin/packages/fds/package.py b/var/spack/repos/builtin/packages/fds/package.py index 71bf1562e32..3094aef334f 100644 --- a/var/spack/repos/builtin/packages/fds/package.py +++ b/var/spack/repos/builtin/packages/fds/package.py @@ -44,10 +44,7 @@ class Fds(MakefilePackage): ) requires( - "^intel-mkl", - "^intel-oneapi-mkl", - policy="one_of", - msg="FDS builds require either Intel MKL or Intel oneAPI MKL library", + "^intel-oneapi-mkl", policy="one_of", msg="FDS builds require Intel oneAPI MKL library" ) requires( @@ -56,12 +53,6 @@ class Fds(MakefilePackage): msg="OpenMPI can only be used with GNU Fortran on Linux platform", ) - requires( - "^intel-mpi^intel-mkl", - when="platform=linux %intel", - msg="Intel MPI and Intel MKL can only be used with Intel Fortran on Linux platform", - ) - requires( "^intel-oneapi-mpi^intel-oneapi-mkl", when="platform=linux %oneapi", @@ -85,7 +76,7 @@ def edit(self, spec, prefix): @property def build_targets(self): spec = self.spec - mpi_mapping = {"openmpi": "ompi", "intel-oneapi-mpi": "impi", "intel-mpi": "impi"} + mpi_mapping = {"openmpi": "ompi", "intel-oneapi-mpi": "impi"} compiler_mapping = {"gcc": "gnu", "oneapi": "intel", "intel": "intel"} platform_mapping = {"linux": "linux", "darwin": "osx"} mpi_prefix = mpi_mapping[spec["mpi"].name] diff --git a/var/spack/repos/builtin/packages/gaudi/package.py b/var/spack/repos/builtin/packages/gaudi/package.py index 13366ed570d..72664b474f2 100644 --- a/var/spack/repos/builtin/packages/gaudi/package.py +++ b/var/spack/repos/builtin/packages/gaudi/package.py @@ -142,7 +142,7 @@ class Gaudi(CMakePackage, CudaPackage): # ROOT does not like being exposed to LLVM symbols. # The Intel VTune dependency is taken aside because it requires a license - depends_on("intel-parallel-studio -mpi +vtune", when="+vtune") + depends_on("intel-oneapi-vtune", when="+vtune") def patch(self): # ensure an empty pytest.ini is present to prevent finding one diff --git a/var/spack/repos/builtin/packages/gearshifft/package.py b/var/spack/repos/builtin/packages/gearshifft/package.py index 09d3a9aa6fc..10b2b284d5f 100644 --- a/var/spack/repos/builtin/packages/gearshifft/package.py +++ b/var/spack/repos/builtin/packages/gearshifft/package.py @@ -41,7 +41,7 @@ class Gearshifft(CMakePackage): depends_on("clfft@2.12.0:", when="+clfft") depends_on("fftw@3.3.4:~mpi~openmp", when="+fftw~openmp") depends_on("fftw@3.3.4:~mpi+openmp", when="+fftw+openmp") - depends_on("intel-mkl threads=openmp", when="+mkl") + depends_on("intel-oneapi-mkl threads=openmp", when="+mkl") depends_on("rocfft", when="+rocfft") def cmake_args(self): diff --git a/var/spack/repos/builtin/packages/grid/package.py b/var/spack/repos/builtin/packages/grid/package.py index 6aa7e907044..5dffc84ca82 100644 --- a/var/spack/repos/builtin/packages/grid/package.py +++ b/var/spack/repos/builtin/packages/grid/package.py @@ -75,24 +75,25 @@ def configure_args(self): spec = self.spec args = ["--with-gmp", "--with-mpfr"] - if spec.satisfies("^intel-mkl"): - if spec.satisfies("+fftw") or spec.satisfies("+lapack"): - args.append("--enable-mkl") + if spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl") or spec.satisfies( + "^[virtuals=fftw-api] intel-oneapi-mkl" + ): + args.append("--enable-mkl") else: if spec.satisfies("+fftw"): - args.append("--with-fftw={0}".format(self.spec["fftw-api"].prefix)) + args.append(f"--with-fftw={self.spec['fftw-api'].prefix}") if spec.satisfies("+lapack"): - args.append("--enable-lapack={0}".format(self.spec["lapack"].prefix)) + args.append(f"--enable-lapack={self.spec['lapack'].prefix}") # lapack is searched only as `-llapack`, so anything else # wouldn't be found, causing an error. - args.append("LIBS={0}".format(self.spec["lapack"].libs.ld_flags)) + args.append(f"LIBS={self.spec['lapack'].libs.ld_flags}") if "comms=none" not in spec: # The build system can easily get very confused about MPI support # and what linker to use. In many case it'd end up building the # code with support for MPI but without using `mpicxx` or linking to # `-lmpi`, wreaking havoc. Forcing `CXX` to be mpicxx should help. - args.extend(["CC={0}".format(spec["mpi"].mpicc), "CXX={0}".format(spec["mpi"].mpicxx)]) + args.extend([f"CC={spec['mpi'].mpicc}", f"CXX={spec['mpi'].mpicxx}"]) args += self.enable_or_disable("timers") args += self.enable_or_disable("chroma") @@ -119,11 +120,11 @@ def configure_args(self): args.extend( [ "--enable-simd=GEN", - "--enable-gen-simd-width={0}".format(spec.variants["gen-simd-width"].value), + f"--enable-gen-simd-width={spec.variants['gen-simd-width'].value}", ] ) - args.append("--enable-comms={0}".format(spec.variants["comms"].value)) - args.append("--enable-rng={0}".format(spec.variants["rng"].value)) + args.append(f"--enable-comms={spec.variants['comms'].value}") + args.append(f"--enable-rng={spec.variants['rng'].value}") return args diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index 9d24159d724..42c7daa067e 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -529,9 +529,8 @@ class Gromacs(CMakePackage, CudaPackage): ) # If the Intel suite is used for Lapack, it must be used for fftw and vice-versa - for _intel_pkg in INTEL_MATH_LIBRARIES: - requires(f"^[virtuals=fftw-api] {_intel_pkg}", when=f"^[virtuals=lapack] {_intel_pkg}") - requires(f"^[virtuals=lapack] {_intel_pkg}", when=f"^[virtuals=fftw-api] {_intel_pkg}") + requires("^[virtuals=fftw-api] intel-oneapi-mkl", when="^[virtuals=lapack] intel-oneapi-mkl") + requires("^[virtuals=lapack] intel-oneapi-mkl", when="^[virtuals=fftw-api] intel-oneapi-mkl") patch("gmxDetectCpu-cmake-3.14.patch", when="@2018:2019.3^cmake@3.14.0:") patch("gmxDetectSimd-cmake-3.14.patch", when="@5.0:2017^cmake@3.14.0:") @@ -911,9 +910,8 @@ def cmake_args(self): ) options.append(f"-DNVSHMEM_ROOT={nvshmem_root}") - if self.spec["lapack"].name in INTEL_MATH_LIBRARIES: - # fftw-api@3 is provided by intel-mkl or intel-parallel-studio - # we use the mkl interface of gromacs + if self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"): + # fftw-api@3 is provided by intel-oneapi-mkl options.append("-DGMX_FFT_LIBRARY=mkl") if self.spec.satisfies("@:2022"): options.append( diff --git a/var/spack/repos/builtin/packages/gsibec/package.py b/var/spack/repos/builtin/packages/gsibec/package.py index 68b59b3e6c4..b58331e6be4 100644 --- a/var/spack/repos/builtin/packages/gsibec/package.py +++ b/var/spack/repos/builtin/packages/gsibec/package.py @@ -37,14 +37,11 @@ class Gsibec(CMakePackage): depends_on("lapack", type=("build", "run")) - depends_on("ecbuild", type=("build")) - depends_on("jedi-cmake", type=("build")) - depends_on("sp", type=("build")) + depends_on("ecbuild", type="build") + depends_on("jedi-cmake", type="build") + depends_on("sp", type="build") def cmake_args(self): - args = [] - - mkl_providers = ["intel-mkl", "intel-oneapi-mkl", "intel-parallel-studio"] - args.append(self.define("ENABLE_MKL", self.spec["lapack"].name in mkl_providers)) - - return args + return [ + self.define("ENABLE_MKL", self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl")) + ] diff --git a/var/spack/repos/builtin/packages/hpcc/package.py b/var/spack/repos/builtin/packages/hpcc/package.py index 13c290abb7f..7ec45c10d8a 100644 --- a/var/spack/repos/builtin/packages/hpcc/package.py +++ b/var/spack/repos/builtin/packages/hpcc/package.py @@ -120,9 +120,8 @@ def edit(self, spec, prefix): lin_alg_libs.append(join_path(spec["fftw-api"].prefix.lib, "libsfftw_mpi.so")) lin_alg_libs.append(join_path(spec["fftw-api"].prefix.lib, "libsfftw.so")) - elif ( - self.spec.variants["fft"].value == "mkl" - and spec["fftw-api"].name in INTEL_MATH_LIBRARIES + elif self.spec.variants["fft"].value == "mkl" and spec.satisfies( + "^[virtuals=fftw-api] intel-oneapi-mkl" ): mklroot = env["MKLROOT"] self.config["@LAINC@"] += f" -I{join_path(mklroot, 'include/fftw')}" @@ -159,8 +158,6 @@ def edit(self, spec, prefix): # Compiler flags for CPU architecture optimizations if spec.satisfies("%intel"): - # with intel-parallel-studio+mpi the '-march' arguments - # are not passed to icc arch_opt = optimization_flags(self.compiler, spec.target) self.config["@CCFLAGS@"] = f"-O3 -restrict -ansi-alias -ip {arch_opt}" self.config["@CCNOOPT@"] = "-restrict" diff --git a/var/spack/repos/builtin/packages/hpl/package.py b/var/spack/repos/builtin/packages/hpl/package.py index 882a25024b1..ac2129be05d 100644 --- a/var/spack/repos/builtin/packages/hpl/package.py +++ b/var/spack/repos/builtin/packages/hpl/package.py @@ -126,11 +126,7 @@ def configure_args(self): if self.spec.satisfies("+openmp"): cflags.append(self.compiler.openmp_flag) - if ( - self.spec.satisfies("^intel-mkl") - or self.spec.satisfies("^intel-oneapi-mkl") - or self.spec.satisfies("^intel-parallel-studio+mkl") - ): + if self.spec.satisfies("^intel-oneapi-mkl"): ldflags.append(self.spec["blas"].libs.ld_flags) if self.spec.satisfies("%aocc"): diff --git a/var/spack/repos/builtin/packages/intel-mkl/package.py b/var/spack/repos/builtin/packages/intel-mkl/package.py deleted file mode 100644 index 2358ebc480b..00000000000 --- a/var/spack/repos/builtin/packages/intel-mkl/package.py +++ /dev/null @@ -1,187 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import sys - -from spack.package import * - - -@IntelOneApiPackage.update_description -class IntelMkl(IntelPackage): - """Intel Math Kernel Library. This package has been replaced by - intel-oneapi-mkl. - - """ - - maintainers("rscohn2") - - homepage = "https://software.intel.com/en-us/intel-mkl" - - version( - "2020.4.304", - sha256="2314d46536974dbd08f2a4e4f9e9a155dc7e79e2798c74e7ddfaad00a5917ea5", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16917/l_mkl_2020.4.304.tgz", - deprecated=True, - ) - version( - "2020.3.279", - sha256="2b8e434ecc9462491130ba25a053927fd1a2eca05e12acb5936b08c486857a04", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16903/l_mkl_2020.3.279.tgz", - deprecated=True, - ) - version( - "2020.2.254", - sha256="ed00a267af362a6c14212bd259ab1673d64337e077263033edeef8ac72c10223", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16849/l_mkl_2020.2.254.tgz", - deprecated=True, - ) - version( - "2020.1.217", - sha256="082a4be30bf4f6998e4d6e3da815a77560a5e66a68e254d161ab96f07086066d", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16533/l_mkl_2020.1.217.tgz", - deprecated=True, - ) - version( - "2020.0.166", - sha256="f6d92deb3ff10b11ba3df26b2c62bb4f0f7ae43e21905a91d553e58f0f5a8ae0", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16232/l_mkl_2020.0.166.tgz", - deprecated=True, - ) - version( - "2019.5.281", - sha256="9995ea4469b05360d509c9705e9309dc983c0a10edc2ae3a5384bc837326737e", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15816/l_mkl_2019.5.281.tgz", - deprecated=True, - ) - version( - "2019.4.243", - sha256="fcac7b0369665d93f0c4dd98afe2816aeba5410e2b760655fe55fc477f8f33d0", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15540/l_mkl_2019.4.243.tgz", - deprecated=True, - ) - version( - "2019.3.199", - sha256="06de2b54f4812e7c39a118536259c942029fe1d6d8918ad9df558a83c4162b8f", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15275/l_mkl_2019.3.199.tgz", - deprecated=True, - ) - version( - "2019.2.187", - sha256="2bf004e6b5adb4f956993d6c20ea6ce289bb630314dd501db7f2dd5b9978ed1d", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15095/l_mkl_2019.2.187.tgz", - deprecated=True, - ) - version( - "2019.1.144", - sha256="5205a460a9c685f7a442868367389b2d0c25e1455346bc6a37c5b8ff90a20fbb", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14895/l_mkl_2019.1.144.tgz", - deprecated=True, - ) - version( - "2019.0.117", - sha256="4e1fe2c705cfc47050064c0d6c4dee1a8c6740ac1c4f64dde9c7511c4989c7ad", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13575/l_mkl_2019.0.117.tgz", - deprecated=True, - ) - version( - "2018.4.274", - sha256="18eb3cde3e6a61a88f25afff25df762a560013f650aaf363f7d3d516a0d04881", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13725/l_mkl_2018.4.274.tgz", - deprecated=True, - ) - version( - "2018.3.222", - sha256="108d59c0927e58ce8c314db6c2b48ee331c3798f7102725f425d6884eb6ed241", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13005/l_mkl_2018.3.222.tgz", - deprecated=True, - ) - version( - "2018.2.199", - sha256="e28d12173bef9e615b0ded2f95f59a42b3e9ad0afa713a79f8801da2bfb31936", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12725/l_mkl_2018.2.199.tgz", - deprecated=True, - ) - version( - "2018.1.163", - sha256="f6dc263fc6f3c350979740a13de1b1e8745d9ba0d0f067ece503483b9189c2ca", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12414/l_mkl_2018.1.163.tgz", - deprecated=True, - ) - version( - "2018.0.128", - sha256="c368baa40ca88057292512534d7fad59fa24aef06da038ea0248e7cd1e280cec", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12070/l_mkl_2018.0.128.tgz", - deprecated=True, - ) - version( - "2017.4.239", - sha256="dcac591ed1e95bd72357fd778edba215a7eab9c6993236373231cc16c200c92a", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12147/l_mkl_2017.4.239.tgz", - deprecated=True, - ) - version( - "2017.3.196", - sha256="fd7295870fa164d6138c9818304f25f2bb263c814a6c6539c9fe4e104055f1ca", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11544/l_mkl_2017.3.196.tgz", - deprecated=True, - ) - version( - "2017.2.174", - sha256="0b8a3fd6bc254c3c3d9d51acf047468c7f32bf0baff22aa1e064d16d9fea389f", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11306/l_mkl_2017.2.174.tgz", - deprecated=True, - ) - version( - "2017.1.132", - sha256="8c6bbeac99326d59ef3afdc2a95308c317067efdaae50240d2f4a61f37622e69", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11024/l_mkl_2017.1.132.tgz", - deprecated=True, - ) - version( - "2017.0.098", - sha256="f2233e8e011f461d9c15a853edf7ed0ae8849aa665a1ec765c1ff196fd70c4d9", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9662/l_mkl_2017.0.098.tgz", - deprecated=True, - ) - # built from parallel_studio_xe_2016.3.x - version( - "11.3.3.210", - sha256="ff858f0951fd698e9fb30147ea25a8a810c57f0126c8457b3b0cdf625ea43372", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9068/l_mkl_11.3.3.210.tgz", - deprecated=True, - ) - # built from parallel_studio_xe_2016.2.062 - version( - "11.3.2.181", - sha256="bac04a07a1fe2ae4996a67d1439ee90c54f31305e8663d1ccfce043bed84fc27", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8711/l_mkl_11.3.2.181.tgz", - deprecated=True, - ) - - depends_on("cpio", type="build") - - conflicts("target=ppc64:", msg="intel-mkl is only available for x86_64") - conflicts("target=ppc64le:", msg="intel-mkl is only available for x86_64") - conflicts("target=aarch64:", msg="intel-mkl is only available for x86_64") - - variant("shared", default=True, description="Builds shared library") - variant("ilp64", default=False, description="64 bit integers") - variant( - "threads", - default="none", - description="Multithreading support", - values=("openmp", "tbb", "none"), - multi=False, - ) - - provides("blas", "lapack") - provides("lapack@3.9.0", when="@2020.4") - provides("lapack@3.7.0", when="@11.3") - provides("scalapack") - provides("mkl") - provides("fftw-api@3", when="@2017:") - - if sys.platform == "darwin": - # there is no libmkl_gnu_thread on macOS - conflicts("threads=openmp", when="%gcc") diff --git a/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py index cb20733f513..9af601bad3e 100644 --- a/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py +++ b/var/spack/repos/builtin/packages/intel-mpi-benchmarks/package.py @@ -36,15 +36,11 @@ class IntelMpiBenchmarks(MakefilePackage): version("2019.2", sha256="0bc2224a913073aaa5958f6ae08341e5fcd39cedc6722a09bfd4a3d7591a340b") version("2019.1", sha256="fe0d065b9936b6943ea83cb3d00aede43b17565285c6b1791fee8e340853ef79") version("2019.0", sha256="1c7d44aa7fd86ca84ac7cae1a69a8426243048d6294582337f1de7b4ffe68d37") - version("2018.1", sha256="718a4eb155f18cf15a736f6496332407b5837cf1f19831723d4cfe5266c43507") - version("2018.0", sha256="2e60a9894a686a95791be2227bc569bf81ca3875421b5307df7d83f885b1de88") depends_on("c", type="build") # generated depends_on("cxx", type="build") # generated depends_on("mpi", when="@2019:") - depends_on("intel-mpi", when="@2018") - depends_on("gmake", type="build", when="@2018") conflicts( "^openmpi", diff --git a/var/spack/repos/builtin/packages/intel-mpi/package.py b/var/spack/repos/builtin/packages/intel-mpi/package.py deleted file mode 100644 index bef52556746..00000000000 --- a/var/spack/repos/builtin/packages/intel-mpi/package.py +++ /dev/null @@ -1,174 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack.package import * - - -@IntelOneApiPackage.update_description -class IntelMpi(IntelPackage): - """Intel MPI. This package has been deprecated. Use intel-oneapi-mpi instead.""" - - maintainers("rscohn2") - - homepage = "https://software.intel.com/en-us/intel-mpi-library" - - version( - "2019.10.317", - sha256="28e1b615e63d2170a99feedc75e3b0c5a7e1a07dcdaf0a4181831b07817a5346", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17534/l_mpi_2019.10.317.tgz", - deprecated=True, - ) - version( - "2019.9.304", - sha256="618a5dc2de54306645e6428c5eb7d267b54b11b5a83dfbcad7d0f9e0d90bb2e7", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17263/l_mpi_2019.9.304.tgz", - deprecated=True, - ) - version( - "2019.8.254", - sha256="fa163b4b79bd1b7509980c3e7ad81b354fc281a92f9cf2469bf4d323899567c0", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16814/l_mpi_2019.8.254.tgz", - deprecated=True, - ) - version( - "2019.7.217", - sha256="90383b0023f84ac003a55d8bb29dbcf0c639f43a25a2d8d8698a16e770ac9c07", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16546/l_mpi_2019.7.217.tgz", - deprecated=True, - ) - version( - "2019.6.166", - sha256="119be69f1117c93a9e5e9b8b4643918e55d2a55a78ad9567f77d16cdaf18cd6e", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16120/l_mpi_2019.6.166.tgz", - deprecated=True, - ) - version( - "2019.5.281", - sha256="9c59da051f1325b221e5bc4d8b689152e85d019f143069fa39e17989306811f4", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15838/l_mpi_2019.5.281.tgz", - deprecated=True, - ) - version( - "2019.4.243", - sha256="233a8660b92ecffd89fedd09f408da6ee140f97338c293146c9c080a154c5fcd", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15553/l_mpi_2019.4.243.tgz", - deprecated=True, - ) - version( - "2019.3.199", - sha256="5304346c863f64de797250eeb14f51c5cfc8212ff20813b124f20e7666286990", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15260/l_mpi_2019.3.199.tgz", - deprecated=True, - ) - version( - "2019.2.187", - sha256="6a3305933b5ef9e3f7de969e394c91620f3fa4bb815a4f439577739d04778b20", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15040/l_mpi_2019.2.187.tgz", - deprecated=True, - ) - version( - "2019.1.144", - sha256="dac86a5db6b86503313742b17535856a432955604f7103cb4549a9bfc256c3cd", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14879/l_mpi_2019.1.144.tgz", - deprecated=True, - ) - version( - "2019.0.117", - sha256="dfb403f49c1af61b337aa952b71289c7548c3a79c32c57865eab0ea0f0e1bc08", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13584/l_mpi_2019.0.117.tgz", - deprecated=True, - ) - version( - "2018.4.274", - sha256="a1114b3eb4149c2f108964b83cad02150d619e50032059d119ac4ffc9d5dd8e0", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13741/l_mpi_2018.4.274.tgz", - deprecated=True, - ) - version( - "2018.3.222", - sha256="5021d14b344fc794e89f146e4d53d70184d7048610895d7a6a1e8ac0cf258999", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13112/l_mpi_2018.3.222.tgz", - deprecated=True, - ) - version( - "2018.2.199", - sha256="0927f1bff90d10974433ba2892e3fd38e6fee5232ab056a9f9decf565e814460", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12748/l_mpi_2018.2.199.tgz", - deprecated=True, - ) - version( - "2018.1.163", - sha256="130b11571c3f71af00a722fa8641db5a1552ac343d770a8304216d8f5d00e75c", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12414/l_mpi_2018.1.163.tgz", - deprecated=True, - ) - version( - "2018.0.128", - sha256="debaf2cf80df06db9633dfab6aa82213b84a665a55ee2b0178403906b5090209", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12120/l_mpi_2018.0.128.tgz", - deprecated=True, - ) - version( - "2017.4.239", - sha256="5a1048d284dce8bc75b45789471c83c94b3c59f8f159cab43d783fc44302510b", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12209/l_mpi_2017.4.239.tgz", - deprecated=True, - ) - version( - "2017.3.196", - sha256="dad9efbc5bbd3fd27cce7e1e2507ad77f342d5ecc929747ae141c890e7fb87f0", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11595/l_mpi_2017.3.196.tgz", - deprecated=True, - ) - version( - "2017.2.174", - sha256="106a4b362c13ddc6978715e50f5f81c58c1a4c70cd2d20a99e94947b7e733b88", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11334/l_mpi_2017.2.174.tgz", - deprecated=True, - ) - version( - "2017.1.132", - sha256="8d30a63674fe05f17b0a908a9f7d54403018bfed2de03c208380b171ab99be82", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11014/l_mpi_2017.1.132.tgz", - deprecated=True, - ) - # built from parallel_studio_xe_2016.3.068 - version( - "5.1.3.223", - sha256="544f4173b09609beba711fa3ba35567397ff3b8390e4f870a3307f819117dd9b", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9278/l_mpi_p_5.1.3.223.tgz", - deprecated=True, - ) - - provides("mpi") - - variant( - "external-libfabric", default=False, description="Enable external libfabric dependency" - ) - depends_on("libfabric", when="+external-libfabric", type=("build", "link", "run")) - depends_on("cpio", type="build") - - def setup_dependent_build_environment(self, env, dependent_spec): - # Handle in callback, conveying client's compilers in additional arg. - # CAUTION - DUP code in: - # ../intel-mpi/package.py - # ../intel-parallel-studio/package.py - dependent_module = dependent_spec.package.module - self._setup_dependent_env_callback( - env, - dependent_spec, - compilers_of_client={ - "CC": dependent_module.spack_cc, - "CXX": dependent_module.spack_cxx, - "F77": dependent_module.spack_f77, - "F90": dependent_module.spack_fc, - "FC": dependent_module.spack_fc, - }, - ) - - def setup_run_environment(self, env): - super().setup_run_environment(env) - - for name, value in self.mpi_compiler_wrappers.items(): - env.set(name, value) diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py index 16000f3f6b0..fb02255bd86 100644 --- a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py +++ b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py @@ -186,14 +186,13 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage): # If a +cluster then mpi_family must be set with when("+cluster"): conflicts("mpi_family=none") - requires("mpi_family=mpich", when="^intel-oneapi-mpi") - requires("mpi_family=mpich", when="^intel-mpi") - requires("mpi_family=mpich", when="^mpich") - requires("mpi_family=mpich", when="^mvapich") - requires("mpi_family=mpich", when="^mvapich2") - requires("mpi_family=mpich", when="^cray-mpich") - requires("mpi_family=openmpi", when="^openmpi") - requires("mpi_family=openmpi", when="^hpcx-mpi") + requires("mpi_family=mpich", when="^[virtuals=mpi] intel-oneapi-mpi") + requires("mpi_family=mpich", when="^[virtuals=mpi] mpich") + requires("mpi_family=mpich", when="^[virtuals=mpi] mvapich") + requires("mpi_family=mpich", when="^[virtuals=mpi] mvapich2") + requires("mpi_family=mpich", when="^[virtuals=mpi] cray-mpich") + requires("mpi_family=openmpi", when="^[virtuals=mpi] openmpi") + requires("mpi_family=openmpi", when="^[virtuals=mpi] hpcx-mpi") provides("fftw-api@3") provides("scalapack", when="+cluster") diff --git a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py b/var/spack/repos/builtin/packages/intel-parallel-studio/package.py deleted file mode 100644 index e853cd2f257..00000000000 --- a/var/spack/repos/builtin/packages/intel-parallel-studio/package.py +++ /dev/null @@ -1,690 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -from spack.package import * - - -@IntelOneApiPackage.update_description -class IntelParallelStudio(IntelPackage): - """This is an earlier version of Intel parallel software development - tools and has now been replaced by the Intel oneAPI Toolkits. - - """ - - homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe" - - maintainers("rscohn2") - - depends_on("patchelf", type="build") - - # As of 2016, the product comes in three "editions" that vary by scope. - # - # In Spack, select the edition via the version number in the spec, e.g.: - # intel-parallel-studio@cluster.2018 - - # NB: When updating the version numbers here, please also update them - # in the 'intel' package. - - # Cluster Edition (top tier; all components included) - version( - "cluster.2020.4", - sha256="f36e49da97b6ce24d2d464d73d7ff49d71cff20e1698c20e607919819602a9f5", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17113/parallel_studio_xe_2020_update4_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2020.2", - sha256="4795c44374e8988b91da20ac8f13022d7d773461def4a26ca210a8694f69f133", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16744/parallel_studio_xe_2020_update2_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2020.1", - sha256="fd11d8de72b2bd60474f8bce7b463e4cbb2255969b9eaf24f689575aa2a2abab", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16526/parallel_studio_xe_2020_update1_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2020.0", - sha256="573b1d20707d68ce85b70934cfad15b5ad9cc14124a261c17ddd7717ba842c64", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16225/parallel_studio_xe_2020_cluster_edition.tgz", - deprecated=True, - ) - # - version( - "cluster.2019.5", - sha256="c03421de616bd4e640ed25ce4103ec9c5c85768a940a5cb5bd1e97b45be33904", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15809/parallel_studio_xe_2019_update5_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2019.4", - sha256="32aee12de3b5ca14caf7578313c06b205795c67620f4a9606ea45696ee3b3d9e", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15533/parallel_studio_xe_2019_update4_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2019.3", - sha256="b5b022366d6d1a98dbb63b60221c62bc951c9819653ad6f5142192e89f78cf63", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15268/parallel_studio_xe_2019_update3_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2019.2", - sha256="8c526bdd95d1da454e5cada00f7a2353089b86d0c9df2088ca7f842fe3ff4cae", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15088/parallel_studio_xe_2019_update2_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2019.1", - sha256="3a1eb39f15615f7a2688426b9835e5e841e0c030f21dcfc899fe23e09bd2c645", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14850/parallel_studio_xe_2019_update1_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2019.0", - sha256="1096dd4139bdd4b3abbda69a17d1e229a606759f793f5b0ba0d39623928ee4a1", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13589/parallel_studio_xe_2019_cluster_edition.tgz", - deprecated=True, - ) - # - version( - "cluster.2018.4", - sha256="210a5904a860e11b861720e68416f91fd47a459e4500976853291fa8b0478566", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13717/parallel_studio_xe_2018_update4_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2018.3", - sha256="23c64b88cea5056eaeef7b4ae0f4c6a86485c97f5e41d6c8419cb00aa4929287", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12998/parallel_studio_xe_2018_update3_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2018.2", - sha256="550bc4758f7dd70e75830d329947532ad8b7cbb85225b8ec6db7e78a3f1d6d84", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12717/parallel_studio_xe_2018_update2_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2018.1", - sha256="f7a94e83248d2641eb7ae2c1abf681067203a5b4372619e039861b468744774c", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12374/parallel_studio_xe_2018_update1_cluster_edition.tgz", - deprecated=True, - ) - version( - "cluster.2018.0", - sha256="526e5e71c420dc9b557b0bae2a81abb33eedb9b6a28ac94996ccbcf71cf53774", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12058/parallel_studio_xe_2018_cluster_edition.tgz", - deprecated=True, - ) - # - version( - "cluster.2017.7", - sha256="133c3aa99841a4fe48149938a90f971467452a82f033be10cd9464ba810f6360", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12856/parallel_studio_xe_2017_update7.tgz", - deprecated=True, - ) - version( - "cluster.2017.6", - sha256="d771b00d3658934c424f294170125dc58ae9b03639aa898a2f115d7a7482dd3a", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12534/parallel_studio_xe_2017_update6.tgz", - deprecated=True, - ) - version( - "cluster.2017.5", - sha256="36e496d1d1d7d7168cc3ba8f5bca9b52022339f30b62a87ed064b77a5cbccc09", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12138/parallel_studio_xe_2017_update5.tgz", - deprecated=True, - ) - version( - "cluster.2017.4", - sha256="27d34625adfc635d767c136b5417a372f322fabe6701b651d858a8fe06d07f2d", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11537/parallel_studio_xe_2017_update4.tgz", - deprecated=True, - ) - version( - "cluster.2017.3", - sha256="856950c0493de3e8b4150e18f8821675c1cf75c2eea5ff0804f59eb301414bbe", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11460/parallel_studio_xe_2017_update3.tgz", - deprecated=True, - ) - version( - "cluster.2017.2", - sha256="83a655f0c2969409758488d70d6719fb5ea81a84b6da3feb641ce67bb240bc8a", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11298/parallel_studio_xe_2017_update2.tgz", - deprecated=True, - ) - version( - "cluster.2017.1", - sha256="c808be744c98f7471c61258144859e8e8fc92771934281a16135803e941fd9b0", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/10973/parallel_studio_xe_2017_update1.tgz", - deprecated=True, - ) - version( - "cluster.2017.0", - sha256="f380a56a25cf17941eb691a640035e79f92516346500e0df80fbdd46c5c1b301", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9651/parallel_studio_xe_2017.tgz", - deprecated=True, - ) - # - version( - "cluster.2016.4", - sha256="ea43c150ed6f9967bc781fe4253169a0447c69bac4fe2c563016a1ad2875ae23", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9781/parallel_studio_xe_2016_update4.tgz", - deprecated=True, - ) - version( - "cluster.2016.3", - sha256="aa7c6f1a6603fae07c2b01409c12de0811aa5947eaa71dfb1fe9898076c2773e", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9061/parallel_studio_xe_2016_update3.tgz", - deprecated=True, - ) - version( - "cluster.2016.2", - sha256="280bf39c75d7f52f206759ca4d8b6334ab92d5970957b90f5aa286bb0aa8d65e", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8676/parallel_studio_xe_2016_update2.tgz", - deprecated=True, - ) - version( - "cluster.2016.1", - sha256="f5a3ab9fb581e19bf1bd966f7d40a11905e002a2bfae1c4a2140544288ca3e48", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8365/parallel_studio_xe_2016_update1.tgz", - deprecated=True, - ) - version( - "cluster.2016.0", - sha256="fd4c32352fd78fc919601bedac5658ad5ac48efbc5700d9a8d42ed7d53bd8bb7", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/7997/parallel_studio_xe_2016.tgz", - deprecated=True, - ) - # - version( - "cluster.2015.6", - sha256="e604ed2bb45d227b151dd2898f3edd93526d58d1db1cb9d6b6f614907864f392", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8469/parallel_studio_xe_2015_update6.tgz", - deprecated=True, - ) - version( - "cluster.2015.1", - sha256="84fdf48d1de20e1d580ba5d419a5bc1c55d217a4f5dc1807190ecffe0229a62b", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/4992/parallel_studio_xe_2015_update1.tgz", - deprecated=True, - ) - - # Professional Edition (middle tier; excluded: MPI/TAC/Cluster Checker) - # - # NB: Pre-2018 download packages for Professional are the same as for - # Cluster; differences manifest only in the tokens present in the license - # file delivered as part of the purchase. - version( - "professional.2020.4", - sha256="f9679a40c63575191385837f4f1bdafbcfd3736f09ac51d0761248b9ca9cc9e6", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17114/parallel_studio_xe_2020_update4_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2020.2", - sha256="96f9bca551a43e09d9648e8cba357739a759423adb671d1aa5973b7a930370c5", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16756/parallel_studio_xe_2020_update2_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2020.1", - sha256="5b547be92ecf50cb338b3038a565f5609135b27aa98a8b7964879eb2331eb29a", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16527/parallel_studio_xe_2020_update1_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2020.0", - sha256="e88cad18d28da50ed9cb87b12adccf13efd91bf94731dc33290481306c6f15ac", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16226/parallel_studio_xe_2020_professional_edition.tgz", - deprecated=True, - ) - # - version( - "professional.2019.5", - sha256="0ec638330214539361f8632e20759f385a5a78013dcc980ee93743d86d354452", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15810/parallel_studio_xe_2019_update5_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2019.4", - sha256="9b2818ea5739ade100841e99ce79ef7f4049a2513beb2ce20fc94706f1ba0231", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15534/parallel_studio_xe_2019_update4_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2019.3", - sha256="92a8879106d0bdf1ecf4670cd97fbcdc67d78b13bdf484f2c516a533aa7a27f9", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15269/parallel_studio_xe_2019_update3_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2019.2", - sha256="cdb629d74612d135ca197f1f64e6a081e31df68cda92346a29e1223bb06e64ea", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15089/parallel_studio_xe_2019_update2_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2019.1", - sha256="bc83ef5a728903359ae11a2b90ad7dae4ae61194afb28bb5bb419f6a6aea225d", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14825/parallel_studio_xe_2019_update1_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2019.0", - sha256="94b9714e353e5c4f58d38cb236e2f8911cbef31c4b42a148d60c988e926411e2", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13578/parallel_studio_xe_2019_professional_edition.tgz", - deprecated=True, - ) - # - version( - "professional.2018.4", - sha256="54ab4320da849108602096fa7a34aa21751068467e0d1584aa8f16352b77d323", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13718/parallel_studio_xe_2018_update4_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2018.3", - sha256="3d8e72ccad31f243e43b72a925ad4a6908e2955682433898640ab783decf9960", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12999/parallel_studio_xe_2018_update3_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2018.2", - sha256="fc577b29fb2c687441d4faea14a6fb6da529fc78fcb778cbface59f40e128e02", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12718/parallel_studio_xe_2018_update2_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2018.1", - sha256="dd3e118069d87eebb614336732323b48172c8c8a653cde673a8ef02f7358e94d", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12375/parallel_studio_xe_2018_update1_professional_edition.tgz", - deprecated=True, - ) - version( - "professional.2018.0", - sha256="72308ffa088391ea65726a79d7a73738206fbb1d8ed8563e3d06eab3120fb1a0", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12062/parallel_studio_xe_2018_professional_edition.tgz", - deprecated=True, - ) - # - version( - "professional.2017.7", - sha256="133c3aa99841a4fe48149938a90f971467452a82f033be10cd9464ba810f6360", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12856/parallel_studio_xe_2017_update7.tgz", - deprecated=True, - ) - version( - "professional.2017.6", - sha256="d771b00d3658934c424f294170125dc58ae9b03639aa898a2f115d7a7482dd3a", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12534/parallel_studio_xe_2017_update6.tgz", - deprecated=True, - ) - version( - "professional.2017.5", - sha256="36e496d1d1d7d7168cc3ba8f5bca9b52022339f30b62a87ed064b77a5cbccc09", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12138/parallel_studio_xe_2017_update5.tgz", - deprecated=True, - ) - version( - "professional.2017.4", - sha256="27d34625adfc635d767c136b5417a372f322fabe6701b651d858a8fe06d07f2d", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11537/parallel_studio_xe_2017_update4.tgz", - deprecated=True, - ) - version( - "professional.2017.3", - sha256="856950c0493de3e8b4150e18f8821675c1cf75c2eea5ff0804f59eb301414bbe", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11460/parallel_studio_xe_2017_update3.tgz", - deprecated=True, - ) - version( - "professional.2017.2", - sha256="83a655f0c2969409758488d70d6719fb5ea81a84b6da3feb641ce67bb240bc8a", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11298/parallel_studio_xe_2017_update2.tgz", - deprecated=True, - ) - version( - "professional.2017.1", - sha256="c808be744c98f7471c61258144859e8e8fc92771934281a16135803e941fd9b0", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/10973/parallel_studio_xe_2017_update1.tgz", - deprecated=True, - ) - version( - "professional.2017.0", - sha256="f380a56a25cf17941eb691a640035e79f92516346500e0df80fbdd46c5c1b301", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9651/parallel_studio_xe_2017.tgz", - deprecated=True, - ) - # - version( - "professional.2016.4", - sha256="ea43c150ed6f9967bc781fe4253169a0447c69bac4fe2c563016a1ad2875ae23", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9781/parallel_studio_xe_2016_update4.tgz", - deprecated=True, - ) - version( - "professional.2016.3", - sha256="aa7c6f1a6603fae07c2b01409c12de0811aa5947eaa71dfb1fe9898076c2773e", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9061/parallel_studio_xe_2016_update3.tgz", - deprecated=True, - ) - version( - "professional.2016.2", - sha256="280bf39c75d7f52f206759ca4d8b6334ab92d5970957b90f5aa286bb0aa8d65e", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8676/parallel_studio_xe_2016_update2.tgz", - deprecated=True, - ) - version( - "professional.2016.1", - sha256="f5a3ab9fb581e19bf1bd966f7d40a11905e002a2bfae1c4a2140544288ca3e48", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8365/parallel_studio_xe_2016_update1.tgz", - deprecated=True, - ) - version( - "professional.2016.0", - sha256="fd4c32352fd78fc919601bedac5658ad5ac48efbc5700d9a8d42ed7d53bd8bb7", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/7997/parallel_studio_xe_2016.tgz", - deprecated=True, - ) - # - version( - "professional.2015.6", - sha256="e604ed2bb45d227b151dd2898f3edd93526d58d1db1cb9d6b6f614907864f392", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8469/parallel_studio_xe_2015_update6.tgz", - deprecated=True, - ) - version( - "professional.2015.1", - sha256="84fdf48d1de20e1d580ba5d419a5bc1c55d217a4f5dc1807190ecffe0229a62b", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/4992/parallel_studio_xe_2015_update1.tgz", - deprecated=True, - ) - - # Composer Edition (basic tier; excluded: MPI/..., Advisor/Inspector/Vtune) - version( - "composer.2020.4", - sha256="ac1efeff608a8c3a416e6dfe20364061e8abf62d35fbaacdffe3fc9676fc1aa3", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2020.2", - sha256="42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2020.1", - sha256="26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2020.0", - sha256="9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16229/parallel_studio_xe_2020_composer_edition.tgz", - deprecated=True, - ) - # - version( - "composer.2019.5", - sha256="e8c8e4b9b46826a02c49325c370c79f896858611bf33ddb7fb204614838ad56c", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15813/parallel_studio_xe_2019_update5_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2019.4", - sha256="1915993445323e1e78d6de73702a88fa3df2036109cde03d74ee38fef9f1abf2", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15537/parallel_studio_xe_2019_update4_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2019.3", - sha256="15373ac6df2a84e6dd9fa0eac8b5f07ab00cdbb67f494161fd0d4df7a71aff8e", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15272/parallel_studio_xe_2019_update3_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2019.2", - sha256="1e0f400be1f458592a8c2e7d55c1b2a4506f68f22bacbf1175af947809a4cd87", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15092/parallel_studio_xe_2019_update2_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2019.1", - sha256="db000cb2ebf411f6e91719db68a0c68b8d3f7d38ad7f2049ea5b2f1b5f006c25", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14832/parallel_studio_xe_2019_update1_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2019.0", - sha256="e1a29463038b063e01f694e2817c0fcf1a8e824e24f15a26ce85f20afa3f963a", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13581/parallel_studio_xe_2019_composer_edition.tgz", - deprecated=True, - ) - # - version( - "composer.2018.4", - sha256="94aca8f091dff9535b02f022a37aef150b36925c8ef069335621496f8e4db267", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13722/parallel_studio_xe_2018_update4_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2018.3", - sha256="f21f7759709a3d3e3390a8325fa89ac79b1fce8890c292e73b2ba3ec576ebd2b", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13002/parallel_studio_xe_2018_update3_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2018.2", - sha256="02d2a9fb10d9810f85dd77700215c4348d2e4475e814e4f086eb1442462667ff", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12722/parallel_studio_xe_2018_update2_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2018.1", - sha256="db9aa417da185a03a63330c9d76ee8e88496ae6b771584d19003a29eedc7cab5", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12381/parallel_studio_xe_2018_update1_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2018.0", - sha256="ecad64360fdaff2548a0ea250a396faf680077c5a83c3c3ce2c55f4f4270b904", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12067/parallel_studio_xe_2018_composer_edition.tgz", - deprecated=True, - ) - # - version( - "composer.2017.7", - sha256="661e33b68e47bf335694d2255f5883955234e9085c8349783a5794eed2a937ad", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12860/parallel_studio_xe_2017_update7_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2017.6", - sha256="771f50746fe130ea472394c42e25d2c7edae049ad809d2050945ef637becf65f", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12538/parallel_studio_xe_2017_update6_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2017.5", - sha256="ede4ea9351fcf263103588ae0f130b4c2a79395529cdb698b0d6e866c4871f78", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12144/parallel_studio_xe_2017_update5_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2017.4", - sha256="4304766f80206a27709be61641c16782fccf2b3fcf7285782cce921ddc9b10ff", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11541/parallel_studio_xe_2017_update4_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2017.3", - sha256="3648578d7bba993ebb1da37c173979bfcfb47f26e7f4e17f257e78dea8fd96ab", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11464/parallel_studio_xe_2017_update3_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2017.2", - sha256="abd26ab2a703e73ab93326984837818601c391782a6bce52da8b2a246798ad40", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11302/parallel_studio_xe_2017_update2_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2017.1", - sha256="bc592abee829ba6e00a4f60961b486b80c15987ff1579d6560186407c84add6f", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/10978/parallel_studio_xe_2017_update1_composer_edition.tgz", - deprecated=True, - ) - version( - "composer.2017.0", - sha256="d218db66a5bb57569bea00821ac95d4647eda7422bf8a178d1586b0fb314935a", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9656/parallel_studio_xe_2017_composer_edition.tgz", - deprecated=True, - ) - # - version( - "composer.2016.4", - sha256="17606c52cab6f5114223a2425923c8dd69f1858f5a3bdf280e0edea49ebd430d", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9785/parallel_studio_xe_2016_composer_edition_update4.tgz", - deprecated=True, - ) - version( - "composer.2016.3", - sha256="fcec90ba97533e4705077e0701813b5a3bcc197b010b03e96f83191a35c26acf", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9063/parallel_studio_xe_2016_composer_edition_update3.tgz", - deprecated=True, - ) - version( - "composer.2016.2", - sha256="6309ef8be1abba7737d3c1e17af64ca2620672b2da57afe2c3c643235f65b4c7", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8680/parallel_studio_xe_2016_composer_edition_update2.tgz", - deprecated=True, - ) - # - # Pre-2016, the only product was "Composer XE"; dir structure is different. - version( - "composer.2015.6", - sha256="b1e09833469ca76a2834cd0a5bb5fea11ec9986da85abf4c6eed42cd96ec24cb", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8432/l_compxe_2015.6.233.tgz", - deprecated=True, - ) - version( - "composer.2015.1", - sha256="8a438fe20103e27bfda132955616d0c886aa6cfdd86dcd9764af5d937a8799d9", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/4933/l_compxe_2015.1.133.tgz", - deprecated=True, - ) - - # Generic Variants - variant("rpath", default=True, description="Add rpath to .cfg files") - variant( - "newdtags", default=False, description="Allow use of --enable-new-dtags in MPI wrappers" - ) - variant("shared", default=True, description="Builds shared library") - variant("ilp64", default=False, description="64 bit integers") - variant( - "threads", - default="none", - description="Multithreading support", - values=("openmp", "none"), - multi=False, - ) - - auto_dispatch_options = IntelPackage.auto_dispatch_options - variant( - "auto_dispatch", - values=any_combination_of(*auto_dispatch_options), - description="Enable generation of multiple auto-dispatch code paths", - ) - - # Components available in all editions - variant("daal", default=True, description="Install the Intel DAAL libraries") - variant( - "gdb", default=False, description="Install the Intel Debugger for Heterogeneous Compute" - ) - variant("ipp", default=True, description="Install the Intel IPP libraries") - variant("mkl", default=True, description="Install the Intel MKL library") - variant("mpi", default=True, description="Install the Intel MPI library") - variant("tbb", default=True, description="Install the Intel TBB libraries") - - # Components only available in the Professional and Cluster Editions - variant("advisor", default=False, description="Install the Intel Advisor") - variant("clck", default=False, description="Install the Intel Cluster Checker") - variant("inspector", default=False, description="Install the Intel Inspector") - variant("itac", default=False, description="Install the Intel Trace Analyzer and Collector") - variant("vtune", default=False, description="Install the Intel VTune Amplifier XE") - - provides("daal", when="+daal") - provides("ipp", when="+ipp") - - provides("mkl", when="+mkl") - provides("blas", "lapack", when="+mkl") - provides("scalapack", when="+mkl") - - provides("fftw-api@3", when="+mkl@professional.2017:") - provides("fftw-api@3", when="+mkl@cluster.2017:") - provides("fftw-api@3", when="+mkl@composer.2017:") - - provides("mpi", when="+mpi") - provides("tbb", when="+tbb") - - conflicts("target=ppc64:", msg="intel-parallel-studio is only available for x86_64") - conflicts("target=ppc64le:", msg="intel-parallel-studio is only available for x86_64") - conflicts("target=aarch64:", msg="intel-parallel-studio is only available for x86_64") - - # For TBB, static linkage is not and has never been supported by Intel: - # https://www.threadingbuildingblocks.org/faq/there-version-tbb-provides-statically-linked-libraries - conflicts("+tbb", when="~shared") - - conflicts("+advisor", when="@composer.0:composer") - conflicts("+clck", when="@composer.0:composer") - conflicts("+inspector", when="@composer.0:composer") - conflicts("+itac", when="@composer.0:composer") - conflicts("+mpi", when="@composer.0:composer") - conflicts("+vtune", when="@composer.0:composer") - - conflicts("+clck", when="@professional.0:professional") - conflicts("+itac", when="@professional.0:professional") - conflicts("+mpi", when="@professional.0:professional") - - # The following components are not available before 2016 - conflicts("+daal", when="@professional.0:professional.2015.7") - conflicts("+daal", when="@cluster.0:cluster.2015.7") - conflicts("+daal", when="@composer.0:composer.2015.7") - - # MacOS does not support some of the auto dispatch settings - conflicts("auto_dispatch=SSE2", "platform=darwin", msg="SSE2 is not supported on MacOS") - conflicts( - "auto_dispatch=SSE3", - "platform=darwin target=x86_64:", - msg="SSE3 is not supported on MacOS x86_64", - ) - - def setup_dependent_build_environment(self, env, dependent_spec): - # Handle in callback, conveying client's compilers in additional arg. - # CAUTION - DUP code in: - # ../intel-mpi/package.py - # ../intel-parallel-studio/package.py - dependent_module = dependent_spec.package.module - self._setup_dependent_env_callback( - env, - dependent_spec, - compilers_of_client={ - "CC": dependent_module.spack_cc, - "CXX": dependent_module.spack_cxx, - "F77": dependent_module.spack_f77, - "F90": dependent_module.spack_fc, - "FC": dependent_module.spack_fc, - }, - ) - - def setup_run_environment(self, env): - super().setup_run_environment(env) - - for name, value in self.mpi_compiler_wrappers.items(): - env.set(name, value) diff --git a/var/spack/repos/builtin/packages/intel/detection_test.yaml b/var/spack/repos/builtin/packages/intel/detection_test.yaml deleted file mode 100644 index dfff8fa4a13..00000000000 --- a/var/spack/repos/builtin/packages/intel/detection_test.yaml +++ /dev/null @@ -1,25 +0,0 @@ -paths: -- layout: - - executables: - - "bin/intel64/icc" - script: | - echo "icc (ICC) 18.0.5 20180823" - echo "Copyright (C) 1985-2018 Intel Corporation. All rights reserved." - - executables: - - "bin/intel64/icpc" - script: | - echo "icpc (ICC) 18.0.5 20180823" - echo "Copyright (C) 1985-2018 Intel Corporation. All rights reserved." - - executables: - - "bin/intel64/ifort" - script: | - echo "ifort (IFORT) 18.0.5 20180823" - echo "Copyright (C) 1985-2018 Intel Corporation. All rights reserved." - platforms: ["darwin", "linux"] - results: - - spec: 'intel@18.0.5' - extra_attributes: - compilers: - c: ".*/bin/intel64/icc" - cxx: ".*/bin/intel64/icpc" - fortran: ".*/bin/intel64/ifort" diff --git a/var/spack/repos/builtin/packages/intel/package.py b/var/spack/repos/builtin/packages/intel/package.py deleted file mode 100644 index 67c3dddfaf2..00000000000 --- a/var/spack/repos/builtin/packages/intel/package.py +++ /dev/null @@ -1,289 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) -import re - -import llnl.util.tty as tty - -import spack.build_systems.compiler -from spack.package import * - - -@IntelOneApiPackage.update_description -class Intel(IntelPackage): - """Intel Compilers. This package has been replaced by - intel-oneapi-compilers. - - """ - - homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe" - - # Robert Cohn - maintainers("rscohn2") - - depends_on("patchelf", type="build") - - # Same as in ../intel-parallel-studio/package.py, Composer Edition, - # but the version numbering in Spack differs. - version( - "20.0.4", - sha256="ac1efeff608a8c3a416e6dfe20364061e8abf62d35fbaacdffe3fc9676fc1aa3", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/17117/parallel_studio_xe_2020_update4_composer_edition.tgz", - deprecated=True, - ) - version( - "20.0.2", - sha256="42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz", - deprecated=True, - ) - version( - "20.0.1", - sha256="26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz", - deprecated=True, - ) - version( - "20.0.0", - sha256="9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16229/parallel_studio_xe_2020_composer_edition.tgz", - deprecated=True, - ) - version( - "19.1.2", - sha256="42af16e9a91226978bb401d9f17b628bc279aa8cb104d4a38ba0808234a79bdd", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16759/parallel_studio_xe_2020_update2_composer_edition.tgz", - deprecated=True, - ) - version( - "19.1.1", - sha256="26c7e7da87b8a83adfd408b2a354d872be97736abed837364c1bf10f4469b01e", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16530/parallel_studio_xe_2020_update1_composer_edition.tgz", - deprecated=True, - ) - version( - "19.1.0", - sha256="9168045466139b8e280f50f0606b9930ffc720bbc60bc76f5576829ac15757ae", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/16229/parallel_studio_xe_2020_composer_edition.tgz", - deprecated=True, - ) - version( - "19.0.5", - sha256="e8c8e4b9b46826a02c49325c370c79f896858611bf33ddb7fb204614838ad56c", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15813/parallel_studio_xe_2019_update5_composer_edition.tgz", - deprecated=True, - ) - version( - "19.0.4", - sha256="1915993445323e1e78d6de73702a88fa3df2036109cde03d74ee38fef9f1abf2", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15537/parallel_studio_xe_2019_update4_composer_edition.tgz", - deprecated=True, - ) - version( - "19.0.3", - sha256="15373ac6df2a84e6dd9fa0eac8b5f07ab00cdbb67f494161fd0d4df7a71aff8e", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/15272/parallel_studio_xe_2019_update3_composer_edition.tgz", - deprecated=True, - ) - version( - "19.0.1", - sha256="db000cb2ebf411f6e91719db68a0c68b8d3f7d38ad7f2049ea5b2f1b5f006c25", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/14832/parallel_studio_xe_2019_update1_composer_edition.tgz", - deprecated=True, - ) - version( - "19.0.0", - sha256="e1a29463038b063e01f694e2817c0fcf1a8e824e24f15a26ce85f20afa3f963a", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13581/parallel_studio_xe_2019_composer_edition.tgz", - deprecated=True, - ) - - # Version 18.0.5 comes with parallel studio 2018 update 4. See: - # https://software.intel.com/en-us/articles/intel-compiler-and-composer-update-version-numbers-to-compiler-version-number-mapping - version( - "18.0.5", - sha256="94aca8f091dff9535b02f022a37aef150b36925c8ef069335621496f8e4db267", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13722/parallel_studio_xe_2018_update4_composer_edition.tgz", - deprecated=True, - ) - version( - "18.0.3", - sha256="f21f7759709a3d3e3390a8325fa89ac79b1fce8890c292e73b2ba3ec576ebd2b", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/13002/parallel_studio_xe_2018_update3_composer_edition.tgz", - deprecated=True, - ) - version( - "18.0.2", - sha256="02d2a9fb10d9810f85dd77700215c4348d2e4475e814e4f086eb1442462667ff", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12722/parallel_studio_xe_2018_update2_composer_edition.tgz", - deprecated=True, - ) - version( - "18.0.1", - sha256="db9aa417da185a03a63330c9d76ee8e88496ae6b771584d19003a29eedc7cab5", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12381/parallel_studio_xe_2018_update1_composer_edition.tgz", - deprecated=True, - ) - version( - "18.0.0", - sha256="ecad64360fdaff2548a0ea250a396faf680077c5a83c3c3ce2c55f4f4270b904", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12067/parallel_studio_xe_2018_composer_edition.tgz", - deprecated=True, - ) - # - version( - "17.0.7", - sha256="661e33b68e47bf335694d2255f5883955234e9085c8349783a5794eed2a937ad", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12860/parallel_studio_xe_2017_update7_composer_edition.tgz", - deprecated=True, - ) - version( - "17.0.6", - sha256="771f50746fe130ea472394c42e25d2c7edae049ad809d2050945ef637becf65f", - url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12538/parallel_studio_xe_2017_update6_composer_edition.tgz", - deprecated=True, - ) - version( - "17.0.5", - sha256="ede4ea9351fcf263103588ae0f130b4c2a79395529cdb698b0d6e866c4871f78", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/12144/parallel_studio_xe_2017_update5_composer_edition.tgz", - deprecated=True, - ) - version( - "17.0.4", - sha256="4304766f80206a27709be61641c16782fccf2b3fcf7285782cce921ddc9b10ff", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11541/parallel_studio_xe_2017_update4_composer_edition.tgz", - deprecated=True, - ) - version( - "17.0.3", - sha256="3648578d7bba993ebb1da37c173979bfcfb47f26e7f4e17f257e78dea8fd96ab", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11464/parallel_studio_xe_2017_update3_composer_edition.tgz", - deprecated=True, - ) - version( - "17.0.2", - sha256="abd26ab2a703e73ab93326984837818601c391782a6bce52da8b2a246798ad40", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/11302/parallel_studio_xe_2017_update2_composer_edition.tgz", - deprecated=True, - ) - version( - "17.0.1", - sha256="bc592abee829ba6e00a4f60961b486b80c15987ff1579d6560186407c84add6f", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/10978/parallel_studio_xe_2017_update1_composer_edition.tgz", - deprecated=True, - ) - version( - "17.0.0", - sha256="d218db66a5bb57569bea00821ac95d4647eda7422bf8a178d1586b0fb314935a", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9656/parallel_studio_xe_2017_composer_edition.tgz", - deprecated=True, - ) - # - version( - "16.0.4", - sha256="17606c52cab6f5114223a2425923c8dd69f1858f5a3bdf280e0edea49ebd430d", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9785/parallel_studio_xe_2016_composer_edition_update4.tgz", - deprecated=True, - ) - version( - "16.0.3", - sha256="fcec90ba97533e4705077e0701813b5a3bcc197b010b03e96f83191a35c26acf", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/9063/parallel_studio_xe_2016_composer_edition_update3.tgz", - deprecated=True, - ) - version( - "16.0.2", - sha256="6309ef8be1abba7737d3c1e17af64ca2620672b2da57afe2c3c643235f65b4c7", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8680/parallel_studio_xe_2016_composer_edition_update2.tgz", - deprecated=True, - ) - # - # Grandfathered release; different directory structure. - version( - "15.0.6", - sha256="b1e09833469ca76a2834cd0a5bb5fea11ec9986da85abf4c6eed42cd96ec24cb", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/8432/l_compxe_2015.6.233.tgz", - deprecated=True, - ) - version( - "15.0.1", - sha256="8a438fe20103e27bfda132955616d0c886aa6cfdd86dcd9764af5d937a8799d9", - url="http://registrationcenter-download.intel.com/akdlm/IRC_NAS/tec/4933/l_compxe_2015.1.133.tgz", - deprecated=True, - ) - - variant("rpath", default=True, description="Add rpath to .cfg files") - - auto_dispatch_options = IntelPackage.auto_dispatch_options - variant( - "auto_dispatch", - values=any_combination_of(*auto_dispatch_options), - description="Enable generation of multiple auto-dispatch code paths", - ) - - # MacOS does not support some of the auto dispatch settings - conflicts("auto_dispatch=SSE2", "platform=darwin", msg="SSE2 is not supported on MacOS") - conflicts( - "auto_dispatch=SSE3", - "platform=darwin target=x86_64:", - msg="SSE3 is not supported on MacOS x86_64", - ) - - executables = ["^icc$", "^icpc$", "^ifort$"] - - @classmethod - def determine_version(cls, exe): - version_regex = re.compile(r"\((?:IFORT|ICC)\) ([^ ]+)") - try: - output = spack.build_systems.compiler.compiler_output( - exe, version_argument="--version" - ) - match = version_regex.search(output) - if match: - return match.group(1) - except ProcessError: - pass - except Exception as e: - tty.debug(str(e)) - - return None - - @classmethod - def determine_variants(cls, exes, version_str): - compilers = {} - for exe in exes: - if "icc" in exe: - compilers["c"] = exe - if "icpc" in exe: - compilers["cxx"] = exe - if "ifort" in exe: - compilers["fortran"] = exe - return "", {"compilers": compilers} - - @property - def cc(self): - msg = "cannot retrieve C compiler [spec is not concrete]" - assert self.spec.concrete, msg - if self.spec.external: - return self.spec.extra_attributes["compilers"].get("c", None) - return str(self.spec.prefix.bin.intel64.icc) - - @property - def cxx(self): - msg = "cannot retrieve C++ compiler [spec is not concrete]" - assert self.spec.concrete, msg - if self.spec.external: - return self.spec.extra_attributes["compilers"].get("cxx", None) - return str(self.spec.prefix.bin.intel64.icpc) - - @property - def fortran(self): - msg = "cannot retrieve Fortran compiler [spec is not concrete]" - assert self.spec.concrete, msg - if self.spec.external: - return self.spec.extra_attributes["compilers"].get("fortran", None) - return str(self.spec.prefix.bin.intel64.ifort) - - # Since the current package is a subset of 'intel-parallel-studio', - # all remaining Spack actions are handled in the package class. diff --git a/var/spack/repos/builtin/packages/itensor/package.py b/var/spack/repos/builtin/packages/itensor/package.py index 60438cd06cc..ca815b1c3e0 100644 --- a/var/spack/repos/builtin/packages/itensor/package.py +++ b/var/spack/repos/builtin/packages/itensor/package.py @@ -83,7 +83,7 @@ def edit(self, spec, prefix): vinc += " -DHAVE_LAPACK_CONFIG_H" vinc += " -DLAPACK_COMPLEX_STRUCTURE" filter_file("#PLATFORM=lapack", vinc, mf, string=True) - elif ltype == "intel-mkl": + elif ltype == "intel-oneapi-mkl": vpla = "PLATFORM=mkl" filter_file("#PLATFORM=lapack", vinc, mf, string=True) diff --git a/var/spack/repos/builtin/packages/itk/package.py b/var/spack/repos/builtin/packages/itk/package.py index 54567e028c4..b04808ecf85 100644 --- a/var/spack/repos/builtin/packages/itk/package.py +++ b/var/spack/repos/builtin/packages/itk/package.py @@ -75,7 +75,7 @@ class Itk(CMakePackage): ) def cmake_args(self): - use_mkl = self.spec["fftw-api"].name in INTEL_MATH_LIBRARIES + use_mkl = self.spec.satisfies("^[virtuals=fftw-api] intel-oneapi-mkl") args = [ self.define("BUILD_TESTING", False), self.define("BUILD_SHARED_LIBS", True), diff --git a/var/spack/repos/builtin/packages/kaldi/package.py b/var/spack/repos/builtin/packages/kaldi/package.py index 6261fb0e072..f6e2ae8b233 100644 --- a/var/spack/repos/builtin/packages/kaldi/package.py +++ b/var/spack/repos/builtin/packages/kaldi/package.py @@ -73,9 +73,7 @@ def install(self, spec, prefix): configure_args.append("--atlas-root=" + spec["blas"].prefix) if "+pthread" in spec["blas"].variants: configure_args.append("--threaded-atlas") - elif spec.satisfies("^[virtuals=blas] intel-parallel-studio") or spec.satisfies( - "^[virtuals=blas] intel-mkl" - ): + elif spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"): configure_args.append("--mathlib=MKL") configure_args.append("--mkl-root=" + spec["blas"].prefix.mkl) if "+openmp" in spec["blas"].variants: diff --git a/var/spack/repos/builtin/packages/ldak/package.py b/var/spack/repos/builtin/packages/ldak/package.py index 172bb89564d..dcc461beb3a 100644 --- a/var/spack/repos/builtin/packages/ldak/package.py +++ b/var/spack/repos/builtin/packages/ldak/package.py @@ -28,14 +28,13 @@ class Ldak(Package): depends_on("blas") depends_on("lapack") depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas") - depends_on("intel-mkl threads=openmp", when="^[virtuals=blas] intel-mkl") depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl") depends_on("glpk", when="+glpk") requires("target=x86_64:", when="~glpk", msg="bundled qsopt is only for x86_64") requires( - "^openblas", - *[f"^{intel_pkg}" for intel_pkg in INTEL_MATH_LIBRARIES], + "^[virtuals=lapack] openblas", + "^[virtuals=lapack] intel-oneapi-mkl", policy="one_of", msg="Only mkl or openblas are supported for blas/lapack with ldak", ) diff --git a/var/spack/repos/builtin/packages/ligra/package.py b/var/spack/repos/builtin/packages/ligra/package.py index 5d8e0cf1715..6be752b7e9c 100644 --- a/var/spack/repos/builtin/packages/ligra/package.py +++ b/var/spack/repos/builtin/packages/ligra/package.py @@ -31,8 +31,6 @@ class Ligra(MakefilePackage): def setup_build_environment(self, env): if self.spec.satisfies("+openmp"): env.set("OPENMP", "1") - # when +mkl, MKLROOT will be defined by intel-mkl package, - # triggering a build with mkl support def setup_run_environment(self, env): env.prepend_path("PATH", self.prefix.apps) diff --git a/var/spack/repos/builtin/packages/molgw/package.py b/var/spack/repos/builtin/packages/molgw/package.py index 9d2b3081437..4656b6bfe09 100644 --- a/var/spack/repos/builtin/packages/molgw/package.py +++ b/var/spack/repos/builtin/packages/molgw/package.py @@ -85,12 +85,11 @@ def edit(self, spec, prefix): flags["PREFIX"] = prefix # Set LAPACK and SCALAPACK - if ( - spec["scalapack"].name in INTEL_MATH_LIBRARIES - or spec["lapack"].name in INTEL_MATH_LIBRARIES - or spec["blas"].name in INTEL_MATH_LIBRARIES + if spec.satisfies("^[virtuals=scalapack] intel-oneapi-mkl") or spec.satisfies( + "^[virtuals=lapack] intel-oneapi-mkl" ): flags["LAPACK"] = self._get_mkl_ld_flags(spec) + flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_MKL " else: flags["LAPACK"] = spec["lapack"].libs.ld_flags + " " + spec["blas"].libs.ld_flags if "+scalapack" in spec: @@ -116,13 +115,6 @@ def edit(self, spec, prefix): if "+scalapack" in spec: flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_SCALAPACK -DHAVE_MPI " - if ( - spec["lapack"].name in INTEL_MATH_LIBRARIES - or spec["scalapack"].name in INTEL_MATH_LIBRARIES - or spec["blas"].name in INTEL_MATH_LIBRARIES - ): - flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_MKL " - # Write configuration file with open("my_machine.arch", "w") as f: for k, v in flags.items(): diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py index af9bd3ef866..a9f6ba20438 100644 --- a/var/spack/repos/builtin/packages/mumps/package.py +++ b/var/spack/repos/builtin/packages/mumps/package.py @@ -236,7 +236,9 @@ def write_makefile_inc(self): # As of version 5.2.0, MUMPS is able to take advantage # of the GEMMT BLAS extension. MKL and amdblis are the only # known BLAS implementation supported. - if self.spec["blas"].name in INTEL_MATH_LIBRARIES and self.spec.satisfies("@5.2.0:"): + if self.spec.satisfies("^[virtuals=blas] intel-oneapi-mkl") and self.spec.satisfies( + "@5.2.0:" + ): optf.append("-DGEMMT_AVAILABLE") if "@5.2.0: ^amdblis@3.0:" in self.spec: diff --git a/var/spack/repos/builtin/packages/ngspice/package.py b/var/spack/repos/builtin/packages/ngspice/package.py index ceef484b61e..478c261db45 100644 --- a/var/spack/repos/builtin/packages/ngspice/package.py +++ b/var/spack/repos/builtin/packages/ngspice/package.py @@ -72,12 +72,7 @@ class Ngspice(AutotoolsPackage): depends_on("cray-fftw+openmp", when="^[virtuals=fftw-api] cray-fftw") depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw") depends_on("fujitsu-fftw+openmp", when="^[virtuals=fftw-api] fujitsu-fftw") - depends_on("intel-mkl threads=openmp", when="^[virtuals=fftw-api] intel-mkl") depends_on("intel-oneapi-mkl threads=openmp", when="^[virtuals=fftw-api] intel-oneapi-mkl") - depends_on( - "intel-parallel-studio threads=openmp", - when="^[virtuals=fftw-api] intel-parallel-studio", - ) with when("+fft~openmp"): depends_on("acfl threads=none", when="^[virtuals=fftw-api] acfl") @@ -86,11 +81,7 @@ class Ngspice(AutotoolsPackage): depends_on("cray-fftw~openmp", when="^[virtuals=fftw-api] cray-fftw") depends_on("fftw~openmp", when="^[virtuals=fftw-api] fftw") depends_on("fujitsu-fftw~openmp", when="^[virtuals=fftw-api] fujitsu-fftw") - depends_on("intel-mkl threads=none", when="^[virtuals=fftw-api] intel-mkl") depends_on("intel-oneapi-mkl threads=none", when="^[virtuals=fftw-api] intel-oneapi-mkl") - depends_on( - "intel-parallel-studio threads=none", when="^[virtuals=fftw-api] intel-parallel-studio" - ) depends_on("readline", when="+readline build=bin") diff --git a/var/spack/repos/builtin/packages/nlcglib/package.py b/var/spack/repos/builtin/packages/nlcglib/package.py index 55ac169201a..137f88345cc 100644 --- a/var/spack/repos/builtin/packages/nlcglib/package.py +++ b/var/spack/repos/builtin/packages/nlcglib/package.py @@ -44,6 +44,13 @@ class Nlcglib(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi") depends_on("lapack") + requires( + "^[virtuals=lapack] openblas", + "^[virtuals=lapack] intel-oneapi-mkl", + policy="one_of", + msg="Only mkl or openblas are supported for blas/lapack with ldak", + ) + depends_on("kokkos~cuda~rocm", when="~cuda~rocm") depends_on("kokkos+openmp", when="+openmp") @@ -81,13 +88,10 @@ def cmake_args(self): self.define_from_variant("USE_CUDA", "cuda"), ] - if self.spec["blas"].name in ["intel-mkl", "intel-parallel-studio"]: - options += [self.define("LAPACK_VENDOR", "MKL")] - elif self.spec["blas"].name in ["intel-oneapi-mkl"]: - options += [self.define("LAPACK_VENDOR", "MKLONEAPI")] + if self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"): mkl_mapper = { "threading": {"none": "sequential", "openmp": "gnu_thread", "tbb": "tbb_thread"}, - "mpi": {"intel-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"}, + "mpi": {"intel-oneapi-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"}, } mkl_threads = mkl_mapper["threading"][ @@ -102,23 +106,20 @@ def cmake_args(self): options.extend( [ + self.define("LAPACK_VENDOR", "MKLONEAPI"), self.define("MKL_INTERFACE", "lp64"), self.define("MKL_THREADING", mkl_threads), self.define("MKL_MPI", mkl_mpi), ] ) - elif self.spec["blas"].name in ["openblas"]: - options += [self.define("LAPACK_VENDOR", "OpenBLAS")] else: - raise Exception("blas/lapack must be either openblas or mkl.") + options.append(self.define("LAPACK_VENDOR", "OpenBLAS")) if "+cuda%gcc" in self.spec: - options += [ - self.define( - "CMAKE_CXX_COMPILER", "{0}".format(self["kokkos-nvcc-wrapper"].kokkos_cxx) - ) - ] + options.append( + self.define("CMAKE_CXX_COMPILER", self["kokkos-nvcc-wrapper"].kokkos_cxx) + ) if "+cuda" in self.spec: cuda_archs = self.spec.variants["cuda_arch"].value @@ -126,19 +127,23 @@ def cmake_args(self): cuda_flags = " ".join( ["-gencode arch=compute_{0},code=sm_{0}".format(x) for x in cuda_archs] ) - options += [self.define("CMAKE_CUDA_FLAGS", cuda_flags)] + options.append(self.define("CMAKE_CUDA_FLAGS", cuda_flags)) else: - options += [self.define("CMAKE_CUDA_ARCHITECTURES", cuda_archs)] + options.append(self.define("CMAKE_CUDA_ARCHITECTURES", cuda_archs)) if "^cuda+allow-unsupported-compilers" in self.spec: - options += [self.define("CMAKE_CUDA_FLAGS", "--allow-unsupported-compiler")] + options.append(self.define("CMAKE_CUDA_FLAGS", "--allow-unsupported-compiler")) if "+rocm" in self.spec: - options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc)) archs = ",".join(self.spec.variants["amdgpu_target"].value) - options.append("-DHIP_HCC_FLAGS=--amdgpu-target={0}".format(archs)) - options.append( - "-DCMAKE_CXX_FLAGS=--amdgpu-target={0} --offload-arch={0}".format(archs) + options.extend( + [ + self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc), + self.define("HIP_HCC_FLAGS", f"--amdgpu-target={archs}"), + self.define( + "CMAKE_CXX_FLAGS", f"--amdgpu-target={archs} --offload-arch={archs}" + ), + ] ) return options diff --git a/var/spack/repos/builtin/packages/octopus/package.py b/var/spack/repos/builtin/packages/octopus/package.py index 6a690b1057a..fde2334156c 100644 --- a/var/spack/repos/builtin/packages/octopus/package.py +++ b/var/spack/repos/builtin/packages/octopus/package.py @@ -181,7 +181,7 @@ def configure_args(self): if "^fftw" in spec: args.append("--with-fftw-prefix=%s" % spec["fftw"].prefix) - elif spec["fftw-api"].name in INTEL_MATH_LIBRARIES: + elif spec.satisfies("^[virtuals=fftw-api] intel-oneapi-mkl"): # As of version 10.0, Octopus depends on fftw-api instead # of FFTW. If FFTW is not in the dependency tree, then # it ought to be MKL as it is currently the only providers diff --git a/var/spack/repos/builtin/packages/pastix/package.py b/var/spack/repos/builtin/packages/pastix/package.py index e3fbb2f5e53..42916ed830f 100644 --- a/var/spack/repos/builtin/packages/pastix/package.py +++ b/var/spack/repos/builtin/packages/pastix/package.py @@ -85,11 +85,11 @@ def cmake_args(self): args.extend([self.define("PASTIX_WITH_STARPU", "ON")]) args.extend([self.define_from_variant("PASTIX_WITH_CUDA", "cuda")]) - if "^intel-mkl" in spec or "^intel-parallel-studio+mkl" in spec: + if spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"): args.extend([self.define("BLA_VENDOR", "Intel10_64lp_seq")]) - elif "^netlib-lapack" in spec: + elif spec.satisfies("^[virtuals=lapack] netlib-lapack"): args.extend([self.define("BLA_VENDOR", "Generic")]) - elif "^openblas" in spec: + elif spec.satisfies("^[virtuals=lapack] openblas"): args.extend([self.define("BLA_VENDOR", "OpenBLAS")]) if spec.satisfies("+mpi"): diff --git a/var/spack/repos/builtin/packages/petsc/package.py b/var/spack/repos/builtin/packages/petsc/package.py index 509c642c244..dd77812f801 100644 --- a/var/spack/repos/builtin/packages/petsc/package.py +++ b/var/spack/repos/builtin/packages/petsc/package.py @@ -292,9 +292,6 @@ class Petsc(Package, CudaPackage, ROCmPackage): when="@3.20.2:3.20.4 ^hipsparse@6.0", ) - # 3.8.0 has a build issue with MKL - so list this conflict explicitly - conflicts("^intel-mkl", when="@3.8.0") - # These require +mpi mpi_msg = "Requires +mpi" conflicts("+cgns", when="~mpi", msg=mpi_msg) diff --git a/var/spack/repos/builtin/packages/py-devito/package.py b/var/spack/repos/builtin/packages/py-devito/package.py index b8dc2cb85c1..0c46c04225a 100644 --- a/var/spack/repos/builtin/packages/py-devito/package.py +++ b/var/spack/repos/builtin/packages/py-devito/package.py @@ -56,7 +56,6 @@ class PyDevito(PythonPackage): depends_on("mpi", type=("build", "run"), when="+mpi") - depends_on("intel-parallel-studio", type="run", when="%intel@:2021.1.1") depends_on("intel-oneapi-compilers", type="run", when="%intel@2021.1.2:") patch("4.8.1.patch", when="@4.8.1") diff --git a/var/spack/repos/builtin/packages/py-numpy/package.py b/var/spack/repos/builtin/packages/py-numpy/package.py index 7957995c103..ed3de80b894 100644 --- a/var/spack/repos/builtin/packages/py-numpy/package.py +++ b/var/spack/repos/builtin/packages/py-numpy/package.py @@ -289,10 +289,10 @@ def blas_lapack_pkg_config(self) -> Tuple[str, str]: blas = spec["blas"].libs.names[0] lapack = spec["lapack"].libs.names[0] - if spec["blas"].name in ["intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"]: + if spec["blas"].name == "intel-oneapi-mkl": blas = "mkl-dynamic-lp64-seq" - if spec["lapack"].name in ["intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"]: + if spec["lapack"].name == "intel-oneapi-mkl": lapack = "mkl-dynamic-lp64-seq" if spec["blas"].name in ["blis", "amdblis"]: @@ -389,11 +389,7 @@ def write_library_dirs(f, dirs): # Tell numpy where to find BLAS/LAPACK libraries with open("site.cfg", "w") as f: - if ( - "^intel-mkl" in spec - or "^intel-parallel-studio+mkl" in spec - or "^intel-oneapi-mkl" in spec - ): + if "^intel-oneapi-mkl" in spec: f.write("[mkl]\n") # FIXME: as of @1.11.2, numpy does not work with separately # specified threading and interface layers. A workaround is a @@ -497,11 +493,7 @@ def setup_build_environment(self, env): # https://github.com/numpy/numpy/pull/13132 # https://numpy.org/doc/1.25/user/building.html#accelerated-blas-lapack-libraries # https://numpy.org/doc/1.25/user/building.html#blas - if ( - spec["blas"].name == "intel-mkl" - or spec["blas"].name == "intel-parallel-studio" - or spec["blas"].name == "intel-oneapi-mkl" - ): + if spec["blas"].name == "intel-oneapi-mkl": blas = "mkl" elif spec["blas"].name == "blis" or spec["blas"].name == "amdblis": blas = "blis" @@ -517,11 +509,7 @@ def setup_build_environment(self, env): env.set("NPY_BLAS_ORDER", blas) # https://numpy.org/doc/1.25/user/building.html#lapack - if ( - spec["lapack"].name == "intel-mkl" - or spec["lapack"].name == "intel-parallel-studio" - or spec["lapack"].name == "intel-oneapi-mkl" - ): + if spec["lapack"].name == "intel-oneapi-mkl": lapack = "mkl" elif spec["lapack"].name == "openblas": lapack = "openblas" diff --git a/var/spack/repos/builtin/packages/py-tomopy/package.py b/var/spack/repos/builtin/packages/py-tomopy/package.py index a3e895bbe50..181d96590c9 100644 --- a/var/spack/repos/builtin/packages/py-tomopy/package.py +++ b/var/spack/repos/builtin/packages/py-tomopy/package.py @@ -27,8 +27,6 @@ class PyTomopy(PythonPackage): depends_on("cuda", when="@master") # The shared opencv is not found by during runtest. Not using GOT/PLT is faster too depends_on("opencv+imgproc~shared@3.4:", when="@master") - # During the runtest, the shared MKL libs aren't found yet: - # depends_on('intel-mkl~shared') depends_on("cmake@3.17:", type=("build")) depends_on("ninja", type=("build")) depends_on("py-setuptools-scm", type=("build")) diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py index 1b3178a3b0c..5115e314564 100644 --- a/var/spack/repos/builtin/packages/py-torch/package.py +++ b/var/spack/repos/builtin/packages/py-torch/package.py @@ -662,14 +662,10 @@ def enable_or_disable(variant, keyword="USE", var=None): elif self.spec["lapack"].name in ["libflame", "amdlibflame"]: env.set("BLAS", "FLAME") env.set("WITH_BLAS", "FLAME") - elif self.spec["blas"].name in ["intel-mkl", "intel-parallel-studio", "intel-oneapi-mkl"]: + elif self.spec["blas"].name == "intel-oneapi-mkl": env.set("BLAS", "MKL") env.set("WITH_BLAS", "mkl") - # help find MKL - if self.spec["mkl"].name == "intel-oneapi-mkl": - env.set("INTEL_MKL_DIR", self.spec["mkl"].prefix.mkl.latest) - else: - env.set("INTEL_MKL_DIR", self.spec["mkl"].prefix.mkl) + env.set("INTEL_MKL_DIR", self.spec["mkl"].prefix.mkl.latest) elif self.spec["blas"].name == "openblas": env.set("BLAS", "OpenBLAS") env.set("WITH_BLAS", "open") diff --git a/var/spack/repos/builtin/packages/q-e-sirius/package.py b/var/spack/repos/builtin/packages/q-e-sirius/package.py index 081fa1e536f..54387cb558c 100644 --- a/var/spack/repos/builtin/packages/q-e-sirius/package.py +++ b/var/spack/repos/builtin/packages/q-e-sirius/package.py @@ -69,9 +69,9 @@ class QESirius(CMakePackage): depends_on("hdf5@1.8.16:+fortran+hl~mpi", when="hdf5=serial") with when("+openmp"): - depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw") - depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas") - depends_on("intel-mkl threads=openmp", when="^[virtuals=blas] intel-mkl") + requires("^fftw+openmp", when="^[virtuals=fftw-api] fftw") + requires("^openblas threads=openmp", when="^[virtuals=blas] openblas") + requires("^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl") def cmake_args(self): args = [ @@ -92,7 +92,7 @@ def cmake_args(self): # Work around spack issue #19970 where spack sets # rpaths for MKL just during make, but cmake removes # them during make install. - if self.spec["lapack"].name in INTEL_MATH_LIBRARIES: + if self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"): args.append("-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON") spec = self.spec args.append(self.define("BLAS_LIBRARIES", spec["blas"].libs.joined(";"))) diff --git a/var/spack/repos/builtin/packages/qmcpack/package.py b/var/spack/repos/builtin/packages/qmcpack/package.py index cd6095f4f38..ca52006347e 100644 --- a/var/spack/repos/builtin/packages/qmcpack/package.py +++ b/var/spack/repos/builtin/packages/qmcpack/package.py @@ -8,9 +8,9 @@ class Qmcpack(CMakePackage, CudaPackage): """QMCPACK, is a modern high-performance open-source Quantum Monte - Carlo (QMC) simulation code.""" + Carlo (QMC) simulation code. + """ - # Package information homepage = "https://www.qmcpack.org/" git = "https://github.com/QMCPACK/qmcpack.git" maintainers("ye-luo") @@ -113,11 +113,8 @@ class Qmcpack(CMakePackage, CudaPackage): msg="QMCPACK CUDA+SOA variant does not exist prior to v. 3.5.0.", ) - conflicts("^openblas+ilp64", msg="QMCPACK does not support OpenBLAS 64-bit integer variant") - - conflicts("^openblas threads=none", msg="QMCPACK does not support OpenBLAS without threading") - - conflicts("^openblas threads=pthreads", msg="QMCPACK does not support OpenBLAS with pthreads") + requires("^openblas~ilp64 threads=openmp", when="^[virtuals=blas,lapack] openblas") + requires("^intel-oneapi-mkl ~ilp64", when="^[virtuals=blas,lapack] intel-oneapi-mkl") conflicts( "cuda_arch=none", @@ -125,10 +122,6 @@ class Qmcpack(CMakePackage, CudaPackage): msg="A value for cuda_arch must be specified. Add cuda_arch=XX", ) - # Omitted for now due to concretizer bug - # conflicts('^intel-mkl+ilp64', - # msg='QMCPACK does not support MKL 64-bit integer variant') - # QMCPACK 3.15.0 increased the minimum gcc to 9 conflicts("%gcc@:8", when="@3.15.0:") @@ -164,8 +157,8 @@ class Qmcpack(CMakePackage, CudaPackage): "QMCPACK releases prior to 3.5.0 require the " "Intel compiler when linking against Intel MKL" ) - conflicts("%gcc", when="@:3.4.0 ^intel-mkl", msg=mkl_warning) - conflicts("%llvm", when="@:3.4.0 ^intel-mkl", msg=mkl_warning) + conflicts("%gcc", when="@:3.4.0 ^[virtuals=blas,lapack] intel-oneapi-mkl", msg=mkl_warning) + conflicts("%llvm", when="@:3.4.0 ^[virtuals=blas,lapack] intel-oneapi-mkl", msg=mkl_warning) # Dependencies match those in the QMCPACK manual. # FIXME: once concretizer can unite unconditional and conditional @@ -378,7 +371,7 @@ def cmake_args(self): # Next two environment variables were introduced in QMCPACK 3.5.0 # Prior to v3.5.0, these lines should be benign but CMake # may issue a warning. - if spec["lapack"].name in INTEL_MATH_LIBRARIES: + if spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"): args.append("-DENABLE_MKL=1") args.append("-DMKL_ROOT=%s" % env["MKLROOT"]) else: diff --git a/var/spack/repos/builtin/packages/quantum-espresso/package.py b/var/spack/repos/builtin/packages/quantum-espresso/package.py index 71820bf2d1f..86e960157ae 100644 --- a/var/spack/repos/builtin/packages/quantum-espresso/package.py +++ b/var/spack/repos/builtin/packages/quantum-espresso/package.py @@ -80,13 +80,13 @@ class QuantumEspresso(CMakePackage, Package): # Need OpenMP threaded FFTW and BLAS libraries when configured # with OpenMP support with when("+openmp"): - depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw") - depends_on("amdfftw+openmp", when="^[virtuals=fftw-api] amdfftw") - depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas") - depends_on("amdblis threads=openmp", when="^[virtuals=blas] amdblis") - depends_on("intel-mkl threads=openmp", when="^[virtuals=blas] intel-mkl") - depends_on("armpl-gcc threads=openmp", when="^[virtuals=blas] armpl-gcc") - depends_on("acfl threads=openmp", when="^[virtuals=blas] acfl") + requires("^fftw+openmp", when="^[virtuals=fftw-api] fftw") + requires("^amdfftw+openmp", when="^[virtuals=fftw-api] amdfftw") + requires("^openblas threads=openmp", when="^[virtuals=blas] openblas") + requires("^amdblis threads=openmp", when="^[virtuals=blas] amdblis") + requires("^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl") + requires("^armpl-gcc threads=openmp", when="^[virtuals=blas] armpl-gcc") + requires("^acfl threads=openmp", when="^[virtuals=blas] acfl") # Add Cuda Fortran support # depends on NVHPC compiler, not directly on CUDA toolkit @@ -250,9 +250,8 @@ class QuantumEspresso(CMakePackage, Package): depends_on("m4", type="build") # If the Intel suite is used for Lapack, it must be used for fftw and vice-versa - for _intel_pkg in INTEL_MATH_LIBRARIES: - requires(f"^[virtuals=fftw-api] {_intel_pkg}", when=f"^[virtuals=lapack] {_intel_pkg}") - requires(f"^[virtuals=lapack] {_intel_pkg}", when=f"^[virtuals=fftw-api] {_intel_pkg}") + requires("^[virtuals=fftw-api] intel-oneapi-mkl", when="^[virtuals=lapack] intel-oneapi-mkl") + requires("^[virtuals=lapack] intel-oneapi-mkl", when="^[virtuals=fftw-api] intel-oneapi-mkl") # CONFLICTS SECTION # Omitted for now due to concretizer bug @@ -538,7 +537,7 @@ def install(self, pkg, spec, prefix): # you need to pass it in the FFTW_INCLUDE and FFT_LIBS directory. # QE supports an internal FFTW2, but only an external FFTW3 interface. - is_using_intel_libraries = spec["lapack"].name in INTEL_MATH_LIBRARIES + is_using_intel_libraries = spec["lapack"].name == "intel-oneapi-mkl" if is_using_intel_libraries: # A seperate FFT library is not needed when linking against MKL options.append("FFTW_INCLUDE={0}".format(join_path(env["MKLROOT"], "include/fftw"))) @@ -586,9 +585,9 @@ def install(self, pkg, spec, prefix): if "+scalapack" in spec: if is_using_intel_libraries: - if "^openmpi" in spec: + if "^[virtuals=mpi] openmpi" in spec: scalapack_option = "yes" - else: # mpich, intel-mpi + else: # mpich scalapack_option = "intel" else: scalapack_option = "yes" diff --git a/var/spack/repos/builtin/packages/r-rmpi/package.py b/var/spack/repos/builtin/packages/r-rmpi/package.py index 0b58f418c3e..666776cb5f9 100644 --- a/var/spack/repos/builtin/packages/r-rmpi/package.py +++ b/var/spack/repos/builtin/packages/r-rmpi/package.py @@ -24,8 +24,7 @@ class RRmpi(RPackage): depends_on("mpi") # The following MPI types are not supported - conflicts("^[virtuals=mpi] intel-mpi") - conflicts("^[virtuals=mpi] intel-parallel-studio") + conflicts("^[virtuals=mpi] intel-oneapi-mpi") conflicts("^[virtuals=mpi] mvapich2") conflicts("^[virtuals=mpi] spectrum-mpi") diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py index 070493ed117..b8d460aedaa 100644 --- a/var/spack/repos/builtin/packages/r/package.py +++ b/var/spack/repos/builtin/packages/r/package.py @@ -177,7 +177,10 @@ def configure_args(self): # R uses LAPACK in Fortran, which requires libmkl_gf_* when gfortran is used. # TODO: cleaning this up seem to require both compilers as dependencies and use variants. - if spec["lapack"].name in INTEL_MATH_LIBRARIES and "gfortran" in self.compiler.fc: + if ( + spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl") + and "gfortran" in self.compiler.fc + ): xlp64 = "ilp64" if spec["lapack"].satisfies("+ilp64") else "lp64" blas_flags = blas_flags.replace(f"mkl_intel_{xlp64}", f"mkl_gf_{xlp64}") lapack_flags = lapack_flags.replace(f"mkl_intel_{xlp64}", f"mkl_gf_{xlp64}") @@ -191,15 +194,13 @@ def configure_args(self): f"LDFLAGS=-Wl,-rpath,{extra_rpath}", f"--with-blas={blas_flags}", f"--with-lapack={lapack_flags}", - # cannot disable docs with a normal configure option "ac_cv_path_PDFLATEX=", "ac_cv_path_PDFTEX=", "ac_cv_path_TEX=", "ac_cv_path_TEXI2DVI=", + f"--with-libintl-prefix={spec['gettext'].prefix}", ] - config_args.append("--with-libintl-prefix={0}".format(spec["gettext"].prefix)) - if "+X" in spec: config_args.append("--with-cairo") config_args.append("--with-jpeglib") diff --git a/var/spack/repos/builtin/packages/scine-qcmaquis/package.py b/var/spack/repos/builtin/packages/scine-qcmaquis/package.py index dac0108075f..89202afaf25 100644 --- a/var/spack/repos/builtin/packages/scine-qcmaquis/package.py +++ b/var/spack/repos/builtin/packages/scine-qcmaquis/package.py @@ -41,11 +41,12 @@ class ScineQcmaquis(CMakePackage): depends_on("hdf5~mpi") depends_on("lapack") - depends_on("blas") - for _pkg in ["openblas"] + list(INTEL_MATH_LIBRARIES): - with when(f"^[virtuals=blas] {_pkg}"): - depends_on(f"{_pkg}+ilp64 threads=openmp") + + requires("^openblas +ilp64 threads=openmp", when="^[virtuals=blas,lapack] openblas") + requires( + "^intel-oneapi-mkl +ilp64 threads=openmp", when="^[virtuals=blas,lapack] intel-oneapi-mkl" + ) depends_on("gsl") depends_on("boost+program_options+filesystem+system+thread+serialization+chrono @1.56:") diff --git a/var/spack/repos/builtin/packages/scorep/package.py b/var/spack/repos/builtin/packages/scorep/package.py index 5d4ec214c60..a68ec7e25c3 100644 --- a/var/spack/repos/builtin/packages/scorep/package.py +++ b/var/spack/repos/builtin/packages/scorep/package.py @@ -213,15 +213,17 @@ def configure_args(self): # If autodetection fails for +shmem with one of these available to spack, please add # a "if spec.satisfies():" clause for said package. - if spec.satisfies("^intel-mpi") or spec.satisfies("^intel-oneapi-mpi"): + if spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi"): config_args.append("--with-mpi=intel3") elif ( - spec.satisfies("^mpich") - or spec.satisfies("^mvapich2") - or spec.satisfies("^cray-mpich") + spec.satisfies("^[virtuals=mpi] mpich") + or spec.satisfies("^[virtuals=mpi] mvapich2") + or spec.satisfies("^[virtuals=mpi] cray-mpich") ): config_args.append("--with-mpi=mpich3") - elif spec.satisfies("^openmpi") or spec.satisfies("^hpcx-mpi"): + elif spec.satisfies("^[virtuals=mpi] openmpi") or spec.satisfies( + "^[virtuals=mpi] hpcx-mpi" + ): config_args.append("--with-mpi=openmpi") elif "~mpi" in spec: config_args.append("--without-mpi") diff --git a/var/spack/repos/builtin/packages/seissol/package.py b/var/spack/repos/builtin/packages/seissol/package.py index 6b080f5ef45..f900ddffa2b 100644 --- a/var/spack/repos/builtin/packages/seissol/package.py +++ b/var/spack/repos/builtin/packages/seissol/package.py @@ -202,7 +202,7 @@ class Seissol(CMakePackage, CudaPackage, ROCmPackage): depends_on("easi ~asagi jit=impalajit,lua", when="~asagi") depends_on("easi +asagi jit=impalajit,lua", when="+asagi") - depends_on("intel-mkl threads=none", when="gemm_tools_list=MKL") + depends_on("intel-oneapi-mkl threads=none", when="gemm_tools_list=MKL") depends_on("blis threads=none", when="gemm_tools_list=BLIS") depends_on("openblas threads=none", when="gemm_tools_list=OpenBLAS") depends_on("libxsmm@main", when="gemm_tools_list=LIBXSMM_JIT") diff --git a/var/spack/repos/builtin/packages/sionlib/package.py b/var/spack/repos/builtin/packages/sionlib/package.py index 06e4031532f..520c4dec34f 100644 --- a/var/spack/repos/builtin/packages/sionlib/package.py +++ b/var/spack/repos/builtin/packages/sionlib/package.py @@ -31,13 +31,14 @@ class Sionlib(AutotoolsPackage): def configure_args(self): args = [] - spec = self.spec - if spec.satisfies("^intel-mpi"): + if self.spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi"): args.append("--mpi=intel2") - elif spec.satisfies("^mpich") or spec.satisfies("^mvapich2"): + elif self.spec.satisfies("^[virtuals=mpi] mpich") or self.spec.satisfies( + "^[virtuals=mpi] mvapich2" + ): args.append("--mpi=mpich2") - elif spec.satisfies("^openmpi"): + elif self.spec.satisfies("^[virtuals=mpi] openmpi"): args.append("--mpi=openmpi") return args diff --git a/var/spack/repos/builtin/packages/sirius/package.py b/var/spack/repos/builtin/packages/sirius/package.py index 9424a6d580b..44015f58e58 100644 --- a/var/spack/repos/builtin/packages/sirius/package.py +++ b/var/spack/repos/builtin/packages/sirius/package.py @@ -153,9 +153,6 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): depends_on("openblas threads=openmp", when="+openmp ^[virtuals=blas,lapack] openblas") depends_on("amdblis threads=openmp", when="+openmp ^[virtuals=blas] amdblis") depends_on("blis threads=openmp", when="+openmp ^[virtuals=blas] blis") - depends_on( - "intel-mkl threads=openmp", when="+openmp ^[virtuals=blas,lapack,fftw-api] intel-mkl" - ) depends_on( "intel-oneapi-mkl threads=openmp", when="+openmp ^[virtuals=blas,lapack,fftw-api] intel-oneapi-mkl", @@ -165,7 +162,6 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage): when="+scalapack ^[virtuals=blas,lapack,fftw-api] intel-oneapi-mkl", ) - conflicts("intel-mkl", when="@7.6.0:") # MKLConfig.cmake introduced in 2021.3 conflicts("intel-oneapi-mkl@:2021.2", when="^intel-oneapi-mkl") @@ -244,7 +240,7 @@ def cmake_args(self): if "^cray-libsci" in spec: args.append(self.define(cm_label + "USE_CRAY_LIBSCI", "ON")) - if spec["blas"].name in INTEL_MATH_LIBRARIES: + if spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"): args.append(self.define(cm_label + "USE_MKL", "ON")) if spec.satisfies("@7.6.0:"): @@ -254,7 +250,11 @@ def cmake_args(self): "openmp": "gnu_thread", "tbb": "tbb_thread", }, - "mpi": {"intel-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"}, + "mpi": { + "intel-oneapi-mpi": "intelmpi", + "mpich": "mpich", + "openmpi": "openmpi", + }, } mkl_threads = mkl_mapper["threading"][ diff --git a/var/spack/repos/builtin/packages/xyce/package.py b/var/spack/repos/builtin/packages/xyce/package.py index 9c838d0a0a0..346b1df8ba5 100644 --- a/var/spack/repos/builtin/packages/xyce/package.py +++ b/var/spack/repos/builtin/packages/xyce/package.py @@ -145,11 +145,7 @@ class Xyce(CMakePackage): depends_on("blis libs=static", when="^[virtuals=blas] blis+cblas") depends_on("blis libs=static", when="^[virtuals=blas] blis+blas") depends_on("clblast~shared", when="^[virtuals=blas] clblast+netlib") - depends_on("intel-mkl~shared", when="^[virtuals=blas] intel-mkl") depends_on("intel-oneapi-mkl~shared", when="^[virtuals=blas] intel-oneapi-mkl") - depends_on( - "intel-parallel-studio~shared", when="^[virtuals=blas] intel-parallel-studio+mkl" - ) depends_on("veclibfort~shared", when="^[virtuals=blas] veclibfort") conflicts("^essl", msg="essl not supported with +pymi_static_tpls") conflicts("^flexiblas", msg="flexiblas not supported with +pymi_static_tpls")