Remove "classic" Intel packages (#45188)
This commit is contained in:
parent
199133fca4
commit
4894668ece
@ -311,4 +311,4 @@ def ld_flags(self):
|
|||||||
|
|
||||||
|
|
||||||
#: Tuple of Intel math libraries, exported to packages
|
#: 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",)
|
||||||
|
@ -572,7 +572,7 @@ def edit(self, spec, prefix):
|
|||||||
class IntelPackageTemplate(PackageTemplate):
|
class IntelPackageTemplate(PackageTemplate):
|
||||||
"""Provides appropriate overrides for licensed Intel software"""
|
"""Provides appropriate overrides for licensed Intel software"""
|
||||||
|
|
||||||
base_class_name = "IntelPackage"
|
base_class_name = "IntelOneApiPackage"
|
||||||
|
|
||||||
body_def = """\
|
body_def = """\
|
||||||
# FIXME: Override `setup_environment` if necessary."""
|
# FIXME: Override `setup_environment` if necessary."""
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
(
|
(
|
||||||
["-t", "intel", "/test-intel"],
|
["-t", "intel", "/test-intel"],
|
||||||
"test-intel",
|
"test-intel",
|
||||||
[r"TestIntel(IntelPackage)", r"setup_environment"],
|
[r"TestIntel(IntelOneApiPackage)", r"setup_environment"],
|
||||||
),
|
),
|
||||||
(
|
(
|
||||||
["-t", "makefile", "/test-makefile"],
|
["-t", "makefile", "/test-makefile"],
|
||||||
|
@ -24,8 +24,6 @@ def test_it_just_runs(pkg):
|
|||||||
(
|
(
|
||||||
("mpi",),
|
("mpi",),
|
||||||
[
|
[
|
||||||
"intel-mpi",
|
|
||||||
"intel-parallel-studio",
|
|
||||||
"mpich",
|
"mpich",
|
||||||
"mpilander",
|
"mpilander",
|
||||||
"mvapich2",
|
"mvapich2",
|
||||||
|
@ -209,7 +209,7 @@ def configure_args(self):
|
|||||||
linalg = spec["lapack"].libs + spec["blas"].libs
|
linalg = spec["lapack"].libs + spec["blas"].libs
|
||||||
|
|
||||||
# linalg_flavor is selected using the virtual lapack provider
|
# 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
|
# 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:
|
# linalg_flavor ends up as "custom", which is not supported by abinit@9.10.3:
|
||||||
|
@ -86,7 +86,7 @@ def cmake_args(self):
|
|||||||
]
|
]
|
||||||
args.append(self.define("CUDA_architecture_build_targets", arch_list))
|
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"):
|
if self.version >= Version("3.8.0"):
|
||||||
args.append(self.define("AF_COMPUTE_LIBRARY", "Intel-MKL"))
|
args.append(self.define("AF_COMPUTE_LIBRARY", "Intel-MKL"))
|
||||||
else:
|
else:
|
||||||
|
@ -52,7 +52,7 @@ def edit(self, spec, prefix):
|
|||||||
if spec["blas"].name == "openblas":
|
if spec["blas"].name == "openblas":
|
||||||
env["OPENBLAS"] = "1"
|
env["OPENBLAS"] = "1"
|
||||||
|
|
||||||
elif spec["blas"].name in INTEL_MATH_LIBRARIES:
|
elif spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"):
|
||||||
env["MKL"] = "1"
|
env["MKL"] = "1"
|
||||||
env["MKL_BASE"] = spec["mkl"].prefix.mkl
|
env["MKL_BASE"] = spec["mkl"].prefix.mkl
|
||||||
else:
|
else:
|
||||||
|
@ -26,7 +26,7 @@ class Batchedblas(MakefilePackage):
|
|||||||
def edit(self, spec, prefix):
|
def edit(self, spec, prefix):
|
||||||
CCFLAGS = [self.compiler.openmp_flag, "-I./", "-O3"]
|
CCFLAGS = [self.compiler.openmp_flag, "-I./", "-O3"]
|
||||||
BLAS = ["-lm", spec["blas"].libs.ld_flags]
|
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_")
|
CCFLAGS.append("-D_CBLAS_")
|
||||||
if spec.satisfies("%intel"):
|
if spec.satisfies("%intel"):
|
||||||
CCFLAGS.extend(["-Os"])
|
CCFLAGS.extend(["-Os"])
|
||||||
|
@ -69,7 +69,8 @@ class Beatnik(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
conflicts("mpich ~cuda", when="+cuda")
|
conflicts("mpich ~cuda", when="+cuda")
|
||||||
conflicts("mpich ~rocm", when="+rocm")
|
conflicts("mpich ~rocm", when="+rocm")
|
||||||
conflicts("openmpi ~cuda", when="+cuda")
|
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:
|
conflicts("^spectrum-mpi", when="^cuda@11.3:") # cuda-aware spectrum is broken with cuda 11.3:
|
||||||
|
|
||||||
# Propagate CUDA and AMD GPU targets to cabana
|
# Propagate CUDA and AMD GPU targets to cabana
|
||||||
|
@ -78,12 +78,7 @@ class Berkeleygw(MakefilePackage):
|
|||||||
depends_on("cray-fftw+openmp", when="^[virtuals=fftw-api] cray-fftw")
|
depends_on("cray-fftw+openmp", when="^[virtuals=fftw-api] cray-fftw")
|
||||||
depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
|
depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
|
||||||
depends_on("fujitsu-fftw+openmp", when="^[virtuals=fftw-api] fujitsu-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-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"):
|
with when("~openmp"):
|
||||||
depends_on("acfl threads=none", when="^[virtuals=fftw-api] acfl")
|
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("cray-fftw~openmp", when="^[virtuals=fftw-api] cray-fftw")
|
||||||
depends_on("fftw~openmp", when="^[virtuals=fftw-api] fftw")
|
depends_on("fftw~openmp", when="^[virtuals=fftw-api] fftw")
|
||||||
depends_on("fujitsu-fftw~openmp", when="^[virtuals=fftw-api] fujitsu-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-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
|
# in order to run the installed python scripts
|
||||||
depends_on("python", type=("build", "run"), when="+python")
|
depends_on("python", type=("build", "run"), when="+python")
|
||||||
|
@ -89,17 +89,20 @@ def cosma_blas_cmake_arg(self):
|
|||||||
query_to_cmake_arg = [
|
query_to_cmake_arg = [
|
||||||
("+cuda", "CUDA"),
|
("+cuda", "CUDA"),
|
||||||
("+rocm", "ROCM"),
|
("+rocm", "ROCM"),
|
||||||
("^intel-mkl", "MKL"),
|
("^[virtuals=blas] intel-oneapi-mkl", "MKL"),
|
||||||
("^intel-oneapi-mkl", "MKL"),
|
("^[virtuals=blas] cray-libsci", "CRAY_LIBSCI"),
|
||||||
("^cray-libsci", "CRAY_LIBSCI"),
|
("^[virtuals=blas] netlib-lapack", "CUSTOM"),
|
||||||
("^netlib-lapack", "CUSTOM"),
|
("^[virtuals=blas] openblas", "OPENBLAS"),
|
||||||
("^openblas", "OPENBLAS"),
|
("^[virtuals=blas] fujitsu-ssl2", "SSL2"),
|
||||||
("^fujitsu-ssl2", "SSL2"),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
if self.version >= Version("2.4.0"):
|
if self.version >= Version("2.4.0"):
|
||||||
query_to_cmake_arg.extend(
|
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:
|
for query, cmake_arg in query_to_cmake_arg:
|
||||||
@ -113,7 +116,7 @@ def cosma_scalapack_cmake_arg(self):
|
|||||||
|
|
||||||
if spec.satisfies("~scalapack"):
|
if spec.satisfies("~scalapack"):
|
||||||
return "OFF"
|
return "OFF"
|
||||||
elif spec.satisfies("^intel-mkl") or spec.satisfies("^intel-oneapi-mkl"):
|
elif spec.satisfies("^[virtuals=scalapack] intel-oneapi-mkl"):
|
||||||
return "MKL"
|
return "MKL"
|
||||||
elif spec.satisfies("^cray-libsci"):
|
elif spec.satisfies("^cray-libsci"):
|
||||||
return "CRAY_LIBSCI"
|
return "CRAY_LIBSCI"
|
||||||
|
@ -58,9 +58,9 @@ def costa_scalapack_cmake_arg(self):
|
|||||||
|
|
||||||
if spec.satisfies("~scalapack"):
|
if spec.satisfies("~scalapack"):
|
||||||
return "OFF"
|
return "OFF"
|
||||||
elif spec.satisfies("^intel-mkl") or spec.satisfies("^intel-oneapi-mkl"):
|
elif spec.satisfies("^[virtuals=scalapack] intel-oneapi-mkl"):
|
||||||
return "MKL"
|
return "MKL"
|
||||||
elif spec.satisfies("^cray-libsci"):
|
elif spec.satisfies("^[virtuals=scalapack] cray-libsci"):
|
||||||
return "CRAY_LIBSCI"
|
return "CRAY_LIBSCI"
|
||||||
|
|
||||||
return "CUSTOM"
|
return "CUSTOM"
|
||||||
|
@ -495,7 +495,7 @@ def edit(self, pkg, spec, prefix):
|
|||||||
}
|
}
|
||||||
|
|
||||||
dflags = ["-DNDEBUG"] if spec.satisfies("@:2023.2") else []
|
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)]
|
cppflags = ["-D__FFTW3_MKL", "-I{0}".format(fftw_header_dir)]
|
||||||
else:
|
else:
|
||||||
cppflags = ["-D__FFTW3", "-I{0}".format(fftw_header_dir)]
|
cppflags = ["-D__FFTW3", "-I{0}".format(fftw_header_dir)]
|
||||||
@ -705,7 +705,7 @@ def edit(self, pkg, spec, prefix):
|
|||||||
if spec.satisfies("platform=darwin"):
|
if spec.satisfies("platform=darwin"):
|
||||||
cppflags.extend(["-D__NO_STATM_ACCESS"])
|
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"]
|
cppflags += ["-D__MKL"]
|
||||||
elif spec["blas"].name == "accelerate":
|
elif spec["blas"].name == "accelerate":
|
||||||
cppflags += ["-D__ACCELERATE"]
|
cppflags += ["-D__ACCELERATE"]
|
||||||
@ -725,8 +725,6 @@ def edit(self, pkg, spec, prefix):
|
|||||||
else:
|
else:
|
||||||
mpi = spec["mpi:cxx"].libs
|
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":
|
if spec["scalapack"].name == "intel-oneapi-mkl":
|
||||||
mpi_impl = "openmpi" if spec["mpi"].name in ["openmpi", "hpcx-mpi"] else "intelmpi"
|
mpi_impl = "openmpi" if spec["mpi"].name in ["openmpi", "hpcx-mpi"] else "intelmpi"
|
||||||
scalapack = [
|
scalapack = [
|
||||||
@ -1098,7 +1096,7 @@ def cmake_args(self):
|
|||||||
lapack = spec["lapack"]
|
lapack = spec["lapack"]
|
||||||
blas = spec["blas"]
|
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"]
|
args += ["-DCP2K_BLAS_VENDOR=MKL"]
|
||||||
if sys.platform == "darwin":
|
if sys.platform == "darwin":
|
||||||
args += [
|
args += [
|
||||||
|
@ -43,7 +43,7 @@ def url_for_version(self, version):
|
|||||||
def configure_args(self):
|
def configure_args(self):
|
||||||
config_args = []
|
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(
|
config_args.extend(
|
||||||
[
|
[
|
||||||
"--enable-mkl",
|
"--enable-mkl",
|
||||||
|
@ -388,12 +388,16 @@ class Dealii(CMakePackage, CudaPackage):
|
|||||||
|
|
||||||
# Check that the combination of variants makes sense
|
# Check that the combination of variants makes sense
|
||||||
# 64-bit BLAS:
|
# 64-bit BLAS:
|
||||||
for _package in ["openblas", "intel-mkl", "intel-parallel-studio+mkl"]:
|
conflicts(
|
||||||
conflicts(
|
"^[virtuals=lapack] openblas+ilp64",
|
||||||
"^{0}+ilp64".format(_package),
|
when="@:8.5.1",
|
||||||
when="@:8.5.1",
|
msg="64bit BLAS is only supported from 9.0.0",
|
||||||
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:
|
# MPI requirements:
|
||||||
for _package in [
|
for _package in [
|
||||||
@ -505,10 +509,8 @@ def cmake_args(self):
|
|||||||
# 64 bit indices
|
# 64 bit indices
|
||||||
options.append(self.define_from_variant("DEAL_II_WITH_64BIT_INDICES", "int64"))
|
options.append(self.define_from_variant("DEAL_II_WITH_64BIT_INDICES", "int64"))
|
||||||
|
|
||||||
if (
|
if spec.satisfies("^[virtuals=lapack] openblas+ilp64") or spec.satisfies(
|
||||||
spec.satisfies("^openblas+ilp64")
|
"^[virtuals=lapack] intel-oneapi-mkl+ilp64"
|
||||||
or spec.satisfies("^intel-mkl+ilp64")
|
|
||||||
or spec.satisfies("^intel-parallel-studio+mkl+ilp64")
|
|
||||||
):
|
):
|
||||||
options.append(self.define("LAPACK_WITH_64BIT_BLAS_INDICES", True))
|
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"))
|
options.append(self.define_from_variant("DEAL_II_WITH_TBB", "threads"))
|
||||||
else:
|
else:
|
||||||
options.append(self.define_from_variant("DEAL_II_WITH_THREADS", "threads"))
|
options.append(self.define_from_variant("DEAL_II_WITH_THREADS", "threads"))
|
||||||
|
|
||||||
if spec.satisfies("+threads"):
|
if spec.satisfies("+threads"):
|
||||||
if spec.satisfies("^intel-parallel-studio+tbb"):
|
options.append(self.define("TBB_DIR", spec["tbb"].prefix))
|
||||||
# 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))
|
|
||||||
|
|
||||||
# Optional dependencies for which library names are the same as CMake
|
# Optional dependencies for which library names are the same as CMake
|
||||||
# variables:
|
# variables:
|
||||||
|
@ -182,71 +182,41 @@ def cmake_args(self):
|
|||||||
args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared"))
|
args.append(self.define_from_variant("BUILD_SHARED_LIBS", "shared"))
|
||||||
|
|
||||||
# BLAS/LAPACK
|
# 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
|
mkl_provider = spec["lapack"].name
|
||||||
|
|
||||||
vmap = {
|
vmap = {
|
||||||
"intel-oneapi-mkl": {
|
"threading": {"none": "sequential", "openmp": "gnu_thread", "tbb": "tbb_thread"},
|
||||||
"threading": {
|
"mpi": {"intel-oneapi-mpi": "intelmpi", "mpich": "mpich", "openmpi": "openmpi"},
|
||||||
"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"},
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if mkl_provider not in vmap.keys():
|
mkl_threads = vmap["threading"][spec["intel-oneapi-mkl"].variants["threads"].value]
|
||||||
raise RuntimeError(
|
args += [
|
||||||
f"dla-future does not support {mkl_provider} as lapack provider"
|
self.define("DLAF_WITH_MKL", True),
|
||||||
)
|
self.define("MKL_INTERFACE", "lp64"),
|
||||||
mkl_mapper = vmap[mkl_provider]
|
self.define("MKL_THREADING", mkl_threads),
|
||||||
|
]
|
||||||
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"),
|
|
||||||
]
|
|
||||||
|
|
||||||
if spec.satisfies("+scalapack"):
|
if spec.satisfies("+scalapack"):
|
||||||
try:
|
try:
|
||||||
mpi_provider = spec["mpi"].name
|
mpi_provider = spec["mpi"].name
|
||||||
if mpi_provider in ["mpich", "cray-mpich", "mvapich", "mvapich2"]:
|
if mpi_provider in ["mpich", "cray-mpich", "mvapich", "mvapich2"]:
|
||||||
mkl_mpi = mkl_mapper["mpi"]["mpich"]
|
mkl_mpi = vmap["mpi"]["mpich"]
|
||||||
else:
|
else:
|
||||||
mkl_mpi = mkl_mapper["mpi"][mpi_provider]
|
mkl_mpi = vmap["mpi"][mpi_provider]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise RuntimeError(
|
raise RuntimeError(
|
||||||
f"dla-future does not support {spec['mpi'].name} as mpi provider with "
|
f"dla-future does not support {spec['mpi'].name} as mpi provider with "
|
||||||
f"the selected scalapack provider {mkl_provider}"
|
f"the selected scalapack provider {mkl_provider}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if mkl_provider == "intel-oneapi-mkl":
|
args.append(self.define("MKL_MPI", mkl_mpi))
|
||||||
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",
|
|
||||||
)
|
|
||||||
)
|
|
||||||
else:
|
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
|
add_dlaf_prefix = lambda x: x if spec.satisfies("@:0.6") else "DLAF_" + x
|
||||||
args.append(
|
args.append(
|
||||||
self.define(
|
self.define(
|
||||||
|
@ -63,7 +63,6 @@ class Dyninst(CMakePackage):
|
|||||||
# package layout. Need to use tbb provided config instead.
|
# package layout. Need to use tbb provided config instead.
|
||||||
conflicts("^intel-tbb@2021.1:")
|
conflicts("^intel-tbb@2021.1:")
|
||||||
conflicts("^intel-oneapi-tbb@2021.1:")
|
conflicts("^intel-oneapi-tbb@2021.1:")
|
||||||
conflicts("^intel-parallel-studio")
|
|
||||||
|
|
||||||
depends_on("tbb")
|
depends_on("tbb")
|
||||||
requires("^[virtuals=tbb] intel-tbb@2019.9:", when="@13.0.0:")
|
requires("^[virtuals=tbb] intel-tbb@2019.9:", when="@13.0.0:")
|
||||||
|
@ -81,11 +81,7 @@ class Elk(MakefilePackage):
|
|||||||
|
|
||||||
depends_on("mkl", when="linalg=mkl")
|
depends_on("mkl", when="linalg=mkl")
|
||||||
with when("linalg=mkl +openmp"):
|
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-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", when="linalg=openblas")
|
||||||
depends_on("openblas threads=openmp", when="linalg=openblas +openmp")
|
depends_on("openblas threads=openmp", when="linalg=openblas +openmp")
|
||||||
@ -200,8 +196,6 @@ def edit(self, spec, prefix):
|
|||||||
config["SRC_FFT"] += " cfftifc_mkl.f90"
|
config["SRC_FFT"] += " cfftifc_mkl.f90"
|
||||||
cp = which("cp")
|
cp = which("cp")
|
||||||
mkl_prefix = spec["mkl"].prefix
|
mkl_prefix = spec["mkl"].prefix
|
||||||
if spec.satisfies("^intel-mkl"):
|
|
||||||
mkl_prefix = mkl_prefix.mkl
|
|
||||||
cp(
|
cp(
|
||||||
join_path(mkl_prefix.include, "mkl_dfti.f90"),
|
join_path(mkl_prefix.include, "mkl_dfti.f90"),
|
||||||
join_path(self.build_directory, "src"),
|
join_path(self.build_directory, "src"),
|
||||||
|
@ -69,7 +69,7 @@ def cmake_args(self):
|
|||||||
else:
|
else:
|
||||||
args.append("-DWITH_MPI=OFF")
|
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")
|
args.append("-DWITH_MKL:BOOL=TRUE")
|
||||||
|
|
||||||
if spec.satisfies("+openmp"):
|
if spec.satisfies("+openmp"):
|
||||||
|
@ -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
|
# https://gitlab.mpcdf.mpg.de/elpa/elpa/-/blob/master/documentation/PERFORMANCE_TUNING.md?ref_type=heads#builds-with-openmp-enabled
|
||||||
with when("+openmp"):
|
with when("+openmp"):
|
||||||
requires("^openblas threads=openmp", when="^[virtuals=blas,lapack] openblas")
|
requires("^openblas threads=openmp", when="^[virtuals=blas,lapack] openblas")
|
||||||
requires("^intel-mkl threads=openmp", when="^[virtuals=blas,lapack] intel-mkl")
|
|
||||||
requires(
|
requires(
|
||||||
"^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas,lapack] intel-oneapi-mkl"
|
"^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
|
# fails to build due to broken type-bound procedures in OMP parallel regions
|
||||||
conflicts(
|
conflicts(
|
||||||
|
@ -343,11 +343,7 @@ def setup_build_environment(self, env):
|
|||||||
"^[virtuals=mpi] hpcx-mpi"
|
"^[virtuals=mpi] hpcx-mpi"
|
||||||
):
|
):
|
||||||
env.set("ESMF_COMM", "openmpi")
|
env.set("ESMF_COMM", "openmpi")
|
||||||
elif (
|
elif spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi"):
|
||||||
spec.satisfies("^[virtuals=mpi] intel-parallel-studio+mpi")
|
|
||||||
or spec.satisfies("^[virtuals=mpi] intel-mpi")
|
|
||||||
or spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi")
|
|
||||||
):
|
|
||||||
env.set("ESMF_COMM", "intelmpi")
|
env.set("ESMF_COMM", "intelmpi")
|
||||||
elif spec.satisfies("^[virtuals=mpi] mpt"):
|
elif spec.satisfies("^[virtuals=mpi] mpt"):
|
||||||
# MPT is the HPE (SGI) variant of mpich
|
# MPT is the HPE (SGI) variant of mpich
|
||||||
|
@ -30,21 +30,15 @@ class Exabayes(AutotoolsPackage):
|
|||||||
# GCC 7.1.0 is used.
|
# GCC 7.1.0 is used.
|
||||||
conflicts("%gcc@:4.5.4, 7.1.0:", when="@:1.5.0")
|
conflicts("%gcc@:4.5.4, 7.1.0:", when="@:1.5.0")
|
||||||
conflicts("%clang@:3.1")
|
conflicts("%clang@:3.1")
|
||||||
conflicts("^intel-mpi", when="+mpi")
|
conflicts("^intel-oneapi-mpi", when="+mpi")
|
||||||
conflicts("^intel-parallel-studio+mpi", when="+mpi")
|
|
||||||
conflicts("^mvapich2", when="+mpi")
|
conflicts("^mvapich2", when="+mpi")
|
||||||
conflicts("^spectrum-mpi", when="+mpi")
|
conflicts("^spectrum-mpi", when="+mpi")
|
||||||
|
|
||||||
def configure_args(self):
|
def configure_args(self):
|
||||||
args = []
|
return self.enable_or_disable("mpi")
|
||||||
if self.spec.satisfies("+mpi"):
|
|
||||||
args.append("--enable-mpi")
|
|
||||||
else:
|
|
||||||
args.append("--disable-mpi")
|
|
||||||
return args
|
|
||||||
|
|
||||||
def flag_handler(self, name, flags):
|
def flag_handler(self, name, flags):
|
||||||
if name.lower() == "cxxflags":
|
if name.lower() == "cxxflags":
|
||||||
# manual cites need for c++11
|
# manual cites need for c++11
|
||||||
flags.append(self.compiler.cxx11_flag)
|
flags.append(self.compiler.cxx11_flag)
|
||||||
return (flags, None, None)
|
return flags, None, None
|
||||||
|
@ -42,11 +42,8 @@ class Exciting(MakefilePackage):
|
|||||||
depends_on("mkl", when="+mkl")
|
depends_on("mkl", when="+mkl")
|
||||||
depends_on("mpi", when="+mpi")
|
depends_on("mpi", when="+mpi")
|
||||||
depends_on("scalapack", when="+scalapack")
|
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")
|
conflicts("%intel")
|
||||||
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")
|
|
||||||
|
|
||||||
def patch(self):
|
def patch(self):
|
||||||
"""Fix bad logic in m_makespectrum.f90 for the Oxygen release"""
|
"""Fix bad logic in m_makespectrum.f90 for the Oxygen release"""
|
||||||
|
@ -44,10 +44,7 @@ class Fds(MakefilePackage):
|
|||||||
)
|
)
|
||||||
|
|
||||||
requires(
|
requires(
|
||||||
"^intel-mkl",
|
"^intel-oneapi-mkl", policy="one_of", msg="FDS builds require Intel oneAPI MKL library"
|
||||||
"^intel-oneapi-mkl",
|
|
||||||
policy="one_of",
|
|
||||||
msg="FDS builds require either Intel MKL or Intel oneAPI MKL library",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
requires(
|
requires(
|
||||||
@ -56,12 +53,6 @@ class Fds(MakefilePackage):
|
|||||||
msg="OpenMPI can only be used with GNU Fortran on Linux platform",
|
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(
|
requires(
|
||||||
"^intel-oneapi-mpi^intel-oneapi-mkl",
|
"^intel-oneapi-mpi^intel-oneapi-mkl",
|
||||||
when="platform=linux %oneapi",
|
when="platform=linux %oneapi",
|
||||||
@ -85,7 +76,7 @@ def edit(self, spec, prefix):
|
|||||||
@property
|
@property
|
||||||
def build_targets(self):
|
def build_targets(self):
|
||||||
spec = self.spec
|
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"}
|
compiler_mapping = {"gcc": "gnu", "oneapi": "intel", "intel": "intel"}
|
||||||
platform_mapping = {"linux": "linux", "darwin": "osx"}
|
platform_mapping = {"linux": "linux", "darwin": "osx"}
|
||||||
mpi_prefix = mpi_mapping[spec["mpi"].name]
|
mpi_prefix = mpi_mapping[spec["mpi"].name]
|
||||||
|
@ -142,7 +142,7 @@ class Gaudi(CMakePackage, CudaPackage):
|
|||||||
# ROOT does not like being exposed to LLVM symbols.
|
# ROOT does not like being exposed to LLVM symbols.
|
||||||
|
|
||||||
# The Intel VTune dependency is taken aside because it requires a license
|
# 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):
|
def patch(self):
|
||||||
# ensure an empty pytest.ini is present to prevent finding one
|
# ensure an empty pytest.ini is present to prevent finding one
|
||||||
|
@ -41,7 +41,7 @@ class Gearshifft(CMakePackage):
|
|||||||
depends_on("clfft@2.12.0:", when="+clfft")
|
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("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")
|
depends_on("rocfft", when="+rocfft")
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
|
@ -75,24 +75,25 @@ def configure_args(self):
|
|||||||
spec = self.spec
|
spec = self.spec
|
||||||
args = ["--with-gmp", "--with-mpfr"]
|
args = ["--with-gmp", "--with-mpfr"]
|
||||||
|
|
||||||
if spec.satisfies("^intel-mkl"):
|
if spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl") or spec.satisfies(
|
||||||
if spec.satisfies("+fftw") or spec.satisfies("+lapack"):
|
"^[virtuals=fftw-api] intel-oneapi-mkl"
|
||||||
args.append("--enable-mkl")
|
):
|
||||||
|
args.append("--enable-mkl")
|
||||||
else:
|
else:
|
||||||
if spec.satisfies("+fftw"):
|
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"):
|
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
|
# lapack is searched only as `-llapack`, so anything else
|
||||||
# wouldn't be found, causing an error.
|
# 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:
|
if "comms=none" not in spec:
|
||||||
# The build system can easily get very confused about MPI support
|
# 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
|
# 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
|
# code with support for MPI but without using `mpicxx` or linking to
|
||||||
# `-lmpi`, wreaking havoc. Forcing `CXX` to be mpicxx should help.
|
# `-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("timers")
|
||||||
args += self.enable_or_disable("chroma")
|
args += self.enable_or_disable("chroma")
|
||||||
@ -119,11 +120,11 @@ def configure_args(self):
|
|||||||
args.extend(
|
args.extend(
|
||||||
[
|
[
|
||||||
"--enable-simd=GEN",
|
"--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(f"--enable-comms={spec.variants['comms'].value}")
|
||||||
args.append("--enable-rng={0}".format(spec.variants["rng"].value))
|
args.append(f"--enable-rng={spec.variants['rng'].value}")
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
@ -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
|
# 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("^[virtuals=fftw-api] intel-oneapi-mkl", when="^[virtuals=lapack] intel-oneapi-mkl")
|
||||||
requires(f"^[virtuals=fftw-api] {_intel_pkg}", when=f"^[virtuals=lapack] {_intel_pkg}")
|
requires("^[virtuals=lapack] intel-oneapi-mkl", when="^[virtuals=fftw-api] intel-oneapi-mkl")
|
||||||
requires(f"^[virtuals=lapack] {_intel_pkg}", when=f"^[virtuals=fftw-api] {_intel_pkg}")
|
|
||||||
|
|
||||||
patch("gmxDetectCpu-cmake-3.14.patch", when="@2018:2019.3^cmake@3.14.0:")
|
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:")
|
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}")
|
options.append(f"-DNVSHMEM_ROOT={nvshmem_root}")
|
||||||
|
|
||||||
if self.spec["lapack"].name in INTEL_MATH_LIBRARIES:
|
if self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"):
|
||||||
# fftw-api@3 is provided by intel-mkl or intel-parallel-studio
|
# fftw-api@3 is provided by intel-oneapi-mkl
|
||||||
# we use the mkl interface of gromacs
|
|
||||||
options.append("-DGMX_FFT_LIBRARY=mkl")
|
options.append("-DGMX_FFT_LIBRARY=mkl")
|
||||||
if self.spec.satisfies("@:2022"):
|
if self.spec.satisfies("@:2022"):
|
||||||
options.append(
|
options.append(
|
||||||
|
@ -37,14 +37,11 @@ class Gsibec(CMakePackage):
|
|||||||
|
|
||||||
depends_on("lapack", type=("build", "run"))
|
depends_on("lapack", type=("build", "run"))
|
||||||
|
|
||||||
depends_on("ecbuild", type=("build"))
|
depends_on("ecbuild", type="build")
|
||||||
depends_on("jedi-cmake", type=("build"))
|
depends_on("jedi-cmake", type="build")
|
||||||
depends_on("sp", type=("build"))
|
depends_on("sp", type="build")
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
args = []
|
return [
|
||||||
|
self.define("ENABLE_MKL", self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"))
|
||||||
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
|
|
||||||
|
@ -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_mpi.so"))
|
||||||
lin_alg_libs.append(join_path(spec["fftw-api"].prefix.lib, "libsfftw.so"))
|
lin_alg_libs.append(join_path(spec["fftw-api"].prefix.lib, "libsfftw.so"))
|
||||||
|
|
||||||
elif (
|
elif self.spec.variants["fft"].value == "mkl" and spec.satisfies(
|
||||||
self.spec.variants["fft"].value == "mkl"
|
"^[virtuals=fftw-api] intel-oneapi-mkl"
|
||||||
and spec["fftw-api"].name in INTEL_MATH_LIBRARIES
|
|
||||||
):
|
):
|
||||||
mklroot = env["MKLROOT"]
|
mklroot = env["MKLROOT"]
|
||||||
self.config["@LAINC@"] += f" -I{join_path(mklroot, 'include/fftw')}"
|
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
|
# Compiler flags for CPU architecture optimizations
|
||||||
if spec.satisfies("%intel"):
|
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)
|
arch_opt = optimization_flags(self.compiler, spec.target)
|
||||||
self.config["@CCFLAGS@"] = f"-O3 -restrict -ansi-alias -ip {arch_opt}"
|
self.config["@CCFLAGS@"] = f"-O3 -restrict -ansi-alias -ip {arch_opt}"
|
||||||
self.config["@CCNOOPT@"] = "-restrict"
|
self.config["@CCNOOPT@"] = "-restrict"
|
||||||
|
@ -126,11 +126,7 @@ def configure_args(self):
|
|||||||
if self.spec.satisfies("+openmp"):
|
if self.spec.satisfies("+openmp"):
|
||||||
cflags.append(self.compiler.openmp_flag)
|
cflags.append(self.compiler.openmp_flag)
|
||||||
|
|
||||||
if (
|
if self.spec.satisfies("^intel-oneapi-mkl"):
|
||||||
self.spec.satisfies("^intel-mkl")
|
|
||||||
or self.spec.satisfies("^intel-oneapi-mkl")
|
|
||||||
or self.spec.satisfies("^intel-parallel-studio+mkl")
|
|
||||||
):
|
|
||||||
ldflags.append(self.spec["blas"].libs.ld_flags)
|
ldflags.append(self.spec["blas"].libs.ld_flags)
|
||||||
|
|
||||||
if self.spec.satisfies("%aocc"):
|
if self.spec.satisfies("%aocc"):
|
||||||
|
@ -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")
|
|
@ -36,15 +36,11 @@ class IntelMpiBenchmarks(MakefilePackage):
|
|||||||
version("2019.2", sha256="0bc2224a913073aaa5958f6ae08341e5fcd39cedc6722a09bfd4a3d7591a340b")
|
version("2019.2", sha256="0bc2224a913073aaa5958f6ae08341e5fcd39cedc6722a09bfd4a3d7591a340b")
|
||||||
version("2019.1", sha256="fe0d065b9936b6943ea83cb3d00aede43b17565285c6b1791fee8e340853ef79")
|
version("2019.1", sha256="fe0d065b9936b6943ea83cb3d00aede43b17565285c6b1791fee8e340853ef79")
|
||||||
version("2019.0", sha256="1c7d44aa7fd86ca84ac7cae1a69a8426243048d6294582337f1de7b4ffe68d37")
|
version("2019.0", sha256="1c7d44aa7fd86ca84ac7cae1a69a8426243048d6294582337f1de7b4ffe68d37")
|
||||||
version("2018.1", sha256="718a4eb155f18cf15a736f6496332407b5837cf1f19831723d4cfe5266c43507")
|
|
||||||
version("2018.0", sha256="2e60a9894a686a95791be2227bc569bf81ca3875421b5307df7d83f885b1de88")
|
|
||||||
|
|
||||||
depends_on("c", type="build") # generated
|
depends_on("c", type="build") # generated
|
||||||
depends_on("cxx", type="build") # generated
|
depends_on("cxx", type="build") # generated
|
||||||
|
|
||||||
depends_on("mpi", when="@2019:")
|
depends_on("mpi", when="@2019:")
|
||||||
depends_on("intel-mpi", when="@2018")
|
|
||||||
depends_on("gmake", type="build", when="@2018")
|
|
||||||
|
|
||||||
conflicts(
|
conflicts(
|
||||||
"^openmpi",
|
"^openmpi",
|
||||||
|
@ -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)
|
|
@ -186,14 +186,13 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
|
|||||||
# If a +cluster then mpi_family must be set
|
# If a +cluster then mpi_family must be set
|
||||||
with when("+cluster"):
|
with when("+cluster"):
|
||||||
conflicts("mpi_family=none")
|
conflicts("mpi_family=none")
|
||||||
requires("mpi_family=mpich", when="^intel-oneapi-mpi")
|
requires("mpi_family=mpich", when="^[virtuals=mpi] intel-oneapi-mpi")
|
||||||
requires("mpi_family=mpich", when="^intel-mpi")
|
requires("mpi_family=mpich", when="^[virtuals=mpi] mpich")
|
||||||
requires("mpi_family=mpich", when="^mpich")
|
requires("mpi_family=mpich", when="^[virtuals=mpi] mvapich")
|
||||||
requires("mpi_family=mpich", when="^mvapich")
|
requires("mpi_family=mpich", when="^[virtuals=mpi] mvapich2")
|
||||||
requires("mpi_family=mpich", when="^mvapich2")
|
requires("mpi_family=mpich", when="^[virtuals=mpi] cray-mpich")
|
||||||
requires("mpi_family=mpich", when="^cray-mpich")
|
requires("mpi_family=openmpi", when="^[virtuals=mpi] openmpi")
|
||||||
requires("mpi_family=openmpi", when="^openmpi")
|
requires("mpi_family=openmpi", when="^[virtuals=mpi] hpcx-mpi")
|
||||||
requires("mpi_family=openmpi", when="^hpcx-mpi")
|
|
||||||
|
|
||||||
provides("fftw-api@3")
|
provides("fftw-api@3")
|
||||||
provides("scalapack", when="+cluster")
|
provides("scalapack", when="+cluster")
|
||||||
|
@ -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)
|
|
@ -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"
|
|
@ -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.
|
|
@ -83,7 +83,7 @@ def edit(self, spec, prefix):
|
|||||||
vinc += " -DHAVE_LAPACK_CONFIG_H"
|
vinc += " -DHAVE_LAPACK_CONFIG_H"
|
||||||
vinc += " -DLAPACK_COMPLEX_STRUCTURE"
|
vinc += " -DLAPACK_COMPLEX_STRUCTURE"
|
||||||
filter_file("#PLATFORM=lapack", vinc, mf, string=True)
|
filter_file("#PLATFORM=lapack", vinc, mf, string=True)
|
||||||
elif ltype == "intel-mkl":
|
elif ltype == "intel-oneapi-mkl":
|
||||||
vpla = "PLATFORM=mkl"
|
vpla = "PLATFORM=mkl"
|
||||||
filter_file("#PLATFORM=lapack", vinc, mf, string=True)
|
filter_file("#PLATFORM=lapack", vinc, mf, string=True)
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ class Itk(CMakePackage):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def cmake_args(self):
|
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 = [
|
args = [
|
||||||
self.define("BUILD_TESTING", False),
|
self.define("BUILD_TESTING", False),
|
||||||
self.define("BUILD_SHARED_LIBS", True),
|
self.define("BUILD_SHARED_LIBS", True),
|
||||||
|
@ -73,9 +73,7 @@ def install(self, spec, prefix):
|
|||||||
configure_args.append("--atlas-root=" + spec["blas"].prefix)
|
configure_args.append("--atlas-root=" + spec["blas"].prefix)
|
||||||
if "+pthread" in spec["blas"].variants:
|
if "+pthread" in spec["blas"].variants:
|
||||||
configure_args.append("--threaded-atlas")
|
configure_args.append("--threaded-atlas")
|
||||||
elif spec.satisfies("^[virtuals=blas] intel-parallel-studio") or spec.satisfies(
|
elif spec.satisfies("^[virtuals=blas] intel-oneapi-mkl"):
|
||||||
"^[virtuals=blas] intel-mkl"
|
|
||||||
):
|
|
||||||
configure_args.append("--mathlib=MKL")
|
configure_args.append("--mathlib=MKL")
|
||||||
configure_args.append("--mkl-root=" + spec["blas"].prefix.mkl)
|
configure_args.append("--mkl-root=" + spec["blas"].prefix.mkl)
|
||||||
if "+openmp" in spec["blas"].variants:
|
if "+openmp" in spec["blas"].variants:
|
||||||
|
@ -28,14 +28,13 @@ class Ldak(Package):
|
|||||||
depends_on("blas")
|
depends_on("blas")
|
||||||
depends_on("lapack")
|
depends_on("lapack")
|
||||||
depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas")
|
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("intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl")
|
||||||
depends_on("glpk", when="+glpk")
|
depends_on("glpk", when="+glpk")
|
||||||
|
|
||||||
requires("target=x86_64:", when="~glpk", msg="bundled qsopt is only for x86_64")
|
requires("target=x86_64:", when="~glpk", msg="bundled qsopt is only for x86_64")
|
||||||
requires(
|
requires(
|
||||||
"^openblas",
|
"^[virtuals=lapack] openblas",
|
||||||
*[f"^{intel_pkg}" for intel_pkg in INTEL_MATH_LIBRARIES],
|
"^[virtuals=lapack] intel-oneapi-mkl",
|
||||||
policy="one_of",
|
policy="one_of",
|
||||||
msg="Only mkl or openblas are supported for blas/lapack with ldak",
|
msg="Only mkl or openblas are supported for blas/lapack with ldak",
|
||||||
)
|
)
|
||||||
|
@ -31,8 +31,6 @@ class Ligra(MakefilePackage):
|
|||||||
def setup_build_environment(self, env):
|
def setup_build_environment(self, env):
|
||||||
if self.spec.satisfies("+openmp"):
|
if self.spec.satisfies("+openmp"):
|
||||||
env.set("OPENMP", "1")
|
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):
|
def setup_run_environment(self, env):
|
||||||
env.prepend_path("PATH", self.prefix.apps)
|
env.prepend_path("PATH", self.prefix.apps)
|
||||||
|
@ -85,12 +85,11 @@ def edit(self, spec, prefix):
|
|||||||
flags["PREFIX"] = prefix
|
flags["PREFIX"] = prefix
|
||||||
|
|
||||||
# Set LAPACK and SCALAPACK
|
# Set LAPACK and SCALAPACK
|
||||||
if (
|
if spec.satisfies("^[virtuals=scalapack] intel-oneapi-mkl") or spec.satisfies(
|
||||||
spec["scalapack"].name in INTEL_MATH_LIBRARIES
|
"^[virtuals=lapack] intel-oneapi-mkl"
|
||||||
or spec["lapack"].name in INTEL_MATH_LIBRARIES
|
|
||||||
or spec["blas"].name in INTEL_MATH_LIBRARIES
|
|
||||||
):
|
):
|
||||||
flags["LAPACK"] = self._get_mkl_ld_flags(spec)
|
flags["LAPACK"] = self._get_mkl_ld_flags(spec)
|
||||||
|
flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_MKL "
|
||||||
else:
|
else:
|
||||||
flags["LAPACK"] = spec["lapack"].libs.ld_flags + " " + spec["blas"].libs.ld_flags
|
flags["LAPACK"] = spec["lapack"].libs.ld_flags + " " + spec["blas"].libs.ld_flags
|
||||||
if "+scalapack" in spec:
|
if "+scalapack" in spec:
|
||||||
@ -116,13 +115,6 @@ def edit(self, spec, prefix):
|
|||||||
if "+scalapack" in spec:
|
if "+scalapack" in spec:
|
||||||
flags["CPPFLAGS"] = flags.get("CPPFLAGS", "") + " -DHAVE_SCALAPACK -DHAVE_MPI "
|
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
|
# Write configuration file
|
||||||
with open("my_machine.arch", "w") as f:
|
with open("my_machine.arch", "w") as f:
|
||||||
for k, v in flags.items():
|
for k, v in flags.items():
|
||||||
|
@ -236,7 +236,9 @@ def write_makefile_inc(self):
|
|||||||
# As of version 5.2.0, MUMPS is able to take advantage
|
# As of version 5.2.0, MUMPS is able to take advantage
|
||||||
# of the GEMMT BLAS extension. MKL and amdblis are the only
|
# of the GEMMT BLAS extension. MKL and amdblis are the only
|
||||||
# known BLAS implementation supported.
|
# 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")
|
optf.append("-DGEMMT_AVAILABLE")
|
||||||
|
|
||||||
if "@5.2.0: ^amdblis@3.0:" in self.spec:
|
if "@5.2.0: ^amdblis@3.0:" in self.spec:
|
||||||
|
@ -72,12 +72,7 @@ class Ngspice(AutotoolsPackage):
|
|||||||
depends_on("cray-fftw+openmp", when="^[virtuals=fftw-api] cray-fftw")
|
depends_on("cray-fftw+openmp", when="^[virtuals=fftw-api] cray-fftw")
|
||||||
depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
|
depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
|
||||||
depends_on("fujitsu-fftw+openmp", when="^[virtuals=fftw-api] fujitsu-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-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"):
|
with when("+fft~openmp"):
|
||||||
depends_on("acfl threads=none", when="^[virtuals=fftw-api] acfl")
|
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("cray-fftw~openmp", when="^[virtuals=fftw-api] cray-fftw")
|
||||||
depends_on("fftw~openmp", when="^[virtuals=fftw-api] fftw")
|
depends_on("fftw~openmp", when="^[virtuals=fftw-api] fftw")
|
||||||
depends_on("fujitsu-fftw~openmp", when="^[virtuals=fftw-api] fujitsu-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-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")
|
depends_on("readline", when="+readline build=bin")
|
||||||
|
|
||||||
|
@ -44,6 +44,13 @@ class Nlcglib(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
depends_on("mpi")
|
depends_on("mpi")
|
||||||
depends_on("lapack")
|
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~cuda~rocm", when="~cuda~rocm")
|
||||||
depends_on("kokkos+openmp", when="+openmp")
|
depends_on("kokkos+openmp", when="+openmp")
|
||||||
|
|
||||||
@ -81,13 +88,10 @@ def cmake_args(self):
|
|||||||
self.define_from_variant("USE_CUDA", "cuda"),
|
self.define_from_variant("USE_CUDA", "cuda"),
|
||||||
]
|
]
|
||||||
|
|
||||||
if self.spec["blas"].name in ["intel-mkl", "intel-parallel-studio"]:
|
if self.spec.satisfies("^[virtuals=lapack] intel-oneapi-mkl"):
|
||||||
options += [self.define("LAPACK_VENDOR", "MKL")]
|
|
||||||
elif self.spec["blas"].name in ["intel-oneapi-mkl"]:
|
|
||||||
options += [self.define("LAPACK_VENDOR", "MKLONEAPI")]
|
|
||||||
mkl_mapper = {
|
mkl_mapper = {
|
||||||
"threading": {"none": "sequential", "openmp": "gnu_thread", "tbb": "tbb_thread"},
|
"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"][
|
mkl_threads = mkl_mapper["threading"][
|
||||||
@ -102,23 +106,20 @@ def cmake_args(self):
|
|||||||
|
|
||||||
options.extend(
|
options.extend(
|
||||||
[
|
[
|
||||||
|
self.define("LAPACK_VENDOR", "MKLONEAPI"),
|
||||||
self.define("MKL_INTERFACE", "lp64"),
|
self.define("MKL_INTERFACE", "lp64"),
|
||||||
self.define("MKL_THREADING", mkl_threads),
|
self.define("MKL_THREADING", mkl_threads),
|
||||||
self.define("MKL_MPI", mkl_mpi),
|
self.define("MKL_MPI", mkl_mpi),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
elif self.spec["blas"].name in ["openblas"]:
|
|
||||||
options += [self.define("LAPACK_VENDOR", "OpenBLAS")]
|
|
||||||
else:
|
else:
|
||||||
raise Exception("blas/lapack must be either openblas or mkl.")
|
options.append(self.define("LAPACK_VENDOR", "OpenBLAS"))
|
||||||
|
|
||||||
if "+cuda%gcc" in self.spec:
|
if "+cuda%gcc" in self.spec:
|
||||||
options += [
|
options.append(
|
||||||
self.define(
|
self.define("CMAKE_CXX_COMPILER", self["kokkos-nvcc-wrapper"].kokkos_cxx)
|
||||||
"CMAKE_CXX_COMPILER", "{0}".format(self["kokkos-nvcc-wrapper"].kokkos_cxx)
|
)
|
||||||
)
|
|
||||||
]
|
|
||||||
|
|
||||||
if "+cuda" in self.spec:
|
if "+cuda" in self.spec:
|
||||||
cuda_archs = self.spec.variants["cuda_arch"].value
|
cuda_archs = self.spec.variants["cuda_arch"].value
|
||||||
@ -126,19 +127,23 @@ def cmake_args(self):
|
|||||||
cuda_flags = " ".join(
|
cuda_flags = " ".join(
|
||||||
["-gencode arch=compute_{0},code=sm_{0}".format(x) for x in cuda_archs]
|
["-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:
|
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:
|
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:
|
if "+rocm" in self.spec:
|
||||||
options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc))
|
|
||||||
archs = ",".join(self.spec.variants["amdgpu_target"].value)
|
archs = ",".join(self.spec.variants["amdgpu_target"].value)
|
||||||
options.append("-DHIP_HCC_FLAGS=--amdgpu-target={0}".format(archs))
|
options.extend(
|
||||||
options.append(
|
[
|
||||||
"-DCMAKE_CXX_FLAGS=--amdgpu-target={0} --offload-arch={0}".format(archs)
|
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
|
return options
|
||||||
|
@ -181,7 +181,7 @@ def configure_args(self):
|
|||||||
|
|
||||||
if "^fftw" in spec:
|
if "^fftw" in spec:
|
||||||
args.append("--with-fftw-prefix=%s" % spec["fftw"].prefix)
|
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
|
# As of version 10.0, Octopus depends on fftw-api instead
|
||||||
# of FFTW. If FFTW is not in the dependency tree, then
|
# of FFTW. If FFTW is not in the dependency tree, then
|
||||||
# it ought to be MKL as it is currently the only providers
|
# it ought to be MKL as it is currently the only providers
|
||||||
|
@ -85,11 +85,11 @@ def cmake_args(self):
|
|||||||
args.extend([self.define("PASTIX_WITH_STARPU", "ON")])
|
args.extend([self.define("PASTIX_WITH_STARPU", "ON")])
|
||||||
args.extend([self.define_from_variant("PASTIX_WITH_CUDA", "cuda")])
|
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")])
|
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")])
|
args.extend([self.define("BLA_VENDOR", "Generic")])
|
||||||
elif "^openblas" in spec:
|
elif spec.satisfies("^[virtuals=lapack] openblas"):
|
||||||
args.extend([self.define("BLA_VENDOR", "OpenBLAS")])
|
args.extend([self.define("BLA_VENDOR", "OpenBLAS")])
|
||||||
|
|
||||||
if spec.satisfies("+mpi"):
|
if spec.satisfies("+mpi"):
|
||||||
|
@ -292,9 +292,6 @@ class Petsc(Package, CudaPackage, ROCmPackage):
|
|||||||
when="@3.20.2:3.20.4 ^hipsparse@6.0",
|
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
|
# These require +mpi
|
||||||
mpi_msg = "Requires +mpi"
|
mpi_msg = "Requires +mpi"
|
||||||
conflicts("+cgns", when="~mpi", msg=mpi_msg)
|
conflicts("+cgns", when="~mpi", msg=mpi_msg)
|
||||||
|
@ -56,7 +56,6 @@ class PyDevito(PythonPackage):
|
|||||||
|
|
||||||
depends_on("mpi", type=("build", "run"), when="+mpi")
|
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:")
|
depends_on("intel-oneapi-compilers", type="run", when="%intel@2021.1.2:")
|
||||||
|
|
||||||
patch("4.8.1.patch", when="@4.8.1")
|
patch("4.8.1.patch", when="@4.8.1")
|
||||||
|
@ -289,10 +289,10 @@ def blas_lapack_pkg_config(self) -> Tuple[str, str]:
|
|||||||
blas = spec["blas"].libs.names[0]
|
blas = spec["blas"].libs.names[0]
|
||||||
lapack = spec["lapack"].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"
|
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"
|
lapack = "mkl-dynamic-lp64-seq"
|
||||||
|
|
||||||
if spec["blas"].name in ["blis", "amdblis"]:
|
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
|
# Tell numpy where to find BLAS/LAPACK libraries
|
||||||
with open("site.cfg", "w") as f:
|
with open("site.cfg", "w") as f:
|
||||||
if (
|
if "^intel-oneapi-mkl" in spec:
|
||||||
"^intel-mkl" in spec
|
|
||||||
or "^intel-parallel-studio+mkl" in spec
|
|
||||||
or "^intel-oneapi-mkl" in spec
|
|
||||||
):
|
|
||||||
f.write("[mkl]\n")
|
f.write("[mkl]\n")
|
||||||
# FIXME: as of @1.11.2, numpy does not work with separately
|
# FIXME: as of @1.11.2, numpy does not work with separately
|
||||||
# specified threading and interface layers. A workaround is a
|
# 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://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#accelerated-blas-lapack-libraries
|
||||||
# https://numpy.org/doc/1.25/user/building.html#blas
|
# https://numpy.org/doc/1.25/user/building.html#blas
|
||||||
if (
|
if spec["blas"].name == "intel-oneapi-mkl":
|
||||||
spec["blas"].name == "intel-mkl"
|
|
||||||
or spec["blas"].name == "intel-parallel-studio"
|
|
||||||
or spec["blas"].name == "intel-oneapi-mkl"
|
|
||||||
):
|
|
||||||
blas = "mkl"
|
blas = "mkl"
|
||||||
elif spec["blas"].name == "blis" or spec["blas"].name == "amdblis":
|
elif spec["blas"].name == "blis" or spec["blas"].name == "amdblis":
|
||||||
blas = "blis"
|
blas = "blis"
|
||||||
@ -517,11 +509,7 @@ def setup_build_environment(self, env):
|
|||||||
env.set("NPY_BLAS_ORDER", blas)
|
env.set("NPY_BLAS_ORDER", blas)
|
||||||
|
|
||||||
# https://numpy.org/doc/1.25/user/building.html#lapack
|
# https://numpy.org/doc/1.25/user/building.html#lapack
|
||||||
if (
|
if spec["lapack"].name == "intel-oneapi-mkl":
|
||||||
spec["lapack"].name == "intel-mkl"
|
|
||||||
or spec["lapack"].name == "intel-parallel-studio"
|
|
||||||
or spec["lapack"].name == "intel-oneapi-mkl"
|
|
||||||
):
|
|
||||||
lapack = "mkl"
|
lapack = "mkl"
|
||||||
elif spec["lapack"].name == "openblas":
|
elif spec["lapack"].name == "openblas":
|
||||||
lapack = "openblas"
|
lapack = "openblas"
|
||||||
|
@ -27,8 +27,6 @@ class PyTomopy(PythonPackage):
|
|||||||
depends_on("cuda", when="@master")
|
depends_on("cuda", when="@master")
|
||||||
# The shared opencv is not found by during runtest. Not using GOT/PLT is faster too
|
# 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")
|
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("cmake@3.17:", type=("build"))
|
||||||
depends_on("ninja", type=("build"))
|
depends_on("ninja", type=("build"))
|
||||||
depends_on("py-setuptools-scm", type=("build"))
|
depends_on("py-setuptools-scm", type=("build"))
|
||||||
|
@ -662,14 +662,10 @@ def enable_or_disable(variant, keyword="USE", var=None):
|
|||||||
elif self.spec["lapack"].name in ["libflame", "amdlibflame"]:
|
elif self.spec["lapack"].name in ["libflame", "amdlibflame"]:
|
||||||
env.set("BLAS", "FLAME")
|
env.set("BLAS", "FLAME")
|
||||||
env.set("WITH_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("BLAS", "MKL")
|
||||||
env.set("WITH_BLAS", "mkl")
|
env.set("WITH_BLAS", "mkl")
|
||||||
# help find MKL
|
env.set("INTEL_MKL_DIR", self.spec["mkl"].prefix.mkl.latest)
|
||||||
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)
|
|
||||||
elif self.spec["blas"].name == "openblas":
|
elif self.spec["blas"].name == "openblas":
|
||||||
env.set("BLAS", "OpenBLAS")
|
env.set("BLAS", "OpenBLAS")
|
||||||
env.set("WITH_BLAS", "open")
|
env.set("WITH_BLAS", "open")
|
||||||
|
@ -69,9 +69,9 @@ class QESirius(CMakePackage):
|
|||||||
depends_on("hdf5@1.8.16:+fortran+hl~mpi", when="hdf5=serial")
|
depends_on("hdf5@1.8.16:+fortran+hl~mpi", when="hdf5=serial")
|
||||||
|
|
||||||
with when("+openmp"):
|
with when("+openmp"):
|
||||||
depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
|
requires("^fftw+openmp", when="^[virtuals=fftw-api] fftw")
|
||||||
depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas")
|
requires("^openblas threads=openmp", when="^[virtuals=blas] openblas")
|
||||||
depends_on("intel-mkl threads=openmp", when="^[virtuals=blas] intel-mkl")
|
requires("^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl")
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
args = [
|
args = [
|
||||||
@ -92,7 +92,7 @@ def cmake_args(self):
|
|||||||
# Work around spack issue #19970 where spack sets
|
# Work around spack issue #19970 where spack sets
|
||||||
# rpaths for MKL just during make, but cmake removes
|
# rpaths for MKL just during make, but cmake removes
|
||||||
# them during make install.
|
# 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")
|
args.append("-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON")
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
args.append(self.define("BLAS_LIBRARIES", spec["blas"].libs.joined(";")))
|
args.append(self.define("BLAS_LIBRARIES", spec["blas"].libs.joined(";")))
|
||||||
|
@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
class Qmcpack(CMakePackage, CudaPackage):
|
class Qmcpack(CMakePackage, CudaPackage):
|
||||||
"""QMCPACK, is a modern high-performance open-source Quantum Monte
|
"""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/"
|
homepage = "https://www.qmcpack.org/"
|
||||||
git = "https://github.com/QMCPACK/qmcpack.git"
|
git = "https://github.com/QMCPACK/qmcpack.git"
|
||||||
maintainers("ye-luo")
|
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.",
|
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")
|
requires("^openblas~ilp64 threads=openmp", when="^[virtuals=blas,lapack] openblas")
|
||||||
|
requires("^intel-oneapi-mkl ~ilp64", when="^[virtuals=blas,lapack] intel-oneapi-mkl")
|
||||||
conflicts("^openblas threads=none", msg="QMCPACK does not support OpenBLAS without threading")
|
|
||||||
|
|
||||||
conflicts("^openblas threads=pthreads", msg="QMCPACK does not support OpenBLAS with pthreads")
|
|
||||||
|
|
||||||
conflicts(
|
conflicts(
|
||||||
"cuda_arch=none",
|
"cuda_arch=none",
|
||||||
@ -125,10 +122,6 @@ class Qmcpack(CMakePackage, CudaPackage):
|
|||||||
msg="A value for cuda_arch must be specified. Add cuda_arch=XX",
|
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
|
# QMCPACK 3.15.0 increased the minimum gcc to 9
|
||||||
conflicts("%gcc@:8", when="@3.15.0:")
|
conflicts("%gcc@:8", when="@3.15.0:")
|
||||||
|
|
||||||
@ -164,8 +157,8 @@ class Qmcpack(CMakePackage, CudaPackage):
|
|||||||
"QMCPACK releases prior to 3.5.0 require the "
|
"QMCPACK releases prior to 3.5.0 require the "
|
||||||
"Intel compiler when linking against Intel MKL"
|
"Intel compiler when linking against Intel MKL"
|
||||||
)
|
)
|
||||||
conflicts("%gcc", 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 ^intel-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.
|
# Dependencies match those in the QMCPACK manual.
|
||||||
# FIXME: once concretizer can unite unconditional and conditional
|
# 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
|
# Next two environment variables were introduced in QMCPACK 3.5.0
|
||||||
# Prior to v3.5.0, these lines should be benign but CMake
|
# Prior to v3.5.0, these lines should be benign but CMake
|
||||||
# may issue a warning.
|
# 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("-DENABLE_MKL=1")
|
||||||
args.append("-DMKL_ROOT=%s" % env["MKLROOT"])
|
args.append("-DMKL_ROOT=%s" % env["MKLROOT"])
|
||||||
else:
|
else:
|
||||||
|
@ -80,13 +80,13 @@ class QuantumEspresso(CMakePackage, Package):
|
|||||||
# Need OpenMP threaded FFTW and BLAS libraries when configured
|
# Need OpenMP threaded FFTW and BLAS libraries when configured
|
||||||
# with OpenMP support
|
# with OpenMP support
|
||||||
with when("+openmp"):
|
with when("+openmp"):
|
||||||
depends_on("fftw+openmp", when="^[virtuals=fftw-api] fftw")
|
requires("^fftw+openmp", when="^[virtuals=fftw-api] fftw")
|
||||||
depends_on("amdfftw+openmp", when="^[virtuals=fftw-api] amdfftw")
|
requires("^amdfftw+openmp", when="^[virtuals=fftw-api] amdfftw")
|
||||||
depends_on("openblas threads=openmp", when="^[virtuals=blas] openblas")
|
requires("^openblas threads=openmp", when="^[virtuals=blas] openblas")
|
||||||
depends_on("amdblis threads=openmp", when="^[virtuals=blas] amdblis")
|
requires("^amdblis threads=openmp", when="^[virtuals=blas] amdblis")
|
||||||
depends_on("intel-mkl threads=openmp", when="^[virtuals=blas] intel-mkl")
|
requires("^intel-oneapi-mkl threads=openmp", when="^[virtuals=blas] intel-oneapi-mkl")
|
||||||
depends_on("armpl-gcc threads=openmp", when="^[virtuals=blas] armpl-gcc")
|
requires("^armpl-gcc threads=openmp", when="^[virtuals=blas] armpl-gcc")
|
||||||
depends_on("acfl threads=openmp", when="^[virtuals=blas] acfl")
|
requires("^acfl threads=openmp", when="^[virtuals=blas] acfl")
|
||||||
|
|
||||||
# Add Cuda Fortran support
|
# Add Cuda Fortran support
|
||||||
# depends on NVHPC compiler, not directly on CUDA toolkit
|
# depends on NVHPC compiler, not directly on CUDA toolkit
|
||||||
@ -250,9 +250,8 @@ class QuantumEspresso(CMakePackage, Package):
|
|||||||
depends_on("m4", type="build")
|
depends_on("m4", type="build")
|
||||||
|
|
||||||
# If the Intel suite is used for Lapack, it must be used for fftw and vice-versa
|
# 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("^[virtuals=fftw-api] intel-oneapi-mkl", when="^[virtuals=lapack] intel-oneapi-mkl")
|
||||||
requires(f"^[virtuals=fftw-api] {_intel_pkg}", when=f"^[virtuals=lapack] {_intel_pkg}")
|
requires("^[virtuals=lapack] intel-oneapi-mkl", when="^[virtuals=fftw-api] intel-oneapi-mkl")
|
||||||
requires(f"^[virtuals=lapack] {_intel_pkg}", when=f"^[virtuals=fftw-api] {_intel_pkg}")
|
|
||||||
|
|
||||||
# CONFLICTS SECTION
|
# CONFLICTS SECTION
|
||||||
# Omitted for now due to concretizer bug
|
# 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.
|
# you need to pass it in the FFTW_INCLUDE and FFT_LIBS directory.
|
||||||
# QE supports an internal FFTW2, but only an external FFTW3 interface.
|
# 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:
|
if is_using_intel_libraries:
|
||||||
# A seperate FFT library is not needed when linking against MKL
|
# A seperate FFT library is not needed when linking against MKL
|
||||||
options.append("FFTW_INCLUDE={0}".format(join_path(env["MKLROOT"], "include/fftw")))
|
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 "+scalapack" in spec:
|
||||||
if is_using_intel_libraries:
|
if is_using_intel_libraries:
|
||||||
if "^openmpi" in spec:
|
if "^[virtuals=mpi] openmpi" in spec:
|
||||||
scalapack_option = "yes"
|
scalapack_option = "yes"
|
||||||
else: # mpich, intel-mpi
|
else: # mpich
|
||||||
scalapack_option = "intel"
|
scalapack_option = "intel"
|
||||||
else:
|
else:
|
||||||
scalapack_option = "yes"
|
scalapack_option = "yes"
|
||||||
|
@ -24,8 +24,7 @@ class RRmpi(RPackage):
|
|||||||
depends_on("mpi")
|
depends_on("mpi")
|
||||||
|
|
||||||
# The following MPI types are not supported
|
# The following MPI types are not supported
|
||||||
conflicts("^[virtuals=mpi] intel-mpi")
|
conflicts("^[virtuals=mpi] intel-oneapi-mpi")
|
||||||
conflicts("^[virtuals=mpi] intel-parallel-studio")
|
|
||||||
conflicts("^[virtuals=mpi] mvapich2")
|
conflicts("^[virtuals=mpi] mvapich2")
|
||||||
conflicts("^[virtuals=mpi] spectrum-mpi")
|
conflicts("^[virtuals=mpi] spectrum-mpi")
|
||||||
|
|
||||||
|
@ -177,7 +177,10 @@ def configure_args(self):
|
|||||||
|
|
||||||
# R uses LAPACK in Fortran, which requires libmkl_gf_* when gfortran is used.
|
# 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.
|
# 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"
|
xlp64 = "ilp64" if spec["lapack"].satisfies("+ilp64") else "lp64"
|
||||||
blas_flags = blas_flags.replace(f"mkl_intel_{xlp64}", f"mkl_gf_{xlp64}")
|
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}")
|
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"LDFLAGS=-Wl,-rpath,{extra_rpath}",
|
||||||
f"--with-blas={blas_flags}",
|
f"--with-blas={blas_flags}",
|
||||||
f"--with-lapack={lapack_flags}",
|
f"--with-lapack={lapack_flags}",
|
||||||
# cannot disable docs with a normal configure option
|
|
||||||
"ac_cv_path_PDFLATEX=",
|
"ac_cv_path_PDFLATEX=",
|
||||||
"ac_cv_path_PDFTEX=",
|
"ac_cv_path_PDFTEX=",
|
||||||
"ac_cv_path_TEX=",
|
"ac_cv_path_TEX=",
|
||||||
"ac_cv_path_TEXI2DVI=",
|
"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:
|
if "+X" in spec:
|
||||||
config_args.append("--with-cairo")
|
config_args.append("--with-cairo")
|
||||||
config_args.append("--with-jpeglib")
|
config_args.append("--with-jpeglib")
|
||||||
|
@ -41,11 +41,12 @@ class ScineQcmaquis(CMakePackage):
|
|||||||
|
|
||||||
depends_on("hdf5~mpi")
|
depends_on("hdf5~mpi")
|
||||||
depends_on("lapack")
|
depends_on("lapack")
|
||||||
|
|
||||||
depends_on("blas")
|
depends_on("blas")
|
||||||
for _pkg in ["openblas"] + list(INTEL_MATH_LIBRARIES):
|
|
||||||
with when(f"^[virtuals=blas] {_pkg}"):
|
requires("^openblas +ilp64 threads=openmp", when="^[virtuals=blas,lapack] openblas")
|
||||||
depends_on(f"{_pkg}+ilp64 threads=openmp")
|
requires(
|
||||||
|
"^intel-oneapi-mkl +ilp64 threads=openmp", when="^[virtuals=blas,lapack] intel-oneapi-mkl"
|
||||||
|
)
|
||||||
|
|
||||||
depends_on("gsl")
|
depends_on("gsl")
|
||||||
depends_on("boost+program_options+filesystem+system+thread+serialization+chrono @1.56:")
|
depends_on("boost+program_options+filesystem+system+thread+serialization+chrono @1.56:")
|
||||||
|
@ -213,15 +213,17 @@ def configure_args(self):
|
|||||||
# If autodetection fails for +shmem with one of these available to spack, please add
|
# If autodetection fails for +shmem with one of these available to spack, please add
|
||||||
# a "if spec.satisfies():" clause for said package.
|
# 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")
|
config_args.append("--with-mpi=intel3")
|
||||||
elif (
|
elif (
|
||||||
spec.satisfies("^mpich")
|
spec.satisfies("^[virtuals=mpi] mpich")
|
||||||
or spec.satisfies("^mvapich2")
|
or spec.satisfies("^[virtuals=mpi] mvapich2")
|
||||||
or spec.satisfies("^cray-mpich")
|
or spec.satisfies("^[virtuals=mpi] cray-mpich")
|
||||||
):
|
):
|
||||||
config_args.append("--with-mpi=mpich3")
|
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")
|
config_args.append("--with-mpi=openmpi")
|
||||||
elif "~mpi" in spec:
|
elif "~mpi" in spec:
|
||||||
config_args.append("--without-mpi")
|
config_args.append("--without-mpi")
|
||||||
|
@ -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("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("blis threads=none", when="gemm_tools_list=BLIS")
|
||||||
depends_on("openblas threads=none", when="gemm_tools_list=OpenBLAS")
|
depends_on("openblas threads=none", when="gemm_tools_list=OpenBLAS")
|
||||||
depends_on("libxsmm@main", when="gemm_tools_list=LIBXSMM_JIT")
|
depends_on("libxsmm@main", when="gemm_tools_list=LIBXSMM_JIT")
|
||||||
|
@ -31,13 +31,14 @@ class Sionlib(AutotoolsPackage):
|
|||||||
|
|
||||||
def configure_args(self):
|
def configure_args(self):
|
||||||
args = []
|
args = []
|
||||||
spec = self.spec
|
|
||||||
|
|
||||||
if spec.satisfies("^intel-mpi"):
|
if self.spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi"):
|
||||||
args.append("--mpi=intel2")
|
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")
|
args.append("--mpi=mpich2")
|
||||||
elif spec.satisfies("^openmpi"):
|
elif self.spec.satisfies("^[virtuals=mpi] openmpi"):
|
||||||
args.append("--mpi=openmpi")
|
args.append("--mpi=openmpi")
|
||||||
|
|
||||||
return args
|
return args
|
||||||
|
@ -153,9 +153,6 @@ class Sirius(CMakePackage, CudaPackage, ROCmPackage):
|
|||||||
depends_on("openblas threads=openmp", when="+openmp ^[virtuals=blas,lapack] openblas")
|
depends_on("openblas threads=openmp", when="+openmp ^[virtuals=blas,lapack] openblas")
|
||||||
depends_on("amdblis threads=openmp", when="+openmp ^[virtuals=blas] amdblis")
|
depends_on("amdblis threads=openmp", when="+openmp ^[virtuals=blas] amdblis")
|
||||||
depends_on("blis threads=openmp", when="+openmp ^[virtuals=blas] blis")
|
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(
|
depends_on(
|
||||||
"intel-oneapi-mkl threads=openmp",
|
"intel-oneapi-mkl threads=openmp",
|
||||||
when="+openmp ^[virtuals=blas,lapack,fftw-api] intel-oneapi-mkl",
|
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",
|
when="+scalapack ^[virtuals=blas,lapack,fftw-api] intel-oneapi-mkl",
|
||||||
)
|
)
|
||||||
|
|
||||||
conflicts("intel-mkl", when="@7.6.0:")
|
|
||||||
# MKLConfig.cmake introduced in 2021.3
|
# MKLConfig.cmake introduced in 2021.3
|
||||||
conflicts("intel-oneapi-mkl@:2021.2", when="^intel-oneapi-mkl")
|
conflicts("intel-oneapi-mkl@:2021.2", when="^intel-oneapi-mkl")
|
||||||
|
|
||||||
@ -244,7 +240,7 @@ def cmake_args(self):
|
|||||||
if "^cray-libsci" in spec:
|
if "^cray-libsci" in spec:
|
||||||
args.append(self.define(cm_label + "USE_CRAY_LIBSCI", "ON"))
|
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"))
|
args.append(self.define(cm_label + "USE_MKL", "ON"))
|
||||||
|
|
||||||
if spec.satisfies("@7.6.0:"):
|
if spec.satisfies("@7.6.0:"):
|
||||||
@ -254,7 +250,11 @@ def cmake_args(self):
|
|||||||
"openmp": "gnu_thread",
|
"openmp": "gnu_thread",
|
||||||
"tbb": "tbb_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"][
|
mkl_threads = mkl_mapper["threading"][
|
||||||
|
@ -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+cblas")
|
||||||
depends_on("blis libs=static", when="^[virtuals=blas] blis+blas")
|
depends_on("blis libs=static", when="^[virtuals=blas] blis+blas")
|
||||||
depends_on("clblast~shared", when="^[virtuals=blas] clblast+netlib")
|
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-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")
|
depends_on("veclibfort~shared", when="^[virtuals=blas] veclibfort")
|
||||||
conflicts("^essl", msg="essl not supported with +pymi_static_tpls")
|
conflicts("^essl", msg="essl not supported with +pymi_static_tpls")
|
||||||
conflicts("^flexiblas", msg="flexiblas not supported with +pymi_static_tpls")
|
conflicts("^flexiblas", msg="flexiblas not supported with +pymi_static_tpls")
|
||||||
|
Loading…
Reference in New Issue
Block a user