summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVeselin Dobrev <v-dobrev@users.noreply.github.com>2023-10-06 15:31:23 -0700
committerGitHub <noreply@github.com>2023-10-06 15:31:23 -0700
commitb5079614b0f771f5feb1eaf222219e14172b87f1 (patch)
tree2d9ecdc4c5660435ec4bb7d40931b80fb2562e1c
parent482525d0f9e11038e0b645740c406dd2a6797af5 (diff)
downloadspack-b5079614b0f771f5feb1eaf222219e14172b87f1.tar.gz
spack-b5079614b0f771f5feb1eaf222219e14172b87f1.tar.bz2
spack-b5079614b0f771f5feb1eaf222219e14172b87f1.tar.xz
spack-b5079614b0f771f5feb1eaf222219e14172b87f1.zip
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
-rw-r--r--var/spack/repos/builtin/packages/mfem/package.py25
-rwxr-xr-xvar/spack/repos/builtin/packages/mfem/test_builds.sh27
2 files changed, 36 insertions, 16 deletions
diff --git a/var/spack/repos/builtin/packages/mfem/package.py b/var/spack/repos/builtin/packages/mfem/package.py
index 061ce98d43..eb869fc255 100644
--- a/var/spack/repos/builtin/packages/mfem/package.py
+++ b/var/spack/repos/builtin/packages/mfem/package.py
@@ -6,6 +6,7 @@
import os
import shutil
import sys
+from platform import machine
from spack.package import *
@@ -49,6 +50,13 @@ class Mfem(Package, CudaPackage, ROCmPackage):
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",
url="https://bit.ly/mfem-4-5-2",
@@ -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 @@ class Mfem(Package, CudaPackage, ROCmPackage):
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:
diff --git a/var/spack/repos/builtin/packages/mfem/test_builds.sh b/var/spack/repos/builtin/packages/mfem/test_builds.sh
index 13e72e7d55..787f936be1 100755
--- a/var/spack/repos/builtin/packages/mfem/test_builds.sh
+++ b/var/spack/repos/builtin/packages/mfem/test_builds.sh
@@ -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}