MFEM: add new version v4.6 (#40170)
* [mfem] Initial changes for v4.6 * [@spackbot] updating style on behalf of v-dobrev * [mfem] Set the proper download link for v4.6
This commit is contained in:
parent
482525d0f9
commit
b5079614b0
@ -6,6 +6,7 @@
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
from platform import machine
|
||||
|
||||
from spack.package import *
|
||||
|
||||
@ -48,6 +49,13 @@ class Mfem(Package, CudaPackage, ROCmPackage):
|
||||
# other version.
|
||||
version("develop", branch="master")
|
||||
|
||||
version(
|
||||
"4.6.0",
|
||||
sha256="5fa9465b5bec56bfb777a4d2826fba48d85fbace4aed8b64a2fd4059bf075b15",
|
||||
url="https://bit.ly/mfem-4-6",
|
||||
extension="tar.gz",
|
||||
)
|
||||
|
||||
version(
|
||||
"4.5.2",
|
||||
sha256="7003c908c8265810ff97cb37531521b3aed24959975833a01ea05adfdb36e0f7",
|
||||
@ -286,6 +294,11 @@ class Mfem(Package, CudaPackage, ROCmPackage):
|
||||
"sundials@5.4.0:+cuda cuda_arch={0}".format(sm_),
|
||||
when="@4.2.0:+sundials+cuda cuda_arch={0}".format(sm_),
|
||||
)
|
||||
for gfx in ROCmPackage.amdgpu_targets:
|
||||
depends_on(
|
||||
"sundials@5.7.0:+rocm amdgpu_target={0}".format(gfx),
|
||||
when="@4.6.0:+sundials+rocm amdgpu_target={0}".format(gfx),
|
||||
)
|
||||
depends_on("pumi", when="+pumi~shared")
|
||||
depends_on("pumi+shared", when="+pumi+shared")
|
||||
depends_on("pumi@2.2.3:2.2.5", when="@4.2.0:4.3.0+pumi")
|
||||
@ -296,6 +309,16 @@ class Mfem(Package, CudaPackage, ROCmPackage):
|
||||
depends_on("gslib@1.0.7:", when="@4.3.0:+gslib")
|
||||
depends_on("suite-sparse", when="+suite-sparse")
|
||||
depends_on("superlu-dist", when="+superlu-dist")
|
||||
for sm_ in CudaPackage.cuda_arch_values:
|
||||
depends_on(
|
||||
"superlu-dist+cuda cuda_arch={0}".format(sm_),
|
||||
when="+superlu-dist+cuda cuda_arch={0}".format(sm_),
|
||||
)
|
||||
for gfx in ROCmPackage.amdgpu_targets:
|
||||
depends_on(
|
||||
"superlu-dist+rocm amdgpu_target={0}".format(gfx),
|
||||
when="+superlu-dist+rocm amdgpu_target={0}".format(gfx),
|
||||
)
|
||||
depends_on("strumpack@3.0.0:", when="+strumpack~shared")
|
||||
depends_on("strumpack@3.0.0:+shared", when="+strumpack+shared")
|
||||
for sm_ in CudaPackage.cuda_arch_values:
|
||||
@ -921,7 +944,7 @@ def find_optional_library(name, prefix):
|
||||
options += ["HIP_DIR=%s" % hipsparse["rocsparse"].prefix]
|
||||
if "%cce" in spec:
|
||||
# We assume the proper Cray CCE module (cce) is loaded:
|
||||
craylibs_path = env["CRAYLIBS_" + env["MACHTYPE"].capitalize()]
|
||||
craylibs_path = env["CRAYLIBS_" + machine().upper()]
|
||||
craylibs = ["libmodules", "libfi", "libcraymath", "libf", "libu", "libcsup"]
|
||||
hip_libs += find_libraries(craylibs, craylibs_path)
|
||||
if hip_libs:
|
||||
|
@ -14,9 +14,9 @@ rocm_arch="gfx908"
|
||||
spack_jobs=''
|
||||
# spack_jobs='-j 128'
|
||||
|
||||
mfem='mfem@4.5.2'${compiler}
|
||||
mfem='mfem@4.6.0'${compiler}
|
||||
# mfem_dev='mfem@develop'${compiler}
|
||||
mfem_dev='mfem@4.5.2'${compiler}
|
||||
mfem_dev='mfem@4.6.0'${compiler}
|
||||
|
||||
backends='+occa+raja+libceed'
|
||||
backends_specs='^occa~cuda ^raja~openmp'
|
||||
@ -24,11 +24,9 @@ backends_specs='^occa~cuda ^raja~openmp'
|
||||
# ~fortran is needed for Cray Fortran linking with tcmalloc*
|
||||
conduit_spec='^conduit~fortran'
|
||||
# petsc spec
|
||||
petsc_spec='^petsc+suite-sparse+mumps'
|
||||
petsc_spec_cuda='^petsc+cuda+suite-sparse+mumps'
|
||||
# superlu-dist specs
|
||||
superlu_spec_cuda='^superlu-dist+cuda cuda_arch='"${cuda_arch}"
|
||||
superlu_spec_rocm='^superlu-dist+rocm amdgpu_target='"${rocm_arch}"
|
||||
petsc_spec='^petsc+mumps'
|
||||
petsc_spec_cuda='^petsc+cuda+mumps'
|
||||
petsc_spec_rocm='^petsc+rocm+mumps'
|
||||
# strumpack spec without cuda (use version > 6.3.1)
|
||||
strumpack_spec='^strumpack~slate~openmp~cuda'
|
||||
strumpack_cuda_spec='^strumpack+cuda~slate~openmp'
|
||||
@ -138,7 +136,7 @@ builds_cuda=(
|
||||
+superlu-dist+strumpack+suite-sparse+gslib+petsc+slepc \
|
||||
+sundials+pumi+mpfr+netcdf+zlib+gnutls+libunwind+conduit+ginkgo+hiop \
|
||||
^raja+cuda+openmp ^hiop+shared'" $strumpack_cuda_spec"' \
|
||||
'"$superlu_spec_cuda $petsc_spec_cuda $conduit_spec"
|
||||
'"$petsc_spec_cuda $conduit_spec"
|
||||
|
||||
# hypre with cuda:
|
||||
# TODO: restore '+libceed' when the libCEED CUDA unit tests take less time.
|
||||
@ -150,7 +148,7 @@ builds_cuda=(
|
||||
+superlu-dist+strumpack+suite-sparse+gslib \
|
||||
+pumi+mpfr+netcdf+zlib+gnutls+libunwind+conduit+ginkgo+hiop \
|
||||
^raja+cuda+openmp ^hiop+shared ^hypre+cuda \
|
||||
'" $superlu_spec_cuda $strumpack_cuda_spec $conduit_spec"
|
||||
'" $strumpack_cuda_spec $conduit_spec"
|
||||
|
||||
#
|
||||
# same builds as above with ${mfem_dev}
|
||||
@ -175,7 +173,7 @@ builds_cuda=(
|
||||
+superlu-dist+strumpack+suite-sparse+gslib+petsc+slepc \
|
||||
+sundials+pumi+mpfr+netcdf+zlib+gnutls+libunwind+conduit+ginkgo+hiop \
|
||||
^raja+cuda+openmp ^hiop+shared'" $strumpack_cuda_spec"' \
|
||||
'"$superlu_spec_cuda $petsc_spec_cuda $conduit_spec"
|
||||
'"$petsc_spec_cuda $conduit_spec"
|
||||
|
||||
# hypre with cuda:
|
||||
# TODO: restore '+libceed' when the libCEED CUDA unit tests take less time.
|
||||
@ -187,7 +185,7 @@ builds_cuda=(
|
||||
+superlu-dist+strumpack+suite-sparse+gslib \
|
||||
+pumi+mpfr+netcdf+zlib+gnutls+libunwind+conduit+ginkgo+hiop \
|
||||
^raja+cuda+openmp ^hiop+shared ^hypre+cuda \
|
||||
'"$superlu_spec_cuda $strumpack_cuda_spec $conduit_spec"
|
||||
'"$strumpack_cuda_spec $conduit_spec"
|
||||
)
|
||||
|
||||
|
||||
@ -203,15 +201,14 @@ builds_rocm=(
|
||||
^raja+rocm~openmp ^occa~cuda~openmp ^hypre+rocm'
|
||||
|
||||
# hypre without rocm:
|
||||
# TODO: add "+petsc+slepc $petsc_spec_rocm" when it is supported.
|
||||
# TODO: add back '+hiop' when it is no longer linked with tcmalloc* through
|
||||
# its magma dependency.
|
||||
# TODO: add back '+ginkgo' when the Ginkgo example works.
|
||||
${mfem}'+rocm+openmp+raja+occa+libceed amdgpu_target='"${rocm_arch}"' \
|
||||
+superlu-dist+strumpack+suite-sparse+gslib \
|
||||
+superlu-dist+strumpack+suite-sparse+gslib+petsc+slepc \
|
||||
+sundials+pumi+mpfr+netcdf+zlib+gnutls+libunwind+conduit \
|
||||
^raja+rocm~openmp ^occa~cuda'" $strumpack_rocm_spec"' \
|
||||
'"$superlu_spec_rocm $conduit_spec"
|
||||
'"$petsc_spec_rocm $conduit_spec"
|
||||
|
||||
# hypre with rocm:
|
||||
# TODO: add back "+petsc+slepc $petsc_spec_rocm" when it works.
|
||||
@ -223,7 +220,7 @@ builds_rocm=(
|
||||
+superlu-dist+strumpack+suite-sparse+gslib \
|
||||
+pumi+mpfr+netcdf+zlib+gnutls+libunwind+conduit \
|
||||
^raja+rocm~openmp ^occa~cuda ^hypre+rocm \
|
||||
'"$strumpack_rocm_spec $superlu_spec_rocm $conduit_spec"
|
||||
'"$strumpack_rocm_spec $conduit_spec"
|
||||
|
||||
#
|
||||
# same builds as above with ${mfem_dev}
|
||||
|
Loading…
Reference in New Issue
Block a user