From af2dcef26a8037fb403a7515ab4fdaaf2c21c4a2 Mon Sep 17 00:00:00 2001 From: Zhoneym <140673973+Zhoneym@users.noreply.github.com> Date: Wed, 4 Dec 2024 16:44:07 +0800 Subject: [PATCH 1/3] spack_devtools --- README.md | 2 +- .../spack_devtools.yaml | 251 +++++++++ .../linux_ubuntu_22/spack_devtools.yaml | 178 +++++++ .../macos_sonoma_aarch64/spack_devtools.yaml | 59 +++ .../toss_4_x86_64_ib/spack_devtools.yaml | 316 +++++++++++ .../toss_4_x86_64_ib_cray/spack_devtools.yaml | 493 ++++++++++++++++++ 6 files changed, 1298 insertions(+), 1 deletion(-) create mode 100644 scripts/spack/configs/blueos_3_ppc64le_ib_p9/spack_devtools.yaml create mode 100644 scripts/spack/configs/linux_ubuntu_22/spack_devtools.yaml create mode 100644 scripts/spack/configs/macos_sonoma_aarch64/spack_devtools.yaml create mode 100644 scripts/spack/configs/toss_4_x86_64_ib/spack_devtools.yaml create mode 100644 scripts/spack/configs/toss_4_x86_64_ib_cray/spack_devtools.yaml diff --git a/README.md b/README.md index 013d5883..90bcfd66 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ git clone --recursive git@github.com:LLNL/Tribol.git Development tools can optionally be installed through the Spack package manager. Development tools are typically not needed when using Tribol. The command to install development tools is ``` -python3 scripts/uberenv/uberenv.py --project-json=scripts/spack/devtools.json --spack-env-file=scripts/spack/configs//spack.yaml --prefix=../tribol_devtools +python3 scripts/uberenv/uberenv.py --project-json=scripts/spack/devtools.json --spack-env-file=scripts/spack/configs//spack_devtools.yaml --prefix=../tribol_devtools ``` where `` is one of `blueos_3_ppc64le_ib_p9`, `linux_ubuntu_20`, `linux_ubuntu_22`, `toss_4_x86_64_ib`, or `toss_4_x86_64_ib_cray`. Please verify `scripts/spack/configs//spack.yaml` matches your system configuration. diff --git a/scripts/spack/configs/blueos_3_ppc64le_ib_p9/spack_devtools.yaml b/scripts/spack/configs/blueos_3_ppc64le_ib_p9/spack_devtools.yaml new file mode 100644 index 00000000..a173f8ed --- /dev/null +++ b/scripts/spack/configs/blueos_3_ppc64le_ib_p9/spack_devtools.yaml @@ -0,0 +1,251 @@ +# Copyright (c) 2017-2023, Lawrence Livermore National Security, LLC and +# other Tribol Project Developers. See the top-level LICENSE file for details. +# +# SPDX-License-Identifier: (MIT) + +spack: + config: + install_tree: + root: $spack/.. + projections: + all: '{compiler.name}-{compiler.version}/{name}-{version}-{hash}' + misc_cache: $spack/../misc_cache + test_stage: $spack/../test_stage + build_stage:: + - $spack/../build_stage + + # Regular TPLs do not need views + view: false + + compilers:: + - compiler: + environment: {} + extra_rpaths: [] + flags: + # Fix for "undefined reference to `_gfortran_transfer_integer_write'" + ldlibs: -lgfortran + modules: [] + operating_system: rhel7 + paths: + cc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gcc + cxx: /usr/tce/packages/gcc/gcc-8.3.1/bin/g++ + f77: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran + fc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran + spec: gcc@8.3.1 + target: ppc64le + - compiler: + environment: {} + extra_rpaths: [] + flags: + # Fix for "undefined reference to `_gfortran_transfer_integer_write'" + ldlibs: -lgfortran + modules: [] + operating_system: rhel7 + paths: + cc: /usr/tce/packages/clang/clang-ibm-10.0.1-gcc-8.3.1/bin/clang + cxx: /usr/tce/packages/clang/clang-ibm-10.0.1-gcc-8.3.1/bin/clang++ + f77: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran + fc: /usr/tce/packages/gcc/gcc-8.3.1/bin/gfortran + spec: clang@10.0.1 + target: ppc64le + packages: + all: + compiler: [gcc, intel, pgi, clang, xl, nag] + providers: + blas: [netlib-lapack] + lapack: [netlib-lapack] + mpi: [spectrum-mpi] + zlib-api: [zlib] + + # LLNL blueos CUDA + cuda: + buildable: false + externals: + - spec: cuda@11.2.0 + prefix: /usr/tce/packages/cuda/cuda-11.2.0 + + # LLNL blueos mpi + mpi: + buildable: false + spectrum-mpi: + buildable: false + externals: + - spec: spectrum-mpi@release%gcc@8.3.1 + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-gcc-8.3.1/ + - spec: spectrum-mpi@release%clang@10.0.1 + prefix: /usr/tce/packages/spectrum-mpi/spectrum-mpi-rolling-release-clang-10.0.1-gcc-8.3.1/ + + # blas is a bit more complicated because its a virtual package so fake it with + # the following per spack docs + netlib-lapack: + buildable: false + externals: + # These have trailing underscores in their symbols + - spec: netlib-lapack@3.9.0%gcc@8.3.1 + prefix: /usr/tcetmp/packages/lapack/lapack-3.9.0-P9-gcc-7.3.1/ + - spec: netlib-lapack@3.9.0%clang@10.0.1 + prefix: /usr/tcetmp/packages/lapack/lapack-3.9.0-P9-gcc-7.3.1/ + + # System level packages to not build + autoconf: + buildable: false + externals: + - spec: autoconf@2.69 + prefix: /usr + automake: + buildable: false + externals: + - spec: automake@1.13.4 + prefix: /usr + binutils: + buildable: false + externals: + - spec: binutils@2.27 + prefix: /usr + bzip2: + buildable: false + externals: + - spec: bzip2@1.0.6 + prefix: /usr + curl: + buildable: false + externals: + - spec: curl@7.29.0 + prefix: /usr + diffutils: + buildable: false + externals: + - spec: diffutils@3.3 + prefix: /usr + elfutils: + buildable: false + externals: + - spec: elfutils@0.176 + prefix: /usr + epoxy: + buildable: false + externals: + - spec: epoxy@0.0.0 + prefix: /usr + findutils: + buildable: false + externals: + - spec: findutils@4.5.11 + prefix: /usr + gettext: + buildable: false + externals: + - spec: gettext@0.19.8.1 + prefix: /usr + ghostscript: + buildable: false + externals: + - spec: ghostscript@9.25 + prefix: /usr + gmake: + buildable: false + externals: + - spec: gmake@4.2.1 + prefix: /usr/tcetmp + groff: + buildable: false + externals: + - spec: groff@1.22.2 + prefix: /usr + libtool: + buildable: false + externals: + - spec: libtool@2.4.2 + prefix: /usr + libunwind: + buildable: false + externals: + - spec: libunwind@8.0.1 + prefix: /usr + ncurses: + buildable: false + externals: + - spec: ncurses@5.9 + prefix: /usr + m4: + buildable: false + externals: + - spec: m4@1.4.16 + prefix: /usr + perl: + buildable: false + externals: + - spec: perl@5.16.3 + prefix: /usr + pkg-config: + buildable: false + externals: + - spec: pkg-config@0.27.1 + prefix: /usr + readline: + buildable: false + externals: + - spec: readline@6.2 + prefix: /usr + tar: + externals: + - spec: tar@1.26 + prefix: /usr + buildable: false + zlib: + buildable: false + externals: + - spec: zlib@1.2.7 + prefix: /usr + + # Globally lock in versions of Devtools + cmake: + version: [3.23.1] + buildable: false + externals: + - spec: cmake@3.23.1 + prefix: /usr/tce/packages/cmake/cmake-3.23.1 + doxygen: + version: [1.9.6] + buildable: false + externals: + - spec: doxygen@1.9.6 + prefix: /collab/usr/gapps/axom/devtools/blueos_3_ppc64le_ib_p9/latest/doxygen-1.9.6 + llvm: + version: [10.0.0] + buildable: false + externals: + - spec: llvm@10.0.0+clang + prefix: /usr/tce/packages/clang/clang-10.0.0 + python: + version: [3.10.10] + buildable: false + externals: + - spec: python@3.10.10 + prefix: /collab/usr/gapps/axom/devtools/blueos_3_ppc64le_ib_p9/latest/python-3.10.10 + py-shroud: + version: [0.12.2] + buildable: false + externals: + - spec: py-shroud@0.12.2 + prefix: /collab/usr/gapps/axom/devtools/blueos_3_ppc64le_ib_p9/latest/python-3.10.10 + py-sphinx: + version: [6.1.3] + buildable: false + externals: + - spec: py-sphinx@6.1.3 + prefix: /collab/usr/gapps/axom/devtools/blueos_3_ppc64le_ib_p9/latest/python-3.10.10 + + # Globally lock version of third party libraries that work on this platform + axom: + version: ["@0.9.0.2~shared~examples~fortran~lua~tools"] + camp: + version: ["@2024.07.0"] + hdf5: + variants: ~shared~mpi + conduit: + variants: ~shared~test~examples~utilities + raja: + version: ["@2024.07.0~shared~examples~exercises"] + umpire: + version: ["@2024.07.0~shared~examples"] \ No newline at end of file diff --git a/scripts/spack/configs/linux_ubuntu_22/spack_devtools.yaml b/scripts/spack/configs/linux_ubuntu_22/spack_devtools.yaml new file mode 100644 index 00000000..fa2bf13b --- /dev/null +++ b/scripts/spack/configs/linux_ubuntu_22/spack_devtools.yaml @@ -0,0 +1,178 @@ +# Copyright (c) 2017-2023, Lawrence Livermore National Security, LLC and +# other Tribol Project Developers. See the top-level LICENSE file for details. +# +# SPDX-License-Identifier: (MIT) + +spack: + compilers:: + - compiler: + spec: gcc@11.4.0 + paths: + cc: /usr/bin/gcc + cxx: /usr/bin/g++ + f77: /usr/bin/gfortran + fc: /usr/bin/gfortran + flags: + cflags: -pthread + cxxflags: -pthread + operating_system: ubuntu22.04 + target: x86_64 + modules: [] + environment: {} + extra_rpaths: [] + - compiler: + spec: clang@14.0.0 + paths: + cc: /usr/bin/clang + cxx: /usr/bin/clang++ + f77: /usr/bin/gfortran + fc: /usr/bin/gfortran + flags: + cflags: -pthread + cxxflags: -pthread + operating_system: ubuntu22.04 + target: x86_64 + modules: [] + environment: {} + extra_rpaths: [] + + # Regular TPLs do not need views + view: false + + packages: + all: + target: [ivybridge] + compiler: [gcc] + providers: + mpi: [mpich] + blas: [openblas] + lapack: [openblas] + gl: [opengl] + glu: [openglu] + + # Lock down which MPI we are using + mpi: + buildable: false + mpich: + externals: + - spec: mpich@4.0%gcc + prefix: /usr + + # Lock down versions of packages we depend on + cuda: + buildable: false + externals: + - spec: cuda@12.2.91 + prefix: /usr/local/cuda + opengl: + buildable: false + externals: + - spec: opengl@1.7.0 + prefix: /usr + openglu: + buildable: false + externals: + - spec: openglu@1.3.1 + prefix: /usr + bzip2: + buildable: false + externals: + - spec: bzip2@1.0.8 + prefix: / + gettext: + buildable: false + externals: + - spec: gettext@0.19.8.1 + prefix: /usr + perl: + buildable: false + externals: + - spec: perl@5.30.0 + prefix: /usr + tar: + buildable: false + externals: + - spec: tar@1.30 + prefix: / + libx11: + buildable: false + externals: + - spec: libx11@6.3.0 + prefix: /usr + autoconf: + buildable: false + externals: + - spec: autoconf@2.69 + prefix: /usr + openssl: + externals: + - spec: openssl@1.1.1 + prefix: /usr/lib/x86_64-linux-gnu/ + openblas: + buildable: false + externals: + - spec: openblas@0.3.8 + prefix: /usr/lib/x86_64-linux-gnu/ + pkg-config: + buildable: false + externals: + - spec: pkg-config@0.29.2 + prefix: /usr + unzip: + buildable: false + externals: + - spec: unzip@6.0 + prefix: /usr + zlib: + buildable: false + externals: + - spec: zlib@1.2.11 + prefix: /usr + m4: + buildable: false + externals: + - spec: m4@1.4.16 + prefix: /usr + + # Lock in versions of Devtools + cmake: + buildable: false + externals: + - spec: cmake@3.24.1 + prefix: /usr + doxygen: + version: [1.8.17] + buildable: false + externals: + - spec: doxygen@1.8.17 + prefix: /usr + llvm: + version: [10.0.0] + buildable: false + externals: + - spec: llvm@10.0.0+clang + prefix: /usr + python: + version: [3.8.5] + buildable: false + externals: + - spec: python@3.8.5 + prefix: /usr + py-sphinx: + version: [3.2.1] + buildable: false + externals: + - spec: py-sphinx@3.2.1 + prefix: /usr + + # Globally lock version of third party libraries that work on this platform + axom: + version: ["@0.9.0.2~shared~examples~fortran~lua~tools"] + camp: + version: ["@2024.07.0"] + conduit: + variants: ~shared~test~examples~utilities + raja: + version: ["@2024.07.0~shared~examples~exercises"] + umpire: + version: ["@2024.07.0~shared~examples"] \ No newline at end of file diff --git a/scripts/spack/configs/macos_sonoma_aarch64/spack_devtools.yaml b/scripts/spack/configs/macos_sonoma_aarch64/spack_devtools.yaml new file mode 100644 index 00000000..a9f41ed3 --- /dev/null +++ b/scripts/spack/configs/macos_sonoma_aarch64/spack_devtools.yaml @@ -0,0 +1,59 @@ +spack: + # add package specs to the `specs` list + view: true + concretizer: + unify: true + packages: + all: + compiler: [clang, gcc] + providers: + blas: [netlib-lapack] + lapack: [netlib-lapack] + mpi: [openmpi] + mpi: + buildable: false + openmpi: + buildable: false + externals: + - spec: openmpi@5.0.6 + prefix: /opt/homebrew + netlib-lapack: + buildable: false + externals: + - spec: netlib-lapack@3.12.0 + prefix: /opt/homebrew/opt/lapack + cmake: + version: [3.31.1] + buildable: false + externals: + - spec: cmake@3.31.1 + prefix: /opt/homebrew + hdf5: + version: [1.14.5] + buildable: false + externals: + - spec: hdf5@1.14.5 + prefix: /opt/homebrew + lua: + version: [5.4.7] + buildable: false + externals: + - spec: lua@5.4.7 + prefix: /opt/homebrew + + # The "::" removes all found/known compilers from Spack except for these. + compilers:: + - compiler: + spec: clang@=19.1.4 + paths: + cc: /opt/homebrew/opt/llvm/bin/clang + cxx: /opt/homebrew/opt/llvm/bin/clang++ + f77: /opt/homebrew/bin/gfortran-14 + fc: /opt/homebrew/bin/gfortran-14 + flags: {} + operating_system: sequoia + target: aarch64 + modules: [] + environment: {} + extra_rpaths: + - /opt/homebrew/lib/gcc/14 diff --git a/scripts/spack/configs/toss_4_x86_64_ib/spack_devtools.yaml b/scripts/spack/configs/toss_4_x86_64_ib/spack_devtools.yaml new file mode 100644 index 00000000..b7f177c4 --- /dev/null +++ b/scripts/spack/configs/toss_4_x86_64_ib/spack_devtools.yaml @@ -0,0 +1,316 @@ +# Copyright (c) 2017-2023, Lawrence Livermore National Security, LLC and +# other Tribol Project Developers. See the top-level LICENSE file for details. +# +# SPDX-License-Identifier: (MIT) + +spack: + config: + install_tree: + root: $spack/.. + projections: + all: '{compiler.name}-{compiler.version}/{name}-{version}-{hash}' + misc_cache: $spack/../misc_cache + test_stage: $spack/../test_stage + build_stage:: + - $spack/../build_stage + + # Regular TPLs do not need views + view: false + + compilers:: + - compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: + - clang/14.0.6 + operating_system: rhel8 + paths: + cc: /usr/tce/packages/clang/clang-14.0.6/bin/clang + cxx: /usr/tce/packages/clang/clang-14.0.6/bin/clang++ + f77: /usr/tce/packages/gcc/gcc-10.3.1/bin/gfortran + fc: /usr/tce/packages/gcc/gcc-10.3.1/bin/gfortran + spec: clang@14.0.6 + target: x86_64 + - compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: + - gcc/10.3.1 + operating_system: rhel8 + paths: + cc: /usr/tce/packages/gcc/gcc-10.3.1/bin/gcc + cxx: /usr/tce/packages/gcc/gcc-10.3.1/bin/g++ + f77: /usr/tce/packages/gcc/gcc-10.3.1/bin/gfortran + fc: /usr/tce/packages/gcc/gcc-10.3.1/bin/gfortran + spec: gcc@10.3.1 + target: x86_64 + - compiler: + environment: {} + extra_rpaths: [] + flags: {} + modules: [] + operating_system: rhel8 + paths: + cc: /usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/icx + cxx: /usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/icpx + f77: /usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/ifx + fc: /usr/tce/packages/intel/intel-2023.2.1/compiler/2023.2.1/linux/bin/ifx + spec: intel@2023.2.1 + target: x86_64 + + packages: + all: + # This defaults us to machine specific flags of ivybridge which allows + # us to run on broadwell as well + target: [ivybridge] + compiler: [gcc, intel, pgi, clang, xl, nag] + providers: + blas: [openblas] + lapack: [netlib-lapack] + mpi: [mvapich2] + gl: [opengl] + glu: [openglu] + + openblas: + buildable: false + externals: + - prefix: /usr + spec: openblas@0.3.15 + opengl: + buildable: false + externals: + - spec: opengl@1.7.0 + prefix: /usr + openglu: + buildable: false + externals: + - spec: openglu@1.3.1 + prefix: /usr + + # Lock down which MPI we are using + mpi: + buildable: false + mvapich2: + buildable: false + externals: + - spec: mvapich2@2.3.6%clang@14.0.6~alloca~cuda~debug~hwloc_graphics~hwlocv2+regcache+wrapperrpath build_system=autotools ch3_rank_bits=32 fabrics=mrail file_systems=auto process_managers=slurm threads=multiple + prefix: /usr/tce/packages/mvapich2/mvapich2-2.3.6-clang-14.0.6 + - spec: mvapich2@2.3.6%gcc@10.3.1~alloca~cuda~debug~hwloc_graphics~hwlocv2+regcache+wrapperrpath build_system=autotools ch3_rank_bits=32 fabrics=mrail file_systems=auto process_managers=slurm threads=multiple + prefix: /usr/tce/packages/mvapich2/mvapich2-2.3.6-gcc-10.3.1 + - spec: mvapich2@2.3.6%intel@2023.2.1~alloca~cuda~debug~hwloc_graphics~hwlocv2+regcache+wrapperrpath build_system=autotools ch3_rank_bits=32 fabrics=mrail file_systems=auto process_managers=slurm threads=multiple + prefix: /usr/tce/packages/mvapich2/mvapich2-2.3.6-intel-2023.2.1 + + netlib-lapack: + buildable: false + externals: + - spec: netlib-lapack@3.8.0 + prefix: /usr + + # System level packages to not build + autoconf: + buildable: false + externals: + - spec: autoconf@2.69 + prefix: /usr + automake: + buildable: false + externals: + - spec: automake@1.16.1 + prefix: /usr + binutils: + buildable: false + externals: + - spec: binutils@2.30 + prefix: /usr + bison: + buildable: false + externals: + - spec: bison@3.0.4 + prefix: /usr + bzip2: + buildable: false + externals: + - spec: bzip2@1.0.6 + prefix: /usr + curl: + buildable: false + externals: + - spec: curl@7.29.0 + prefix: /usr + diffutils: + buildable: false + externals: + - spec: diffutils@3.6 + prefix: /usr + elfutils: + buildable: false + externals: + - spec: elfutils@0.187 + prefix: /usr + expat: + buildable: false + externals: + - spec: expat@2.2.5 + prefix: /usr + libepoxy: + buildable: false + externals: + - spec: libepoxy@1.5.8 + prefix: /usr + flex: + buildable: false + externals: + - spec: flex@2.6.1 + prefix: /usr + findutils: + buildable: false + externals: + - spec: findutils@4.6.0 + prefix: /usr + gettext: + buildable: false + externals: + - spec: gettext@0.19.8.1 + prefix: /usr + ghostscript: + buildable: false + externals: + - spec: ghostscript@9.27 + prefix: /usr + graphviz: + buildable: false + externals: + - spec: graphviz@2.40.1 + prefix: /usr + groff: + buildable: false + externals: + - spec: groff@1.22.2 + prefix: /usr + hwloc: + buildable: false + externals: + - spec: hwloc@2.9.0 + prefix: /usr + libtool: + buildable: false + externals: + - spec: libtool@2.4.6 + prefix: /usr + # NOTE: removed since fails on clang builds + # libunwind: + # buildable: false + # externals: + # - spec: libunwind@1.3.1 + # prefix: /usr + libx11: + buildable: false + externals: + - spec: libx11@1.6.8 + prefix: /usr + lua: + buildable: false + externals: + - spec: lua@5.3.4 + prefix: /usr + m4: + buildable: false + externals: + - spec: m4@1.4.18 + prefix: /usr + ninja: + buildable: false + externals: + - spec: ninja@1.11.0 + prefix: /usr/tce/packages/ninja/ninja-1.11.0 + openssl: + buildable: false + externals: + - spec: openssl@1.1.1k + prefix: /usr + perl: + buildable: false + externals: + - spec: perl@5.26.3 + prefix: /usr + pkg-config: + buildable: false + externals: + - spec: pkg-config@1.4.2 + prefix: /usr + readline: + buildable: false + externals: + - spec: readline@7.0 + prefix: /usr + swig: + buildable: false + externals: + - spec: swig@3.0.12 + prefix: /usr + tar: + buildable: false + externals: + - spec: tar@1.30 + prefix: /usr + unzip: + buildable: false + externals: + - spec: unzip@6.0 + prefix: /usr + zlib: + buildable: false + externals: + - spec: zlib@1.2.11 + prefix: /usr + + # Lock in versions of Devtools + cmake: + version: [3.23.1] + buildable: false + externals: + - spec: cmake@3.23.1 + prefix: /usr/tce + doxygen: + version: [1.9.6] + buildable: false + externals: + - spec: doxygen@1.9.6 + prefix: /collab/usr/gapps/axom/devtools/toss_4_x86_64_ib/latest/doxygen-1.9.6 + # TODO: make installed clang 14.0.6 work + llvm: + version: [10.0.0] + buildable: false + externals: + - spec: llvm+clang@10.0.0 + prefix: /collab/usr/gapps/axom/devtools/toss_4_x86_64_ib/latest/llvm-10.0.0 + py-shroud: + version: [0.12.2] + buildable: false + externals: + - spec: py-shroud@0.12.2 + prefix: /collab/usr/gapps/axom/devtools/toss_4_x86_64_ib/latest/python-3.10.10 + py-sphinx: + version: [7.0.0] + buildable: false + externals: + - spec: py-sphinx@7.0.0 + prefix: /collab/usr/gapps/axom/devtools/toss_4_x86_64_ib/latest/python-3.10.10 + python: + buildable: false + externals: + - spec: python@3.10.10 + prefix: /collab/usr/gapps/axom/devtools/toss_4_x86_64_ib/latest/python-3.10.10 + + + # Globally lock version of third party libraries that work on this platform + axom: + variants: ~shared~examples~fortran~lua~tools + conduit: + variants: ~shared~test~examples~utilities + raja: + version: ["@2024.07.0~shared~examples~exercises"] + umpire: + version: ["@2024.07.0~shared~examples"] \ No newline at end of file diff --git a/scripts/spack/configs/toss_4_x86_64_ib_cray/spack_devtools.yaml b/scripts/spack/configs/toss_4_x86_64_ib_cray/spack_devtools.yaml new file mode 100644 index 00000000..fc8e5193 --- /dev/null +++ b/scripts/spack/configs/toss_4_x86_64_ib_cray/spack_devtools.yaml @@ -0,0 +1,493 @@ +# Copyright (c) 2017-2023, Lawrence Livermore National Security, LLC and +# other Tribol Project Developers. See the top-level LICENSE file for details. +# +# SPDX-License-Identifier: (MIT) + +spack: + config: + install_tree: + root: $spack/.. + projections: + all: '{compiler.name}-{compiler.version}/{name}-{version}-{hash}' + misc_cache: $spack/../misc_cache + test_stage: $spack/../test_stage + build_stage:: + - $spack/../build_stage + + # Regular TPLs do not need views + view: false + + compilers:: + - compiler: + environment: {} + extra_rpaths: [] + flags: + fflags: -Mfreeform + modules: [] + operating_system: rhel8 + paths: + cc: /opt/rocm-5.2.3/llvm/bin/amdclang + cxx: /opt/rocm-5.2.3/llvm/bin/amdclang++ + f77: /opt/rocm-5.2.3/llvm/bin/amdflang + fc: /opt/rocm-5.2.3/llvm/bin/amdflang + spec: clang@14.0.0 + target: x86_64 + - compiler: + environment: {} + extra_rpaths: [] + flags: + fflags: -Mfreeform + modules: [] + operating_system: rhel8 + paths: + cc: /opt/rocm-5.4.3/llvm/bin/amdclang + cxx: /opt/rocm-5.4.3/llvm/bin/amdclang++ + f77: /opt/rocm-5.4.3/llvm/bin/amdflang + fc: /opt/rocm-5.4.3/llvm/bin/amdflang + spec: clang@15.0.0 + target: x86_64 + - compiler: + environment: {} + extra_rpaths: [] + flags: + fflags: -Mfreeform + modules: [] + operating_system: rhel8 + paths: + cc: /opt/rocm-5.6.0/llvm/bin/amdclang + cxx: /opt/rocm-5.6.0/llvm/bin/amdclang++ + f77: /opt/rocm-5.6.0/llvm/bin/amdflang + fc: /opt/rocm-5.6.0/llvm/bin/amdflang + spec: clang@16.0.0 + target: x86_64 + - compiler: + environment: {} + extra_rpaths: [] + flags: + fflags: -Mfreeform + modules: [] + operating_system: rhel8 + paths: + cc: /opt/rocm-5.7.1/llvm/bin/amdclang + cxx: /opt/rocm-5.7.1/llvm/bin/amdclang++ + f77: /opt/rocm-5.7.1/llvm/bin/amdflang + fc: /opt/rocm-5.7.1/llvm/bin/amdflang + spec: rocmcc@=5.7.1 + target: x86_64 + - compiler: + environment: {} + extra_rpaths: [] + flags: + fflags: -Mfreeform + modules: [] + operating_system: rhel8 + paths: + cc: /opt/rocm-6.1.2/llvm/bin/amdclang + cxx: /opt/rocm-6.1.2/llvm/bin/amdclang++ + f77: /opt/rocm-6.1.2/llvm/bin/amdflang + fc: /opt/rocm-6.1.2/llvm/bin/amdflang + spec: rocmcc@=6.1.2 + target: x86_64 + - compiler: + environment: {} + extra_rpaths: [] + flags: + fflags: -Mfreeform + modules: [] + operating_system: rhel8 + paths: + cc: /opt/rocm-6.2.1/llvm/bin/amdclang + cxx: /opt/rocm-6.2.1/llvm/bin/amdclang++ + f77: /opt/rocm-6.2.1/llvm/bin/amdflang + fc: /opt/rocm-6.2.1/llvm/bin/amdflang + spec: rocmcc@=6.2.1 + target: x86_64 + - compiler: + environment: {} + extra_rpaths: [] + # Flag for lowercase Fortran module names + flags: + fflags: -ef + modules: [] + operating_system: rhel8 + paths: + cc: /usr/tce/packages/cce-tce/cce-15.0.1/bin/craycc + cxx: /usr/tce/packages/cce-tce/cce-15.0.1/bin/crayCC + f77: /usr/tce/packages/cce-tce/cce-15.0.1/bin/crayftn + fc: /usr/tce/packages/cce-tce/cce-15.0.1/bin/crayftn + spec: cce@15.0.1 + target: x86_64 + - compiler: + environment: {} + extra_rpaths: [] + # Flag for lowercase Fortran module names + flags: + fflags: -ef + modules: [] + operating_system: rhel8 + paths: + cc: /usr/tce/packages/cce-tce/cce-18.0.0/bin/craycc + cxx: /usr/tce/packages/cce-tce/cce-18.0.0/bin/crayCC + f77: /usr/tce/packages/cce-tce/cce-18.0.0/bin/crayftn + fc: /usr/tce/packages/cce-tce/cce-18.0.0/bin/crayftn + spec: cce@=18.0.0 + target: x86_64 + + packages: + all: + compiler: [gcc, intel, pgi, clang, xl, nag] + providers: + blas: [netlib-lapack] + lapack: [netlib-lapack] + mpi: [cray-mpich] + + hip: + version: [5.2.3, 5.4.3, 5.6.0, 5.7.1, 6.1.2, 6.2.1] + buildable: false + externals: + - spec: hip@5.2.3 + prefix: /opt/rocm-5.2.3/hip + - spec: hip@5.4.3 + prefix: /opt/rocm-5.4.3/hip + - spec: hip@5.6.0 + prefix: /opt/rocm-5.6.0/hip + - spec: hip@5.7.1 + prefix: /opt/rocm-5.7.1/hip + - spec: hip@6.1.2 + prefix: /opt/rocm-6.1.2 + - spec: hip@6.2.1 + prefix: /opt/rocm-6.2.1 + + hipsparse: + version: [5.2.3, 5.4.3.0, 5.4.3.1, 5.6.0, 5.7.1, 6.1.2.0, 6.1.2.1, 6.2.1] + buildable: false + externals: + - spec: hipsparse@5.2.3%clang@14.0.0 + prefix: /opt/rocm-5.2.3 + - spec: hipsparse@5.4.3.0%clang@15.0.0 + prefix: /opt/rocm-5.4.3 + - spec: hipsparse@5.4.3.1%cce@15.0.1 + prefix: /opt/rocm-5.4.3 + - spec: hipsparse@5.6.0%clang@16.0.0 + prefix: /opt/rocm-5.6.0 + - spec: hipsparse@5.7.1%rocmcc@5.7.1 + prefix: /opt/rocm-5.7.1 + - spec: hipsparse@6.1.2.0%rocmcc@6.1.2 + prefix: /opt/rocm-6.1.2 + - spec: hipsparse@6.1.2.1%cce@18.0.0 + prefix: /opt/rocm-6.1.2 + - spec: hipsparse@6.2.1%rocmcc@6.2.1 + prefix: /opt/rocm-6.2.1 + + llvm-amdgpu: + version: [5.2.3, 5.4.3, 5.6.0, 5.7.1, 6.1.2, 6.2.1] + buildable: false + externals: + - spec: llvm-amdgpu@5.2.3 + prefix: /opt/rocm-5.2.3/llvm + - spec: llvm-amdgpu@5.4.3 + prefix: /opt/rocm-5.4.3/llvm + - spec: llvm-amdgpu@5.6.0 + prefix: /opt/rocm-5.6.0/llvm + - spec: llvm-amdgpu@5.7.1 + prefix: /opt/rocm-5.7.1/llvm + - spec: llvm-amdgpu@6.1.2 + prefix: /opt/rocm-6.1.2/llvm + - spec: llvm-amdgpu@6.2.1 + prefix: /opt/rocm-6.2.1/llvm + + hsa-rocr-dev: + version: [5.2.3, 5.4.3, 5.6.0, 5.7.1, 6.1.2, 6.2.1] + buildable: false + externals: + - spec: hsa-rocr-dev@5.2.3 + prefix: /opt/rocm-5.2.3 + - spec: hsa-rocr-dev@5.4.3 + prefix: /opt/rocm-5.4.3 + - spec: hsa-rocr-dev@5.6.0 + prefix: /opt/rocm-5.6.0 + - spec: hsa-rocr-dev@5.7.1 + prefix: /opt/rocm-5.7.1 + - spec: hsa-rocr-dev@6.1.2 + prefix: /opt/rocm-6.1.2 + - spec: hsa-rocr-dev@6.2.1 + prefix: /opt/rocm-6.2.1 + + rocblas: + version: [5.2.3, 5.4.3, 5.6.0, 5.7.1, 6.1.2, 6.2.1] + buildable: false + externals: + - spec: rocblas@5.2.3 + prefix: /opt/rocm-5.2.3 + - spec: rocblas@5.4.3 + prefix: /opt/rocm-5.4.3 + - spec: rocblas@5.6.0 + prefix: /opt/rocm-5.6.0 + - spec: rocblas@5.7.1 + prefix: /opt/rocm-5.7.1 + - spec: rocblas@6.1.2 + prefix: /opt/rocm-6.1.2 + - spec: rocblas@6.2.1 + prefix: /opt/rocm-6.2.1 + + rocminfo: + version: [5.2.3, 5.4.3, 5.6.0, 5.7.1, 6.1.2, 6.2.1] + buildable: false + externals: + - spec: rocminfo@5.2.3 + prefix: /opt/rocm-5.2.3 + - spec: rocminfo@5.4.3 + prefix: /opt/rocm-5.4.3 + - spec: rocminfo@5.6.0 + prefix: /opt/rocm-5.6.0 + - spec: rocminfo@5.7.1 + prefix: /opt/rocm-5.7.1 + - spec: rocminfo@6.1.2 + prefix: /opt/rocm-6.1.2 + - spec: rocminfo@6.2.1 + prefix: /opt/rocm-6.2.1 + + rocprim: + version: [5.2.3, 5.4.3, 5.6.0, 5.7.1, 6.1.2, 6.2.1] + buildable: false + externals: + - spec: rocprim@5.2.3 + prefix: /opt/rocm-5.2.3 + - spec: rocprim@5.4.3 + prefix: /opt/rocm-5.4.3 + - spec: rocprim@5.6.0 + prefix: /opt/rocm-5.6.0 + - spec: rocprim@5.7.1 + prefix: /opt/rocm-5.7.1 + - spec: rocprim@6.1.2 + prefix: /opt/rocm-6.1.2 + - spec: rocprim@6.2.1 + prefix: /opt/rocm-6.2.1 + + rocm-device-libs: + version: [5.2.3, 5.4.3, 5.6.0, 5.7.1, 6.1.2, 6.2.1] + buildable: false + externals: + - spec: rocm-device-libs@5.2.3 + prefix: /opt/rocm-5.2.3/ + - spec: rocm-device-libs@5.4.3 + prefix: /opt/rocm-5.4.3/ + - spec: rocm-device-libs@5.6.0 + prefix: /opt/rocm-5.6.0/ + - spec: rocm-device-libs@5.7.1 + prefix: /opt/rocm-5.7.1/ + - spec: rocm-device-libs@6.1.2 + prefix: /opt/rocm-6.1.2/ + - spec: rocm-device-libs@6.2.1 + prefix: /opt/rocm-6.2.1/ + + # Lock down which MPI we are using + mpi: + buildable: false + cray-mpich: + buildable: false + externals: + - spec: cray-mpich@8.1.16%clang@14.0.0+slurm + prefix: /usr/tce/packages/cray-mpich-tce/cray-mpich-8.1.16-rocmcc-5.2.3/ + - spec: cray-mpich@8.1.25%clang@15.0.0+slurm + prefix: /usr/tce/packages/cray-mpich-tce/cray-mpich-8.1.25-rocmcc-5.4.3/ + - spec: cray-mpich@8.1.25%clang@16.0.0+slurm + prefix: /usr/tce/packages/cray-mpich-tce/cray-mpich-8.1.25-rocmcc-5.6.0/ + - spec: cray-mpich@8.1.27%rocmcc@5.7.1+slurm + prefix: /usr/tce/packages/cray-mpich-tce/cray-mpich-8.1.27-rocmcc-5.7.1/ + - spec: cray-mpich@8.1.29%rocmcc@6.1.2+slurm + prefix: /usr/tce/packages/cray-mpich-tce/cray-mpich-8.1.29-rocmcc-6.1.2/ + - spec: cray-mpich@8.1.29%rocmcc@6.2.1+slurm + prefix: /usr/tce/packages/cray-mpich-tce/cray-mpich-8.1.29-rocmcc-6.2.1/ + - spec: cray-mpich@8.1.25%cce@15.0.1+slurm + prefix: /usr/tce/packages/cray-mpich-tce/cray-mpich-8.1.25-rocmcc-5.4.3-cce-15.0.1/ + - spec: cray-mpich@8.1.29%cce@18.0.0+slurm + prefix: /usr/tce/packages/cray-mpich-tce/cray-mpich-8.1.29-rocmcc-6.1.2-cce-18.0.0/ + + # blas is a bit more complicated because its a virtual package so fake it with + # the following per spack docs + netlib-lapack: + buildable: false + externals: + - spec: netlib-lapack@3.6.1 + prefix: /usr + + # System level packages to not build + autoconf: + buildable: false + externals: + - spec: autoconf@2.69 + prefix: /usr + automake: + buildable: false + externals: + - spec: automake@1.13.4 + prefix: /usr + binutils: + buildable: false + externals: + - spec: binutils@2.27 + prefix: /usr + bzip2: + buildable: false + externals: + - spec: bzip2@1.0.6 + prefix: /usr + curl: + buildable: false + externals: + - spec: curl@7.61.1 + prefix: /usr + cmake: + version: [3.24.2] + buildable: false + externals: + - spec: cmake@3.24.2 + prefix: /usr/tce + diffutils: + buildable: false + externals: + - spec: diffutils@3.3 + prefix: /usr + elfutils: + buildable: false + externals: + - spec: elfutils@0.176 + prefix: /usr + epoxy: + buildable: false + externals: + - spec: epoxy@1.5.2 + prefix: /usr + findutils: + buildable: false + externals: + - spec: findutils@4.5.11 + prefix: /usr + gettext: + buildable: false + externals: + - spec: gettext@0.19.8.1 + prefix: /usr + ghostscript: + buildable: false + externals: + - spec: ghostscript@9.25 + prefix: /usr + git: + buildable: false + externals: + - spec: git@2.29.1 + prefix: /usr/tce/packages/git/git-2.29.1 + gmake: + buildable: false + externals: + - spec: gmake@4.2.1 + prefix: /usr + groff: + buildable: false + externals: + - spec: groff@1.22.2 + prefix: /usr + graphviz: + buildable: false + externals: + - spec: graphviz@2.30.1 + prefix: /usr + libtool: + buildable: false + externals: + - spec: libtool@2.4.2 + prefix: /usr + libunwind: + buildable: false + externals: + - spec: libunwind@8.0.1 + prefix: /usr + libx11: + buildable: false + externals: + - spec: libx11@1.20.4 + prefix: /usr + m4: + buildable: false + externals: + - spec: m4@1.4.16 + prefix: /usr + ncurses: + externals: + - spec: ncurses@6.1.20180224+termlib abi=6 + prefix: /usr + buildable: false + perl: + buildable: false + externals: + - spec: perl@5.16.3 + prefix: /usr + pkg-config: + buildable: false + externals: + - spec: pkg-config@0.27.1 + prefix: /usr + readline: + buildable: false + externals: + - spec: readline@6.2 + prefix: /usr + tar: + buildable: false + externals: + - spec: tar@1.26 + prefix: /usr + unzip: + buildable: false + externals: + - spec: unzip@6.0 + prefix: /usr + + # External dependencies for SCR + lsf: + buildable: False + externals: + - spec: lsf@10.1 + prefix: /opt/ibm/spectrumcomputing/lsf/10.1 + slurm: + buildable: false + externals: + - spec: slurm@20 + prefix: /usr + libyogrt: + externals: + - spec: libyogrt@1.24 scheduler=lsf + prefix: /usr + - spec: libyogrt@1.24 scheduler=slurm + prefix: /usr + pdsh: + buildable: false + externals: + - spec: pdsh@2.33 + prefix: /usr + + # Globally lock version of third party libraries that work on this platform + axom: + variants: ~shared~examples~fortran~lua~tools + camp: + version: ["@2024.07.0"] + conduit: + require: ["@0.9.2~shared~test~examples~utilities"] + raja: + version: ["@2024.07.0~shared~examples~exercises"] + umpire: + version: ["@2024.07.0~shared~examples"] + + # Failure with cce compiler: + # https://github.com/besser82/libxcrypt/issues/181 + # Fix: + # https://github.com/NixOS/nixpkgs/pull/309884 + libxcrypt: + require: + - ldflags=-Wl,--undefined-version + + # cce compiler requires static zlib + zlib: + variants: ~shared From 58aaf6ae0d41a23b2a6e1b3a36125727f3986509 Mon Sep 17 00:00:00 2001 From: Zhoneym <140673973+Zhoneym@users.noreply.github.com> Date: Tue, 25 Feb 2025 15:10:26 +0800 Subject: [PATCH 2/3] Update mfem debug --- scripts/spack/packages/tribol/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/spack/packages/tribol/package.py b/scripts/spack/packages/tribol/package.py index bbbc9646..081e2dcd 100644 --- a/scripts/spack/packages/tribol/package.py +++ b/scripts/spack/packages/tribol/package.py @@ -69,7 +69,7 @@ class Tribol(CachedCMakePackage, CudaPackage, ROCmPackage): depends_on("mpi") # Other libraries - depends_on("mfem@4.6:+lapack") + depends_on("mfem@4.6:+debug+lapack") depends_on("axom@0.9:") depends_on("raja@2024.02.0:", when="+raja") From 2f6a5b51a21a45b113888d88360e164b04be3250 Mon Sep 17 00:00:00 2001 From: Zhoneym <140673973+Zhoneym@users.noreply.github.com> Date: Wed, 26 Feb 2025 13:09:47 +0800 Subject: [PATCH 3/3] Update spack_devtools.yaml --- .../spack/configs/linux_ubuntu_22/spack_devtools.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/spack/configs/linux_ubuntu_22/spack_devtools.yaml b/scripts/spack/configs/linux_ubuntu_22/spack_devtools.yaml index fa2bf13b..33587878 100644 --- a/scripts/spack/configs/linux_ubuntu_22/spack_devtools.yaml +++ b/scripts/spack/configs/linux_ubuntu_22/spack_devtools.yaml @@ -6,7 +6,7 @@ spack: compilers:: - compiler: - spec: gcc@11.4.0 + spec: gcc@14.2.1 paths: cc: /usr/bin/gcc cxx: /usr/bin/g++ @@ -15,13 +15,13 @@ spack: flags: cflags: -pthread cxxflags: -pthread - operating_system: ubuntu22.04 + operating_system: archlinux target: x86_64 modules: [] environment: {} extra_rpaths: [] - compiler: - spec: clang@14.0.0 + spec: clang@19.1.7 paths: cc: /usr/bin/clang cxx: /usr/bin/clang++ @@ -30,7 +30,7 @@ spack: flags: cflags: -pthread cxxflags: -pthread - operating_system: ubuntu22.04 + operating_system: archlinux target: x86_64 modules: [] environment: {} @@ -175,4 +175,4 @@ spack: raja: version: ["@2024.07.0~shared~examples~exercises"] umpire: - version: ["@2024.07.0~shared~examples"] \ No newline at end of file + version: ["@2024.07.0~shared~examples"]