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