From e721eac52cf648849a14b9f8277cfcc2c7233e4a Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 13 Aug 2026 21:10:04 -0600 Subject: [PATCH 1/7] Store work in progress for neptune-dev-nvhpc --- configs/common/packages_nvhpc.yaml | 107 ++++++++++++++ .../tier2/bounty/packages_nvhpc-26.5.yaml | 37 +++++ .../spack.yaml.workinprogress | 32 ++++ .../packages/neptune_env/package.py | 5 +- .../lib/jcsda-emc/spack-stack/stack/common.py | 1 + ...vidia_nvhpc_26.5_install.sh.workinprogress | 138 ++++++++++++++++++ 6 files changed, 318 insertions(+), 2 deletions(-) create mode 100644 configs/common/packages_nvhpc.yaml create mode 100644 configs/sites/tier2/bounty/packages_nvhpc-26.5.yaml create mode 100644 configs/templates/neptune-dev-nvhpc/spack.yaml.workinprogress create mode 100755 util/nrl/nvidia_nvhpc_26.5_install.sh.workinprogress diff --git a/configs/common/packages_nvhpc.yaml b/configs/common/packages_nvhpc.yaml new file mode 100644 index 000000000..ceb5ce121 --- /dev/null +++ b/configs/common/packages_nvhpc.yaml @@ -0,0 +1,107 @@ +packages: + # Compiler preferences + c: + prefer: + - nvhpc + cxx: + prefer: + - nvhpc + fortran: + prefer: + - nvhpc + # Virtual provider settings + blas: + require: + - nvhpc + curl: + require: + - '%c=gcc' + fftw-api: + require: + - fftw + #- nvpl-fft + file: + require: + - '%c=gcc' + lapack: + require: + - nvhpc + # Individual package settings + antlr: + require: + - '%c,cxx=gcc' + bison: + require: + - '%c,cxx=gcc' + cmake: + require: + - '%c,cxx=gcc' + ectrans: + require: + - +fftw + #elfutils: + # require: + # - '@0.191:' + #libelf: + # buildable: false + gmake: + require: + - '%c=gcc' + go: + require: + - '%c,cxx=gcc' + # https://github.com/NOAA-EMC/NCEPLIBS-ip/issues/320 + ip: + require: + - ~openmp + libbsd: + require: + - '%c=gcc' + libffi: + require: + - '%c=gcc' + libiconv: + require: + - '%c=gcc' + libmd: + require: + - '%c=gcc' + libxml2: + require: + - '%c=gcc' + ninja: + require: + - '%c=gcc' + nco: + require: + - '%c,cxx=gcc' + numactl: + require: + - '%c=gcc' + patchelf: + require: + - '%c=gcc' + pkg-config: + require: + - '%c=gcc' + python: + require: + - '%c=gcc' + py-cython: + require: + - '%c=gcc' + #py-maturin: + # require: + # - '%c=gcc' + py-mpi4py: + require: + - '%c,cxx=gcc' + py-numpy: + require: + - '%c,cxx=gcc' + rust: + require: + - '%c,cxx=gcc' + zstd: + require: + - '%c,cxx=gcc' \ No newline at end of file diff --git a/configs/sites/tier2/bounty/packages_nvhpc-26.5.yaml b/configs/sites/tier2/bounty/packages_nvhpc-26.5.yaml new file mode 100644 index 000000000..3094e5134 --- /dev/null +++ b/configs/sites/tier2/bounty/packages_nvhpc-26.5.yaml @@ -0,0 +1,37 @@ +packages: + all: + require: + - any_of: ['%nvhpc@=26.5'] + when: '%nvhpc' + - any_of: ['%gcc@=11.5.0'] + when: '%gcc' + mpi: + buildable: false + require: + #- "nvhpc@=26.5" + - "openmpi@=5.0.10" + nvhpc: + buildable: false + externals: + - spec: nvhpc@26.5+blas+lapack~mpi + prefix: /home/dom/prod/nvhpc-26.5 + extra_attributes: + compilers: + c: /home/dom/prod/nvhpc-26.5/Linux_x86_64/26.5/compilers/bin/nvc + cxx: /home/dom/prod/nvhpc-26.5/Linux_x86_64/26.5/compilers/bin/nvc++ + fortran: /home/dom/prod/nvhpc-26.5/Linux_x86_64/26.5/compilers/bin/nvfortran + gcc: + buildable: false + externals: + - spec: gcc@11.5.0 languages:='c,c++' + prefix: /usr + extra_attributes: + compilers: + c: /usr/bin/gcc + cxx: /usr/bin/g++ + fortran: /usr/bin/gfortran + openmpi: + buildable: false + externals: + - spec: openmpi@5.0.10 ~internal-hwloc +two_level_namespace + prefix: /home/dom/prod/nvhpc-26.5/Linux_x86_64/26.5/comm_libs/13.2/hpcx/hpcx-2.50/ompi5 diff --git a/configs/templates/neptune-dev-nvhpc/spack.yaml.workinprogress b/configs/templates/neptune-dev-nvhpc/spack.yaml.workinprogress new file mode 100644 index 000000000..d6aba140b --- /dev/null +++ b/configs/templates/neptune-dev-nvhpc/spack.yaml.workinprogress @@ -0,0 +1,32 @@ +# spack-stack hash: 5ff752c0 +# spack hash: 0a2c2f21d5 +spack: + concretizer: + unify: when_possible + + view: false + include: + - site/packages_nvhpc-26.5.yaml + - site + - common/packages_nvhpc.yaml + - common/modules_tcl.yaml + - common + + specs: + #- dev-utils-env + - neptune-env ~debug +openmp +espc ~ncview ^esmf@=9.0.0b11 + #- neptune-env +debug +openmp +espc +ncview ^esmf@=9.0.0b11 + #- neptune-env ~debug ~openmp +espc +ncview ^esmf@=9.0.0b11 + #- neptune-env +debug ~openmp +espc +ncview ^esmf@=9.0.0b11 + + #- py-numpy + #- crtm@3.1.3 + + packages: + # Turn on python variant for esmf + esmf: + require: + - +python + develop: + ip: + spec: ip@=5.4.0 diff --git a/repos/spack_stack/spack_repo/spack_stack/packages/neptune_env/package.py b/repos/spack_stack/spack_repo/spack_stack/packages/neptune_env/package.py index 4126b477e..bfac80357 100644 --- a/repos/spack_stack/spack_repo/spack_stack/packages/neptune_env/package.py +++ b/repos/spack_stack/spack_repo/spack_stack/packages/neptune_env/package.py @@ -36,8 +36,9 @@ class NeptuneEnv(BundlePackage): depends_on("libyaml", type="run") depends_on("p4est", type="run") depends_on("w3emc", type="run") - depends_on("ip ~openmp", type="run", when="~openmp") - depends_on("ip +openmp", type="run", when="+openmp") + #depends_on("ip ~openmp", type="run", when="~openmp") + #depends_on("ip +openmp", type="run", when="+openmp") + depends_on("ip", type="run") depends_on("esmf ~debug ~openmp", type="run", when="~debug ~openmp") depends_on("esmf ~debug +openmp", type="run", when="~debug +openmp") depends_on("esmf +debug ~openmp", type="run", when="+debug ~openmp") diff --git a/spack-ext/lib/jcsda-emc/spack-stack/stack/common.py b/spack-ext/lib/jcsda-emc/spack-stack/stack/common.py index 5379715e1..5333e1c97 100644 --- a/spack-ext/lib/jcsda-emc/spack-stack/stack/common.py +++ b/spack-ext/lib/jcsda-emc/spack-stack/stack/common.py @@ -20,6 +20,7 @@ "intel-oneapi-compilers-classic" : "intel", "intel-oneapi-compilers" : "oneapi", "llvm" : "llvm", + "nvhpc" : "nvhpc", # MPI "cray-mpich" : "cray-mpich", "intel-oneapi-mpi" : "impi", diff --git a/util/nrl/nvidia_nvhpc_26.5_install.sh.workinprogress b/util/nrl/nvidia_nvhpc_26.5_install.sh.workinprogress new file mode 100755 index 000000000..97e084629 --- /dev/null +++ b/util/nrl/nvidia_nvhpc_26.5_install.sh.workinprogress @@ -0,0 +1,138 @@ +#!/usr/bin/env bash + +# Utility script to install Intel oneAPI 2026.0.0, fix non-ascii characters +# in the Intel auto-generated modulefiles (bug filed with Intel to correct +# upstream) on non-Cray systems, or to create a single module on Cray systems. + +# Missing: patching of libirc.so and libimf.so to add the missing symbolic +# links to libc.so.6 and libm.so.6. + +"""" + 1009 wget https://developer.download.nvidia.com/hpc-sdk/26.5/nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz + 1010 ls + 1011 tar xpzf nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz + 1012 ls + 1013 ls nvhpc_2026_265_Linux_x86_64_cuda_13.2 + 1014 nvhpc_2026_265_Linux_x86_64_cuda_13.2/install --help + 1015 nvhpc_2026_265_Linux_x86_64_cuda_13.2/install -h + 1016 nvhpc_2026_265_Linux_x86_64_cuda_13.2/install + 1017 ls /home/dom/prod/nvhpc-26.5/modulefiles/nvhpc/26.5 + 1018 ls /home/dom/prod/nvhpc-26.5/modulefiles + 1019 pwd + 1020 ls + 1021 rm -fr nvhpc_2026_265_Linux_x86_64_cuda_13.2 + 1022 ls ../modulefiles/ + 1023 ls .. + 1024 find ../Linux_x86_64/ -iname '*nvpl*' + 1025 find .. -iname '*nvpl*' + 1026 [wd + 1027 pwd + 1028 cd .. + 1029 ls + 1030 cd Linux_x86_64/26.5/math_libs/ + 1031 ls + 1032 ls -l 13.2/lib64/ + 1033 pwd + 1034 history + + + [dom@bounty nvhpc-26.5]$ ln -sf Linux_x86_64/26.5/compilers/include . +[dom@bounty nvhpc-26.5]$ pwd +/home/dom/prod/nvhpc-26.5 + +"""" + +set -eu + +umask 0022 +module purge + +if [ "$#" -lt 1 ]; then + echo "Error: Not enough arguments. Provide Intel oneAPI installation prefix." + exit 1 +fi + +wget https://developer.download.nvidia.com/hpc-sdk/26.5/nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz +tar xpzf nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz +nvhpc_2026_265_Linux_x86_64_cuda_13.2/install + +NVHPC_INSTALL_DIR=${1} +NVHPC_VERSION="2026.0.0" +COMPILER_VERSION="2026.0" +MKL_VERSION="2026.0" +NVHPC_DOWNLOAD_URL=https://registrationcenter-download.intel.com/akdlm/IRC_NAS/71180075-e4e3-4c6f-bbbb-19017ed0cf7d/intel-oneapi-toolkit-2026.0.0.198_offline.sh + +mkdir -p ${NVHPC_INSTALL_DIR}/src +cd ${NVHPC_INSTALL_DIR}/src +wget ${NVHPC_DOWNLOAD_URL} +NVHPC_INSTALL_SCRIPT="${NVHPC_DOWNLOAD_URL##*/}" +sh ./${NVHPC_INSTALL_SCRIPT} -a --silent --eula accept --install-dir ${NVHPC_INSTALL_DIR} --intel-sw-improvement-program-consent decline 2>&1 | tee log.install + +# Check that compiler and mkl versions are correct +if [ ! -d "${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}" ]; then + echo "Error, directory ${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION} does not exist" + exit 1 +fi +if [ ! -d "${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}" ]; then + echo "Error, directory ${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION} does not exist" + exit 1 +fi + +# Create modulefiles - special modules for Cray, Intel auto-generated modules elsewhere +HOSTNAME=$(hostname) +if [[ "${HOSTNAME}" == *"blueback"* || "${HOSTNAME}" == *"narwhal"* ]]; then + mkdir -p ${NVHPC_INSTALL_DIR}/modulefiles/intel-oneapi + cat << EOF > ${NVHPC_INSTALL_DIR}/modulefiles/intel-oneapi/2026.0.0 +#%Module +# +# Intel oneAPI module +# + +conflict intel +conflict intel-classic +conflict intel-oneapi + +set INTEL_CURPATH ${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION} +set INTEL_LEVEL ${COMPILER_VERSION} + +setenv INTEL_PATH \$INTEL_CURPATH +setenv INTEL_VERSION \$INTEL_LEVEL +setenv INTEL_COMPILER_TYPE "NVHPC" + +prepend-path {LD_LIBRARY_PATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/opt/compiler/lib:${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/lib} +setenv {OCL_ICD_FILENAMES} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/lib/libintelocl.so} +setenv {CMPLR_ROOT} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}} +prepend-path {CMAKE_PREFIX_PATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}} +prepend-path {NLSPATH} {} +prepend-path {LIBRARY_PATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/lib} +prepend-path {DIAGUTIL_PATH} {} +prepend-path {MANPATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/share/man} +prepend-path {PATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/bin} +prepend-path {PKG_CONFIG_PATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/lib/pkgconfig} +prepend-path {LD_LIBRARY_PATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/lib} +prepend-path {CMAKE_PREFIX_PATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/lib/cmake} +prepend-path {CPATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/include} +prepend-path {LIBRARY_PATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/lib} +setenv {MKLROOT} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}} +prepend-path {PATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/bin} +prepend-path {PKG_CONFIG_PATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/lib/pkgconfig} + +proc ModulesHelp { } { + global INTEL_LEVEL + global INTEL_CURPATH +} + +# This module was produced with dom-gen 0.0.1 + +module-whatis "Intel oneAPI compiler" +EOF + +else + cd ${NVHPC_INSTALL_DIR} + ./modulefiles-setup.sh --output-dir=${NVHPC_INSTALL_DIR}/modulefiles --ignore-latest 2>&1 | tee log.modulefiles + # Fix non-ascii symbols in Intel modulefiles; must follow links + for file in `find ./modulefiles -type l`; do + echo $file + sed -i --follow-symlinks 's/®//g' $file + done +fi From bc6d9494acb5450f981b59c662ed0923b62865ce Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 18 Aug 2026 14:10:23 -0600 Subject: [PATCH 2/7] Update submodule pointer for repos/builtin (ip@5.4.0 % nvhpc) --- repos/builtin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/builtin b/repos/builtin index b54622924..0421af92f 160000 --- a/repos/builtin +++ b/repos/builtin @@ -1 +1 @@ -Subproject commit b54622924db4c99df15d1e57528d11a3865d5d2f +Subproject commit 0421af92f864970b2dde51548e7fadba211c3cd5 From fa5fe3e1073b11240cae4b0de46ebbb04b4704be Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 18 Aug 2026 13:55:26 -0600 Subject: [PATCH 3/7] Update configs/templates/neptune-dev-nvhpc/spack.yaml and repos/spack_stack/spack_repo/spack_stack/packages/neptune_env/package.py for nvhpc --- .../spack.yaml.workinprogress | 24 +++++++------------ .../packages/neptune_env/package.py | 9 ++++--- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/configs/templates/neptune-dev-nvhpc/spack.yaml.workinprogress b/configs/templates/neptune-dev-nvhpc/spack.yaml.workinprogress index d6aba140b..adf6cfcc0 100644 --- a/configs/templates/neptune-dev-nvhpc/spack.yaml.workinprogress +++ b/configs/templates/neptune-dev-nvhpc/spack.yaml.workinprogress @@ -1,25 +1,20 @@ -# spack-stack hash: 5ff752c0 -# spack hash: 0a2c2f21d5 +# Template for NEPTUNE development +# spack: concretizer: unify: when_possible view: false - include: - - site/packages_nvhpc-26.5.yaml - - site - - common/packages_nvhpc.yaml - - common/modules_tcl.yaml - - common + include: [] specs: #- dev-utils-env - - neptune-env ~debug +openmp +espc ~ncview ^esmf@=9.0.0b11 - #- neptune-env +debug +openmp +espc +ncview ^esmf@=9.0.0b11 - #- neptune-env ~debug ~openmp +espc +ncview ^esmf@=9.0.0b11 - #- neptune-env +debug ~openmp +espc +ncview ^esmf@=9.0.0b11 + - neptune-env ~debug +openmp +nvhpc +espc ~ncview ^esmf@=9.0.0b11 + - neptune-env +debug +openmp +nvhpc +espc +ncview ^esmf@=9.0.0b11 + - neptune-env ~debug ~openmp +nvhpc +espc +ncview ^esmf@=9.0.0b11 + - neptune-env +debug ~openmp +nvhpc +espc +ncview ^esmf@=9.0.0b11 - #- py-numpy + - py-numpy #- crtm@3.1.3 packages: @@ -27,6 +22,3 @@ spack: esmf: require: - +python - develop: - ip: - spec: ip@=5.4.0 diff --git a/repos/spack_stack/spack_repo/spack_stack/packages/neptune_env/package.py b/repos/spack_stack/spack_repo/spack_stack/packages/neptune_env/package.py index bfac80357..f131fc928 100644 --- a/repos/spack_stack/spack_repo/spack_stack/packages/neptune_env/package.py +++ b/repos/spack_stack/spack_repo/spack_stack/packages/neptune_env/package.py @@ -24,6 +24,8 @@ class NeptuneEnv(BundlePackage): variant("ncview", default=False, description="Build ncview") variant("debug", default=False, description="Build debug version of selected dependencies") variant("openmp", default=True, description="Build OpenMP-enabled versions of dependencies") + # Because spack doesn't support "with when not" + variant("nvhpc", default=False, description="Flag to signal building with nvhpc") depends_on("base-env", type="run") @@ -36,9 +38,10 @@ class NeptuneEnv(BundlePackage): depends_on("libyaml", type="run") depends_on("p4est", type="run") depends_on("w3emc", type="run") - #depends_on("ip ~openmp", type="run", when="~openmp") - #depends_on("ip +openmp", type="run", when="+openmp") - depends_on("ip", type="run") + depends_on("ip ~openmp", type="run", when="~openmp") + # https://github.com/NOAA-EMC/NCEPLIBS-ip/issues/320 + depends_on("ip ~openmp", type="run", when="+openmp +nvhpc") + depends_on("ip +openmp", type="run", when="+openmp ~nvhpc") depends_on("esmf ~debug ~openmp", type="run", when="~debug ~openmp") depends_on("esmf ~debug +openmp", type="run", when="~debug +openmp") depends_on("esmf +debug ~openmp", type="run", when="+debug ~openmp") From e0de83589ac4ad97e4ae6d1cc561e4e9a027bb36 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 18 Aug 2026 14:13:02 -0600 Subject: [PATCH 4/7] Clean up configs/common/packages_nvhpc.yaml --- configs/common/packages_nvhpc.yaml | 20 +-- .../{spack.yaml.workinprogress => spack.yaml} | 0 ...vidia_nvhpc_26.5_install.sh.workinprogress | 138 ------------------ 3 files changed, 6 insertions(+), 152 deletions(-) rename configs/templates/neptune-dev-nvhpc/{spack.yaml.workinprogress => spack.yaml} (100%) delete mode 100755 util/nrl/nvidia_nvhpc_26.5_install.sh.workinprogress diff --git a/configs/common/packages_nvhpc.yaml b/configs/common/packages_nvhpc.yaml index ceb5ce121..57b74373e 100644 --- a/configs/common/packages_nvhpc.yaml +++ b/configs/common/packages_nvhpc.yaml @@ -13,16 +13,10 @@ packages: blas: require: - nvhpc - curl: - require: - - '%c=gcc' fftw-api: require: - fftw #- nvpl-fft - file: - require: - - '%c=gcc' lapack: require: - nvhpc @@ -36,14 +30,15 @@ packages: cmake: require: - '%c,cxx=gcc' + curl: + require: + - '%c=gcc' ectrans: require: - +fftw - #elfutils: - # require: - # - '@0.191:' - #libelf: - # buildable: false + file: + require: + - '%c=gcc' gmake: require: - '%c=gcc' @@ -90,9 +85,6 @@ packages: py-cython: require: - '%c=gcc' - #py-maturin: - # require: - # - '%c=gcc' py-mpi4py: require: - '%c,cxx=gcc' diff --git a/configs/templates/neptune-dev-nvhpc/spack.yaml.workinprogress b/configs/templates/neptune-dev-nvhpc/spack.yaml similarity index 100% rename from configs/templates/neptune-dev-nvhpc/spack.yaml.workinprogress rename to configs/templates/neptune-dev-nvhpc/spack.yaml diff --git a/util/nrl/nvidia_nvhpc_26.5_install.sh.workinprogress b/util/nrl/nvidia_nvhpc_26.5_install.sh.workinprogress deleted file mode 100755 index 97e084629..000000000 --- a/util/nrl/nvidia_nvhpc_26.5_install.sh.workinprogress +++ /dev/null @@ -1,138 +0,0 @@ -#!/usr/bin/env bash - -# Utility script to install Intel oneAPI 2026.0.0, fix non-ascii characters -# in the Intel auto-generated modulefiles (bug filed with Intel to correct -# upstream) on non-Cray systems, or to create a single module on Cray systems. - -# Missing: patching of libirc.so and libimf.so to add the missing symbolic -# links to libc.so.6 and libm.so.6. - -"""" - 1009 wget https://developer.download.nvidia.com/hpc-sdk/26.5/nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz - 1010 ls - 1011 tar xpzf nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz - 1012 ls - 1013 ls nvhpc_2026_265_Linux_x86_64_cuda_13.2 - 1014 nvhpc_2026_265_Linux_x86_64_cuda_13.2/install --help - 1015 nvhpc_2026_265_Linux_x86_64_cuda_13.2/install -h - 1016 nvhpc_2026_265_Linux_x86_64_cuda_13.2/install - 1017 ls /home/dom/prod/nvhpc-26.5/modulefiles/nvhpc/26.5 - 1018 ls /home/dom/prod/nvhpc-26.5/modulefiles - 1019 pwd - 1020 ls - 1021 rm -fr nvhpc_2026_265_Linux_x86_64_cuda_13.2 - 1022 ls ../modulefiles/ - 1023 ls .. - 1024 find ../Linux_x86_64/ -iname '*nvpl*' - 1025 find .. -iname '*nvpl*' - 1026 [wd - 1027 pwd - 1028 cd .. - 1029 ls - 1030 cd Linux_x86_64/26.5/math_libs/ - 1031 ls - 1032 ls -l 13.2/lib64/ - 1033 pwd - 1034 history - - - [dom@bounty nvhpc-26.5]$ ln -sf Linux_x86_64/26.5/compilers/include . -[dom@bounty nvhpc-26.5]$ pwd -/home/dom/prod/nvhpc-26.5 - -"""" - -set -eu - -umask 0022 -module purge - -if [ "$#" -lt 1 ]; then - echo "Error: Not enough arguments. Provide Intel oneAPI installation prefix." - exit 1 -fi - -wget https://developer.download.nvidia.com/hpc-sdk/26.5/nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz -tar xpzf nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz -nvhpc_2026_265_Linux_x86_64_cuda_13.2/install - -NVHPC_INSTALL_DIR=${1} -NVHPC_VERSION="2026.0.0" -COMPILER_VERSION="2026.0" -MKL_VERSION="2026.0" -NVHPC_DOWNLOAD_URL=https://registrationcenter-download.intel.com/akdlm/IRC_NAS/71180075-e4e3-4c6f-bbbb-19017ed0cf7d/intel-oneapi-toolkit-2026.0.0.198_offline.sh - -mkdir -p ${NVHPC_INSTALL_DIR}/src -cd ${NVHPC_INSTALL_DIR}/src -wget ${NVHPC_DOWNLOAD_URL} -NVHPC_INSTALL_SCRIPT="${NVHPC_DOWNLOAD_URL##*/}" -sh ./${NVHPC_INSTALL_SCRIPT} -a --silent --eula accept --install-dir ${NVHPC_INSTALL_DIR} --intel-sw-improvement-program-consent decline 2>&1 | tee log.install - -# Check that compiler and mkl versions are correct -if [ ! -d "${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}" ]; then - echo "Error, directory ${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION} does not exist" - exit 1 -fi -if [ ! -d "${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}" ]; then - echo "Error, directory ${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION} does not exist" - exit 1 -fi - -# Create modulefiles - special modules for Cray, Intel auto-generated modules elsewhere -HOSTNAME=$(hostname) -if [[ "${HOSTNAME}" == *"blueback"* || "${HOSTNAME}" == *"narwhal"* ]]; then - mkdir -p ${NVHPC_INSTALL_DIR}/modulefiles/intel-oneapi - cat << EOF > ${NVHPC_INSTALL_DIR}/modulefiles/intel-oneapi/2026.0.0 -#%Module -# -# Intel oneAPI module -# - -conflict intel -conflict intel-classic -conflict intel-oneapi - -set INTEL_CURPATH ${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION} -set INTEL_LEVEL ${COMPILER_VERSION} - -setenv INTEL_PATH \$INTEL_CURPATH -setenv INTEL_VERSION \$INTEL_LEVEL -setenv INTEL_COMPILER_TYPE "NVHPC" - -prepend-path {LD_LIBRARY_PATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/opt/compiler/lib:${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/lib} -setenv {OCL_ICD_FILENAMES} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/lib/libintelocl.so} -setenv {CMPLR_ROOT} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}} -prepend-path {CMAKE_PREFIX_PATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}} -prepend-path {NLSPATH} {} -prepend-path {LIBRARY_PATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/lib} -prepend-path {DIAGUTIL_PATH} {} -prepend-path {MANPATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/share/man} -prepend-path {PATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/bin} -prepend-path {PKG_CONFIG_PATH} {${NVHPC_INSTALL_DIR}/compiler/${COMPILER_VERSION}/lib/pkgconfig} -prepend-path {LD_LIBRARY_PATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/lib} -prepend-path {CMAKE_PREFIX_PATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/lib/cmake} -prepend-path {CPATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/include} -prepend-path {LIBRARY_PATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/lib} -setenv {MKLROOT} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}} -prepend-path {PATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/bin} -prepend-path {PKG_CONFIG_PATH} {${NVHPC_INSTALL_DIR}/mkl/${MKL_VERSION}/lib/pkgconfig} - -proc ModulesHelp { } { - global INTEL_LEVEL - global INTEL_CURPATH -} - -# This module was produced with dom-gen 0.0.1 - -module-whatis "Intel oneAPI compiler" -EOF - -else - cd ${NVHPC_INSTALL_DIR} - ./modulefiles-setup.sh --output-dir=${NVHPC_INSTALL_DIR}/modulefiles --ignore-latest 2>&1 | tee log.modulefiles - # Fix non-ascii symbols in Intel modulefiles; must follow links - for file in `find ./modulefiles -type l`; do - echo $file - sed -i --follow-symlinks 's/®//g' $file - done -fi From c46984bcff06aafd2e9190998d385cd165e3969f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 18 Aug 2026 15:53:19 -0600 Subject: [PATCH 5/7] Add configs/sites/tier2/bounty/README_nvhpc-26.5.md --- ...EADME_gcc-14.2.1.yaml => README_gcc-14.2.1.md} | 0 configs/sites/tier2/bounty/README_nvhpc-26.5.md | 15 +++++++++++++++ 2 files changed, 15 insertions(+) rename configs/sites/tier2/bounty/{README_gcc-14.2.1.yaml => README_gcc-14.2.1.md} (100%) create mode 100644 configs/sites/tier2/bounty/README_nvhpc-26.5.md diff --git a/configs/sites/tier2/bounty/README_gcc-14.2.1.yaml b/configs/sites/tier2/bounty/README_gcc-14.2.1.md similarity index 100% rename from configs/sites/tier2/bounty/README_gcc-14.2.1.yaml rename to configs/sites/tier2/bounty/README_gcc-14.2.1.md diff --git a/configs/sites/tier2/bounty/README_nvhpc-26.5.md b/configs/sites/tier2/bounty/README_nvhpc-26.5.md new file mode 100644 index 000000000..6743acf12 --- /dev/null +++ b/configs/sites/tier2/bounty/README_nvhpc-26.5.md @@ -0,0 +1,15 @@ +WSL 2 Alma Linux 9 installation notes for NVHPC 26.5 compiler + +# Download and install nvhpc - interactive install only, +# cannot provide command line arguments. + +wget https://developer.download.nvidia.com/hpc-sdk/26.5/nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz +tar xpzf nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz +nvhpc_2026_265_Linux_x86_64_cuda_13.2/install + +# Bug fix for missing include directory (symbolic link) +cd +ln -s Linux_x86_64/26.5/compilers/include include + +# Needed for hpcx +yum install libnl3 From 0450bbb0e256cdc77ce7c81014c0ba471e435ebb Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 19 Aug 2026 16:02:14 -0600 Subject: [PATCH 6/7] [skip ci] From e1631c31196e55fe55350b8787fd4a5f772c9caf Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 20 Aug 2026 14:06:20 -0600 Subject: [PATCH 7/7] [skip ci] Update configs/sites/tier2/bounty/README_nvhpc-26.5.md --- configs/sites/tier2/bounty/README_nvhpc-26.5.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/configs/sites/tier2/bounty/README_nvhpc-26.5.md b/configs/sites/tier2/bounty/README_nvhpc-26.5.md index 6743acf12..21c9ea680 100644 --- a/configs/sites/tier2/bounty/README_nvhpc-26.5.md +++ b/configs/sites/tier2/bounty/README_nvhpc-26.5.md @@ -1,8 +1,6 @@ WSL 2 Alma Linux 9 installation notes for NVHPC 26.5 compiler -# Download and install nvhpc - interactive install only, -# cannot provide command line arguments. - +# Download and install nvhpc, for example: wget https://developer.download.nvidia.com/hpc-sdk/26.5/nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz tar xpzf nvhpc_2026_265_Linux_x86_64_cuda_13.2.tar.gz nvhpc_2026_265_Linux_x86_64_cuda_13.2/install