diff --git a/.github/workflows/ubuntu-ci-x86_64-intel.yaml b/.github/workflows/ubuntu-ci-x86_64-intel.yaml index a4a299b2b..406e51235 100644 --- a/.github/workflows/ubuntu-ci-x86_64-intel.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-intel.yaml @@ -96,6 +96,17 @@ jobs: echo " - spec: intel-oneapi-mpi@2021.10.0%intel@2021.10.0" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml echo " prefix: /opt/intel/oneapi" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml + # Add external Intel MKL and oneAPI runtime + echo "" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml + echo " intel-oneapi-mkl:" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml + echo " externals:" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml + echo " - spec: intel-oneapi-mkl@2023.2.0%intel@2021.10.0" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml + echo " prefix: /opt/intel/oneapi" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml + #echo " intel-oneapi-runtime:" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml + #echo " externals:" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml + #echo " - spec: intel-oneapi-runtime@2023.2.0%oneapi@2024.2.0" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml + #echo " prefix: /opt/intel/oneapi" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml + # Add external ecflow for Intel echo "" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml echo " ecflow::" >> ${SPACK_SYSTEM_CONFIG_PATH}/packages.yaml diff --git a/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml b/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml index 585bcc773..d99fc079c 100644 --- a/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml +++ b/.github/workflows/ubuntu-ci-x86_64-oneapi.yaml @@ -84,8 +84,6 @@ jobs: echo " target: x86_64" >> ${SPACK_SYSTEM_CONFIG_PATH}/compilers.yaml echo " modules: []" >> ${SPACK_SYSTEM_CONFIG_PATH}/compilers.yaml echo " environment: {}" >> ${SPACK_SYSTEM_CONFIG_PATH}/compilers.yaml - echo " #prepend_path:" >> ${SPACK_SYSTEM_CONFIG_PATH}/compilers.yaml - echo " # LD_LIBRARY_PATH: '/opt/intel/oneapi/compiler/2023.2.3/linux/compiler/lib/intel64_lin'" >> ${SPACK_SYSTEM_CONFIG_PATH}/compilers.yaml echo " extra_rpaths: []" >> ${SPACK_SYSTEM_CONFIG_PATH}/compilers.yaml # Need to find external Intel MPI and annotate with the diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 353220c0e..bbd16064b 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -1,274 +1,272 @@ -# Pin versions and specs when building packages - packages: - # - all: - providers: - blas: [openblas] - fftw-api: [fftw] - gl: [opengl] - glu: [openglu] - jpeg: [libjpeg-turbo] - lapack: [openblas] - pkgconfig: [pkg-config] - yacc: [bison] - zlib-api: [zlib-ng] - # - awscli-v2: - require: '~examples' - bacio: - require: '@2.4.1' - bison: - require: '@3.4:' - # 1.85 incompatible with ecflow@5.11.4 - use latest 'good version' - boost: - require: '@1.84 ~atomic +chrono +date_time +exception +filesystem ~graph ~iostreams ~locale ~log ~math ~mpi ~numpy +pic +program_options +python ~random +regex +serialization ~signals +system +test +thread +timer ~wave cxxstd=17 visibility=hidden' - bufr: - require: '@12.0.1 +python' - cairo: - require: '+pic' - cdo: - require: '@2.3.0 ~openmp' - cmake: - version: ['3.27.9'] - require: '+ownlibs' - # Attention - when updating also check the various jcsda-emc-bundles env packages - crtm: - require: '+fix' - ecbuild: - require: '@3.7.2' - eccodes: - require: '@2.33.0 +png +tools' - ecflow: - require: '@5.11.4 +ui' - eckit: - require: '@1.24.5 linalg=eigen,lapack compression=lz4,bzip2' - ecmwf-atlas: - require: '@0.38.1 +fckit +trans +tesselation +fftw' - ectrans: - require: '@1.2.0 ~mkl +fftw' - eigen: - require: '@3.4.0' - # Attention - when updating the version also check the common modules.yaml - # config and update the projections for lmod/tcl. - # Also, check the acorn and derecho site configs which have esmf modifications. - esmf: - require: - - '~xerces ~pnetcdf +shared +external-parallelio' - - any_of: ['@=8.6.1 snapshot=none', '@=8.7.0b11 snapshot=b11'] - - any_of: ['fflags="-fp-model precise" cxxflags="-fp-model precise"'] - when: "%intel" - message: "Extra ESMF compile options for Intel" - #- any_of: [''] - # when: "%gcc" - # message: "Extra ESMF compile options for GCC" - #- any_of: [''] - # when: "%apple-clang" - # message: "Extra ESMF compile options for GCC" - fckit: - require: '@0.11.0 +eckit' - fftw: - require: '@3.3.10' - fiat: - require: '@1.2.0' - flex: - # Pin version to avoid duplicates - require: '@2.6.4' - fms: - require: '@2023.04' - variants: 'precision=32,64 +quad_precision +gfs_phys +openmp +pic constants=GFS build_type=Release +deprecated_io' - fontconfig: - require: '+pic' - freetype: - require: '+pic' - g2: - require: '@3.4.9' - g2c: - require: '@1.6.4' - g2tmpl: - require: - - '@1.10.2' - gcc-runtime: - require: '%gcc' - gfsio: - require: '@1.4.1' - #git-lfs: - # Assume git-lfs is provided, hard to install - # because of dependencies on go/go-bootstrap. - # Note: Uncommenting this entry will break - # the container builds. - #require: '@2.11.0' - grib-util: - require: '@1.4.0' - gsibec: - require: '@1.2.1' - gsi-ncdiag: - require: '@1.1.2' - gsl-lite: - require: '@0.37.0' - hdf: - require: '@4.2.15 +external-xdr ~fortran ~netcdf' - hdf5: - require: '@1.14.3 +hl +fortran +mpi +threadsafe ~szip' - # Newer versions of hdf-eos2 require manual downloading, avoid - hdf-eos2: - require: '@2.20v1.00' - ip: - require: '@5.0.0 precision=4,d,8' - ip2: - require: '@1.1.2' - jasper: - require: '@2.0.32' - jedi-cmake: - require: '@1.4.0' - landsfcutil: - require: '@2.4.1' - libjpeg-turbo: - require: '@2.1.0' - libpng: - require: '@1.6.37 +pic' - # Newest version of magics needed for oneapi compilers - magics: - require: "@4.15.3:" - mapl: - require: '@2.46.2 +shared ~f2py' - variants: '+pflogger' - # If making changes here, also check the Discover site configs and the CI workflows - met: - require: '@11.1.1 +python +grib2' - metplus: - require: '@5.1.0' - metis: - require: '+int64 +real64' - mpich: - require: '~hwloc' - nco: - require: '@5.1.6 ~doc' - # ncview - when adding information here, also check Orion - # and Discover site configs - nemsio: - require: '@2.5.4' - nemsiogfs: - require: '@2.5.3' - nccmp: - require: '@1.9.0.1' - ncio: - require: '@1.1.2' - netcdf-c: - # If using 4.9.1, turn off byterange variant to fix compile error: ~byterange - require: '@4.9.2 +dap +mpi ~parallel-netcdf ~szip build_system=autotools' - netcdf-cxx4: - require: '@4.3.1' - netcdf-fortran: - require: '@4.6.1' - # ninja - when adding information here, also check Discover site config - odc: - require: '@1.4.6 ~fortran' - openblas: - require: '@0.3.24 +noavx512' - openmpi: - require: '~internal-hwloc +two_level_namespace' - openssl: - require: '+shared' - p4est: - require: '@2.8' - parallelio: - require: '@2.6.2 +pnetcdf' - parallel-netcdf: - require: '@1.12.3' - pflogger: - require: '+mpi' - pixman: - require: '+pic' - prod-util: - require: '@2.1.1' - proj: - require: '~tiff' - python: - require: '@3.10.13' - py-attrs: - # https://github.com/JCSDA/spack-stack/issues/740 - require: '@21.4.0' - py-cartopy: - require: '+plotting' - py-cryptography: - require: '+rust_bootstrap' - # Introduced in https://github.com/JCSDA/spack-stack/pull/894, pin py-cython - # to avoid duplicate packages being built (cylc dependencies soft-want @3:) - py-cython: - require: '@0.29.36' - # As long as we need the "delayed" variant for py-dask, - # we are restricted to version 2021.03.0 (last one that has it) - # and newer than 2021.01.0 because of these issues: - # https://github.com/JCSDA/spack-stack/issues/1216 - # https://github.com/pydata/xarray/issues/8917 - py-dask: - require: '@2021.3.0' - # To avoid duplicate packages - py-flit-core: - require: '@3.8.0' - py-h5py: - require: '~mpi' - ## To avoid duplicate packages - #py-jinja2: - # require: '@3.1.2' - py-meson-python: - require: '@0.15.0' - # Comment out for now until build problems are solved - # https://github.com/jcsda/spack-stack/issues/522 - # see also ewok-env virtual package and container - # README.md - #py-mysql-connector-python: - # require: '@8.0.32' - py-netcdf4: - require: '@1.5.8 ~mpi' - # py-numpy@1.26 causes many build problems with older Python packages - # also check Nautilus site config when making changes here - py-numpy: - require: - - '@:1.25' - py-pandas: - require: '+excel' - py-pybind11: - require: '@2.11.0' - # Pin the py-setuptools version to avoid duplicate Python packages - py-setuptools: - require: '@63.4.3' - py-setuptools-rust: - require: '+rust_bootstrap' - py-shapely: - require: '@1.8.0' - py-torch: - require: '+custom-protobuf ~mkldnn' - # To avoid duplicate packages - py-urllib3: - require: '@1.26.12' - qt: - require: '@5' - scotch: - require: '@7.0.4 +mpi+metis~shared~threads~mpi_thread+noarch' - sfcio: - require: '@1.4.1' - shumlib: - require: '@macos_clang_linux_intel_port' - sigio: - require: '@2.3.2' - sp: - require: '@2.5.0 precision=4,d,8' - udunits: - require: '@2.2.28' - ufs-utils: - require: '@1.13.0' - # Note - we can remove upp from stack at some point? - upp: - require: '@10.0.10' - # Need extradeps for grib-utils, enable by default to avoid duplicate packages - w3emc: - require: '@2.10.0 precision=4,d,8 +extradeps' - w3nco: - require: '@2.4.1' - wgrib2: - require: '@3.1.1' - wrf-io: - require: '@1.2.0' - zstd: - require: '@1.5.2 +programs' +packages: + # + all: + providers: + gl: [opengl] + glu: [openglu] + jpeg: [libjpeg-turbo] + pkgconfig: [pkg-config] + yacc: [bison] + zlib-api: [zlib-ng] + # + awscli-v2: + require: '~examples' + bacio: + require: '@2.4.1' + bison: + require: '@3.4:' + # 1.85 incompatible with ecflow@5.11.4 - use latest 'good version' + boost: + require: '@1.84 ~atomic +chrono +date_time +exception +filesystem ~graph ~iostreams ~locale ~log ~math ~mpi ~numpy +pic +program_options +python ~random +regex +serialization ~signals +system +test +thread +timer ~wave cxxstd=17 visibility=hidden' + bufr: + require: '@12.0.1 +python' + cairo: + require: '+pic' + cdo: + require: '@2.3.0 ~openmp' + cmake: + version: ['3.27.9'] + require: '+ownlibs' + # Attention - when updating also check the various jcsda-emc-bundles env packages + crtm: + require: '+fix' + ecbuild: + require: '@3.7.2' + eccodes: + require: '@2.33.0 +png +tools' + ecflow: + require: '@5.11.4 +ui' + eckit: + require: '@1.24.5 linalg=eigen,lapack compression=lz4,bzip2' + ecmwf-atlas: + require: '@0.38.1 +fckit +trans +tesselation +fftw' + ectrans: + require: + - '@1.2.0' + eigen: + require: '@3.4.0' + # Attention - when updating the version also check the common modules.yaml + # config and update the projections for lmod/tcl. + # Also, check the acorn and derecho site configs which have esmf modifications. + esmf: + require: + - '~xerces ~pnetcdf +shared +external-parallelio' + - any_of: ['@=8.6.1 snapshot=none', '@=8.7.0b11 snapshot=b11'] + - any_of: ['fflags="-fp-model precise" cxxflags="-fp-model precise"'] + when: "%intel" + message: "Extra ESMF compile options for Intel" + #- any_of: [''] + # when: "%gcc" + # message: "Extra ESMF compile options for GCC" + #- any_of: [''] + # when: "%apple-clang" + # message: "Extra ESMF compile options for GCC" + fckit: + require: '@0.11.0 +eckit' + fftw: + require: '@3.3.10' + fiat: + require: '@1.2.0' + flex: + # Pin version to avoid duplicates + require: '@2.6.4' + fms: + require: '@2023.04' + variants: 'precision=32,64 +quad_precision +gfs_phys +openmp +pic constants=GFS build_type=Release +deprecated_io' + fontconfig: + require: '+pic' + freetype: + require: '+pic' + g2: + require: '@3.4.9' + g2c: + require: '@1.6.4' + g2tmpl: + require: + - '@1.10.2' + gcc-runtime: + require: '%gcc' + gfsio: + require: '@1.4.1' + #git-lfs: + # Assume git-lfs is provided, hard to install + # because of dependencies on go/go-bootstrap. + # Note: Uncommenting this entry will break + # the container builds. + #require: '@2.11.0' + grib-util: + require: '@1.4.0' + gsibec: + require: + - '@1.2.1' + gsi-ncdiag: + require: '@1.1.2' + gsl-lite: + require: '@0.37.0' + hdf: + require: '@4.2.15 +external-xdr ~fortran ~netcdf' + hdf5: + require: '@1.14.3 +hl +fortran +mpi +threadsafe ~szip' + # Newer versions of hdf-eos2 require manual downloading, avoid + hdf-eos2: + require: '@2.20v1.00' + ip: + require: '@5.0.0 precision=4,d,8' + ip2: + require: '@1.1.2' + jasper: + require: '@2.0.32' + jedi-cmake: + require: '@1.4.0' + landsfcutil: + require: '@2.4.1' + libjpeg-turbo: + require: '@2.1.0' + libpng: + require: '@1.6.37 +pic' + # Newest version of magics needed for oneapi compilers + magics: + require: "@4.15.3:" + mapl: + require: '@2.46.2 +shared ~f2py' + variants: '+pflogger' + # If making changes here, also check the Discover site configs and the CI workflows + met: + require: '@11.1.1 +python +grib2' + metplus: + require: '@5.1.0' + metis: + require: '+int64 +real64' + mpich: + require: '~hwloc' + nco: + require: '@5.1.6 ~doc' + # ncview - when adding information here, also check Orion + # and Discover site configs + nemsio: + require: '@2.5.4' + nemsiogfs: + require: '@2.5.3' + nccmp: + require: '@1.9.0.1' + ncio: + require: '@1.1.2' + netcdf-c: + # If using 4.9.1, turn off byterange variant to fix compile error: ~byterange + require: '@4.9.2 +dap +mpi ~parallel-netcdf ~szip build_system=autotools' + netcdf-cxx4: + require: '@4.3.1' + netcdf-fortran: + require: '@4.6.1' + # ninja - when adding information here, also check Discover site config + odc: + require: '@1.5.2 ~fortran' + openblas: + require: '@0.3.24 +noavx512' + openmpi: + require: '~internal-hwloc +two_level_namespace' + openssl: + require: '+shared' + p4est: + require: '@2.8' + parallelio: + require: '@2.6.2 +pnetcdf' + parallel-netcdf: + require: '@1.12.3' + pflogger: + require: '+mpi' + pixman: + require: '+pic' + prod-util: + require: '@2.1.1' + proj: + require: '~tiff' + python: + require: '@3.10.13' + py-attrs: + # https://github.com/JCSDA/spack-stack/issues/740 + require: '@21.4.0' + py-cartopy: + require: '+plotting' + py-cryptography: + require: '+rust_bootstrap' + # Introduced in https://github.com/JCSDA/spack-stack/pull/894, pin py-cython + # to avoid duplicate packages being built (cylc dependencies soft-want @3:) + py-cython: + require: '@0.29.36' + # As long as we need the "delayed" variant for py-dask, + # we are restricted to version 2021.03.0 (last one that has it) + # and newer than 2021.01.0 because of these issues: + # https://github.com/JCSDA/spack-stack/issues/1216 + # https://github.com/pydata/xarray/issues/8917 + py-dask: + require: '@2021.3.0' + # To avoid duplicate packages + py-flit-core: + require: '@3.8.0' + py-h5py: + require: '~mpi' + ## To avoid duplicate packages + #py-jinja2: + # require: '@3.1.2' + py-meson-python: + require: '@0.15.0' + # Comment out for now until build problems are solved + # https://github.com/jcsda/spack-stack/issues/522 + # see also ewok-env virtual package and container + # README.md + #py-mysql-connector-python: + # require: '@8.0.32' + py-netcdf4: + require: '@1.5.8 ~mpi' + # py-numpy@1.26 causes many build problems with older Python packages + # also check Nautilus site config when making changes here + py-numpy: + require: + - '@:1.25' + py-pandas: + require: '+excel' + py-pybind11: + require: '@2.11.0' + # Pin the py-setuptools version to avoid duplicate Python packages + py-setuptools: + require: '@63.4.3' + py-setuptools-rust: + require: '+rust_bootstrap' + py-shapely: + require: '@1.8.0' + py-torch: + require: '+custom-protobuf ~mkldnn' + # To avoid duplicate packages + py-urllib3: + require: '@1.26.12' + qt: + require: '@5' + scotch: + require: '@7.0.4 +mpi+metis~shared~threads~mpi_thread+noarch' + sfcio: + require: '@1.4.1' + shumlib: + require: '@macos_clang_linux_intel_port' + sigio: + require: '@2.3.2' + sp: + require: '@2.5.0 precision=4,d,8' + udunits: + require: '@2.2.28' + ufs-utils: + require: '@1.13.0' + # Note - we can remove upp from stack at some point? + upp: + require: '@10.0.10' + # Need extradeps for grib-utils, enable by default to avoid duplicate packages + w3emc: + require: '@2.10.0 precision=4,d,8 +extradeps' + w3nco: + require: '@2.4.1' + wgrib2: + require: '@3.1.1' + wrf-io: + require: '@1.2.0' + zstd: + require: '@1.5.2 +programs' diff --git a/configs/common/packages_apple-clang.yaml b/configs/common/packages_apple-clang.yaml new file mode 100644 index 000000000..70012d1a0 --- /dev/null +++ b/configs/common/packages_apple-clang.yaml @@ -0,0 +1,15 @@ +packages: + all: + providers: + blas: [openblas] + fftw-api: [fftw] + lapack: [openblas] + ectrans: + require: + - '~mkl +fftw' + gsibec: + require: + - '~mkl' + py-numpy: + require: + - '^openblas' diff --git a/configs/common/packages_gcc.yaml b/configs/common/packages_gcc.yaml new file mode 100644 index 000000000..70012d1a0 --- /dev/null +++ b/configs/common/packages_gcc.yaml @@ -0,0 +1,15 @@ +packages: + all: + providers: + blas: [openblas] + fftw-api: [fftw] + lapack: [openblas] + ectrans: + require: + - '~mkl +fftw' + gsibec: + require: + - '~mkl' + py-numpy: + require: + - '^openblas' diff --git a/configs/common/packages_intel.yaml b/configs/common/packages_intel.yaml new file mode 100644 index 000000000..79fa77090 --- /dev/null +++ b/configs/common/packages_intel.yaml @@ -0,0 +1,20 @@ +packages: + all: + providers: + blas: [intel-oneapi-mkl] + fftw-api: [intel-oneapi-mkl] + lapack: [intel-oneapi-mkl] + ectrans: + require: + - '+mkl ~fftw' + # gettext 0.22.5 does not compile with Intel Classic compilers: + # malloca.c(49): error #3895: expected a comma (the one-argument version of static_assert is not enabled in this mode) + gettext: + require: + - '@:0.21' + gsibec: + require: + - '+mkl' + py-numpy: + require: + - '^intel-oneapi-mkl' diff --git a/configs/common/packages_oneapi.yaml b/configs/common/packages_oneapi.yaml new file mode 100644 index 000000000..6dec75f43 --- /dev/null +++ b/configs/common/packages_oneapi.yaml @@ -0,0 +1,23 @@ +packages: + all: + providers: + blas: [intel-oneapi-mkl] + fftw-api: [intel-oneapi-mkl] + lapack: [intel-oneapi-mkl] + ectrans: + require: + - '+mkl ~fftw' + gsibec: + require: + - '+mkl' + py-numpy: + require: + - '^intel-oneapi-mkl' + bison: + require: '%gcc' + gmake: + require: '%gcc' + libmd: + require: '%gcc' + libbsd: + require: '%gcc' diff --git a/configs/containers/specs/jedi-ci.yaml b/configs/containers/specs/jedi-ci.yaml index 13d11a99e..a3942234e 100644 --- a/configs/containers/specs/jedi-ci.yaml +++ b/configs/containers/specs/jedi-ci.yaml @@ -9,7 +9,7 @@ py-gitpython@3.1.40, py-h5py@3.8.0, py-numpy@1.22.3, py-pandas@1.5.3, py-pip, py-pyyaml@6.0, py-scipy@1.11.4, py-shapely@1.8.0, py-xarray@2023.7.0, sp@2.5.0, udunits@2.2.28, w3emc@2.10.0, nco@5.1.6, esmf@8.6.1, mapl@2.46.2, - zlib-ng@2.1.5, zstd@1.5.2, odc@1.4.6, shumlib@macos_clang_linux_intel_port, + zlib-ng@2.1.5, zstd@1.5.2, odc@1.5.2, shumlib@macos_clang_linux_intel_port, awscli-v2@2.13.22, py-globus-cli@3.16.0, # Added for new CI system 2024/04/30 py-ansi2html@1.6.0, py-pygithub@2.1.1, jq@1.6 ] diff --git a/configs/sites/tier1/acorn/packages.yaml b/configs/sites/tier1/acorn/packages.yaml index 7114e61e2..fcd79f254 100644 --- a/configs/sites/tier1/acorn/packages.yaml +++ b/configs/sites/tier1/acorn/packages.yaml @@ -1,15 +1,4 @@ packages: - all: - compiler:: [intel@19.1.3.304,intel@2022.0.2.262,gcc@11.2.0] - providers: - mpi:: [cray-mpich@8.1.9] - cray-mpich: - externals: - - spec: cray-mpich@8.1.9~wrappers - modules: - - libfabric - - craype-network-ofi - - cray-mpich/8.1.9 git: buildable: false externals: @@ -52,19 +41,3 @@ externals: - spec: flex@2.6.4+lex prefix: /usr - eckit: - require: - - any_of: ["@1.23.1"] - when: "%intel@19.1.3.304" - eccodes: - require: - - any_of: ["@2.27.0"] - when: "%intel@19.1.3.304" - py-scipy: - require: - - any_of: ["@1.10.1"] - when: "%intel@19.1.3.304" - cdo: - require: - - any_of: ["@2.0.5"] - when: "%intel@19.1.3.304" diff --git a/configs/sites/tier1/acorn/packages_gcc.yaml b/configs/sites/tier1/acorn/packages_gcc.yaml new file mode 100644 index 000000000..b801a9758 --- /dev/null +++ b/configs/sites/tier1/acorn/packages_gcc.yaml @@ -0,0 +1,14 @@ + packages: + all: + compiler:: [gcc@11.2.0] + providers: + mpi:: [cray-mpich@8.1.9] + mpi: + buildable: False + cray-mpich: + externals: + - spec: cray-mpich@8.1.9~wrappers + modules: + - libfabric + - craype-network-ofi + - cray-mpich/8.1.9 diff --git a/configs/sites/tier1/acorn/packages_intel.yaml b/configs/sites/tier1/acorn/packages_intel.yaml new file mode 100644 index 000000000..13c5246fd --- /dev/null +++ b/configs/sites/tier1/acorn/packages_intel.yaml @@ -0,0 +1,51 @@ + packages: + all: + compiler:: [intel@19.1.3.304,intel@2022.0.2.262] + providers: + mpi:: [cray-mpich@8.1.9] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] + mpi: + buildable: False + cray-mpich: + externals: + - spec: cray-mpich@8.1.9~wrappers + modules: + - libfabric + - craype-network-ofi + - cray-mpich/8.1.9 + intel-oneapi-mkl: + # Remove buildable: False and configure+uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2022.0.2%intel@2021.5.0 + # prefix: /apps/oneapi + # DH* Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' + # *DH + eckit: + require: + - any_of: ["@1.23.1"] + when: "%intel@19.1.3.304" + eccodes: + require: + - any_of: ["@2.27.0"] + when: "%intel@19.1.3.304" + py-scipy: + require: + - any_of: ["@1.10.1"] + when: "%intel@19.1.3.304" + cdo: + require: + - any_of: ["@2.0.5"] + when: "%intel@19.1.3.304" diff --git a/configs/sites/tier1/atlantis/packages.yaml b/configs/sites/tier1/atlantis/packages.yaml index 2030f4eb2..0487117dd 100644 --- a/configs/sites/tier1/atlantis/packages.yaml +++ b/configs/sites/tier1/atlantis/packages.yaml @@ -1,15 +1,8 @@ packages: all: compiler:: [intel@2021.6.0] - providers: + providers: mpi:: [intel-oneapi-mpi@2021.6.0] - blas:: [intel-oneapi-mkl] - fftw-api:: [intel-oneapi-mkl] - lapack:: [intel-oneapi-mkl] - ectrans: - variants:: +mkl ~fftw - gsibec: - variants:: +mkl ### MPI, Python, MKL mpi: @@ -25,7 +18,7 @@ packages: externals: - spec: intel-oneapi-mkl@2022.1.0 modules: - - mkl/2022.1.0 + - mkl/2022.1.0 prefix: /cm/shared/apps/intel/oneapi intel-oneapi-ipp: externals: @@ -41,7 +34,7 @@ packages: prefix: /cm/shared/apps/intel/oneapi #python: # buildable: False - # externals: + # externals: # - spec: python@3.9.15 # modules: # - python39 diff --git a/configs/sites/tier1/aws-pcluster/packages.yaml b/configs/sites/tier1/aws-pcluster/packages.yaml index 6b7387393..17d5b64a6 100644 --- a/configs/sites/tier1/aws-pcluster/packages.yaml +++ b/configs/sites/tier1/aws-pcluster/packages.yaml @@ -7,38 +7,6 @@ packages: externals: - spec: wget@1.21.2 prefix: /usr - all: - compiler: [intel@2021.10.0, gcc@11.4.0] - #compiler: [oneapi@2024.0.2] - providers: - mpi: [intel-oneapi-mpi@2021.10.0, openmpi@4.1.6] - #mpi: [intel-oneapi-mpi@2021.11] - - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.10.0%intel@2021.10.0 - prefix: /opt/intel/oneapi - modules: - - libfabric-aws/1.19.0amzn4.0 - - mpi - #externals: - #- spec: intel-oneapi-mpi@2021.11%oneapi@2024.0.2 - # prefix: /mnt/experiments-efs/intel-oneapi-2024.0.2 - # modules: - # - libfabric-aws/1.16.0~amzn4.0 - # - mpi/2021.11 - mpi: - buildable: false - openmpi: - externals: - - spec: openmpi@4.1.6%gcc@11.4.0~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath - fabrics=ofi schedulers=slurm - prefix: /opt/amazon/openmpi - modules: - - libfabric-aws/1.19.0amzn4.0 - - openmpi/4.1.6 - - binutils: externals: - spec: binutils@2.38 diff --git a/configs/sites/tier1/aws-pcluster/packages_gcc.yaml b/configs/sites/tier1/aws-pcluster/packages_gcc.yaml new file mode 100644 index 000000000..a1f93559e --- /dev/null +++ b/configs/sites/tier1/aws-pcluster/packages_gcc.yaml @@ -0,0 +1,15 @@ +packages: + all: + compiler:: [gcc@11.4.0] + providers: + mpi:: [openmpi@4.1.6] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@4.1.6%gcc@11.4.0~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath + fabrics=ofi schedulers=slurm + prefix: /opt/amazon/openmpi + modules: + - libfabric-aws/1.19.0amzn4.0 + - openmpi/4.1.6 diff --git a/configs/sites/tier1/aws-pcluster/packages_intel.yaml b/configs/sites/tier1/aws-pcluster/packages_intel.yaml new file mode 100644 index 000000000..bc5f464d4 --- /dev/null +++ b/configs/sites/tier1/aws-pcluster/packages_intel.yaml @@ -0,0 +1,35 @@ +packages: + all: + compiler:: [intel@2021.10.0] + providers: + mpi:: [intel-oneapi-mpi@2021.10.0] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.10.0%intel@2021.10.0 + prefix: /opt/intel/oneapi + modules: + - libfabric-aws/1.19.0amzn4.0 + - mpi + intel-oneapi-mkl: + # Remove buildable: False and configure version+uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2022.0.2%intel@2021.10.0 + # prefix: /opt/intel/oneapi + # DH* Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' + # *DH diff --git a/configs/sites/tier1/derecho/packages.yaml b/configs/sites/tier1/derecho/packages.yaml index e862ae4f2..8ea313601 100644 --- a/configs/sites/tier1/derecho/packages.yaml +++ b/configs/sites/tier1/derecho/packages.yaml @@ -1,38 +1,12 @@ packages: all: - compiler:: [intel@2021.10.0, gcc@12.2.0] - providers: - mpi:: [cray-mpich@8.1.25] target: [core2] - -### MPI, Python, MKL - mpi: - buildable: False - cray-mpich: - externals: - - spec: cray-mpich@8.1.25%intel@2021.10.0 +wrappers - modules: - - craype/2.7.20 - - cray-mpich/8.1.25 - - libfabric/1.15.2.0 - - cray-pals/1.2.11 - - spec: cray-mpich@8.1.25%gcc@12.2.0 +wrappers - modules: - - craype/2.7.20 - - cray-mpich/8.1.25 - - libfabric/1.15.2.0 - - cray-pals/1.2.11 - ### Modification of common packages esmf: variants: ~xerces ~pnetcdf snapshot=none ~shared +external-parallelio esmf_os=Linux esmf_comm=mpich # Need to force spack to build python with ssl variant when using older openssl from OS python: require: "+ssl" - # Newer versions of patchelf (tested 0.18.0) don't build with Intel on Derecho - patchelf: - version:: ['0.17.2'] - ### All other external packages listed alphabetically autoconf: externals: diff --git a/configs/sites/tier1/derecho/packages_gcc.yaml b/configs/sites/tier1/derecho/packages_gcc.yaml new file mode 100644 index 000000000..f84016fe8 --- /dev/null +++ b/configs/sites/tier1/derecho/packages_gcc.yaml @@ -0,0 +1,15 @@ +packages: + all: + compiler:: [gcc@12.2.0] + providers: + mpi:: [cray-mpich@8.1.25] + mpi: + buildable: False + cray-mpich: + externals: + - spec: cray-mpich@8.1.25%gcc@12.2.0 +wrappers + modules: + - craype/2.7.20 + - cray-mpich/8.1.25 + - libfabric/1.15.2.0 + - cray-pals/1.2.11 diff --git a/configs/sites/tier1/derecho/packages_intel.yaml b/configs/sites/tier1/derecho/packages_intel.yaml new file mode 100644 index 000000000..edf995c8f --- /dev/null +++ b/configs/sites/tier1/derecho/packages_intel.yaml @@ -0,0 +1,42 @@ +packages: + all: + compiler:: [intel@2021.10.0] + providers: + mpi:: [cray-mpich@8.1.25] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] + mpi: + buildable: False + cray-mpich: + externals: + - spec: cray-mpich@8.1.25%intel@2021.10.0 +wrappers + modules: + - craype/2.7.20 + - cray-mpich/8.1.25 + - libfabric/1.15.2.0 + - cray-pals/1.2.11 + intel-oneapi-mkl: + # Remove buildable: False and configure+uncomment externals section below to use intel-oneapi-mkl + # Note that on 2024/08/14, Dom H couldn't find any MKL installation on Derecho - keep using fftw + # and openblas, or find another provider (Cray stuff)? + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2022.0.2%intel@2021.5.0 + # prefix: /apps/oneapi + # Newer versions of patchelf (tested 0.18.0) don't build with Intel on Derecho + patchelf: + version:: ['0.17.2'] + # DH* Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' + # *DH + diff --git a/configs/sites/tier1/discover-scu16/packages.yaml b/configs/sites/tier1/discover-scu16/packages.yaml index 21f3d7ad2..4cfc9f64e 100644 --- a/configs/sites/tier1/discover-scu16/packages.yaml +++ b/configs/sites/tier1/discover-scu16/packages.yaml @@ -1,28 +1,5 @@ packages: - all: - compiler:: [intel@2021.6.0, gcc@12.1.0] - providers: - mpi:: [intel-oneapi-mpi@2021.6.0, openmpi@4.1.3] - -### MPI, Python, MKL - mpi: - buildable: False - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.6.0%intel@2021.6.0 - prefix: /usr/local/intel/oneapi/2021 - modules: - - mpi/impi/2021.6.0 - openmpi:: - externals: - - spec: openmpi@4.1.3%gcc@12.1.0 ~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath - fabrics=ucx schedulers=slurm - prefix: /discover/swdev/gmao_SIteam/MPI/openmpi/4.1.3/gcc-12.1.0 - modules: - - mpi/openmpi/4.1.3/gcc-12.1.0 - ### Modification of common packages - # Problems building shared hdf-eos2 with Intel, not needed hdf-eos2: variants: ~shared @@ -32,7 +9,6 @@ packages: # xnnpack option doesn't build on this system py-torch: variants: ~xnnpack - ### All other external packages listed alphabetically autoconf: externals: diff --git a/configs/sites/tier1/discover-scu16/packages_gcc.yaml b/configs/sites/tier1/discover-scu16/packages_gcc.yaml new file mode 100644 index 000000000..f3f07103d --- /dev/null +++ b/configs/sites/tier1/discover-scu16/packages_gcc.yaml @@ -0,0 +1,14 @@ +packages: + all: + compiler:: [gcc@12.1.0] + providers: + mpi:: [openmpi@4.1.3] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@4.1.3%gcc@12.1.0 ~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath + fabrics=ucx schedulers=slurm + prefix: /discover/swdev/gmao_SIteam/MPI/openmpi/4.1.3/gcc-12.1.0 + modules: + - mpi/openmpi/4.1.3/gcc-12.1.0 diff --git a/configs/sites/tier1/discover-scu16/packages_intel.yaml b/configs/sites/tier1/discover-scu16/packages_intel.yaml new file mode 100644 index 000000000..139fd869c --- /dev/null +++ b/configs/sites/tier1/discover-scu16/packages_intel.yaml @@ -0,0 +1,17 @@ +packages: + all: + compiler:: [intel@2021.6.0] + providers: + mpi:: [intel-oneapi-mpi@2021.6.0] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.6.0%intel@2021.6.0 + prefix: /usr/local/intel/oneapi/2021 + modules: + - mpi/impi/2021.6.0 + intel-oneapi-mkl: + externals: + - spec: intel-oneapi-mkl@2022.2.0%intel@2021.6.0 + prefix: /usr/local/intel/oneapi/2021 diff --git a/configs/sites/tier1/discover-scu17/packages.yaml b/configs/sites/tier1/discover-scu17/packages.yaml index b2fccf181..086f342a5 100644 --- a/configs/sites/tier1/discover-scu17/packages.yaml +++ b/configs/sites/tier1/discover-scu17/packages.yaml @@ -1,34 +1,10 @@ packages: - all: - compiler:: [intel@2021.10.0, gcc@12.3.0] - providers: - mpi:: [intel-oneapi-mpi@2021.10.0, openmpi@4.1.6] - -### MPI, Python, MKL - mpi: - buildable: False - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.10.0%intel@=2021.10.0 - prefix: /usr/local/intel/oneapi/2021/ - modules: - - mpi/impi/2021.10.0 - openmpi: - externals: - - spec: openmpi@4.1.6%gcc@=12.3.0~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath - fabrics=ucx schedulers=slurm - prefix: /discover/swdev/gmao_SIteam/MPI/openmpi/4.1.6-SLES15/gcc-12.3.0 - modules: - - mpi/openmpi/4.1.6/gcc-12.3.0 - ### Modification of common packages - # Problems building shared hdf-eos2 with Intel, not needed hdf-eos2: variants: ~shared met: variants: +python +grib2 +graphics +lidar2nc +modis - ### All other external packages listed alphabetically autoconf: externals: diff --git a/configs/sites/tier1/discover-scu17/packages_gcc.yaml b/configs/sites/tier1/discover-scu17/packages_gcc.yaml new file mode 100644 index 000000000..0e25fe18c --- /dev/null +++ b/configs/sites/tier1/discover-scu17/packages_gcc.yaml @@ -0,0 +1,14 @@ +packages: + all: + compiler:: [gcc@12.3.0] + providers: + mpi:: [openmpi@4.1.6] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@4.1.6%gcc@=12.3.0~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath + fabrics=ucx schedulers=slurm + prefix: /discover/swdev/gmao_SIteam/MPI/openmpi/4.1.6-SLES15/gcc-12.3.0 + modules: + - mpi/openmpi/4.1.6/gcc-12.3.0 diff --git a/configs/sites/tier1/discover-scu17/packages_intel.yaml b/configs/sites/tier1/discover-scu17/packages_intel.yaml new file mode 100644 index 000000000..0595c84a7 --- /dev/null +++ b/configs/sites/tier1/discover-scu17/packages_intel.yaml @@ -0,0 +1,17 @@ +packages: + all: + compiler:: [intel@2021.10.0] + providers: + mpi:: [intel-oneapi-mpi@2021.10.0] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.10.0%intel@=2021.10.0 + prefix: /usr/local/intel/oneapi/2021 + modules: + - mpi/impi/2021.10.0 + intel-oneapi-mkl: + externals: + - spec: intel-oneapi-mkl@2032.2.0%intel@2021.10.0 + prefix: /usr/local/intel/oneapi/2021 diff --git a/configs/sites/tier1/gaea-c5/packages.yaml b/configs/sites/tier1/gaea-c5/packages.yaml index 7d9ff5395..99b4bae6a 100644 --- a/configs/sites/tier1/gaea-c5/packages.yaml +++ b/configs/sites/tier1/gaea-c5/packages.yaml @@ -3,8 +3,14 @@ packages: compiler:: [intel@2023.1.0] providers: mpi:: [cray-mpich@8.1.25] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] ### MPI, Python, MKL + mpi: + buildable: False cray-mpich: externals: - spec: cray-mpich@8.1.25%intel@2023.1.0~wrappers @@ -12,6 +18,25 @@ packages: modules: - craype-network-ofi - cray-mpich/8.1.25 + intel-oneapi-mkl: + # Remove buildable: False and configure+uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2022.0.2%intel@2023.1.0 + # prefix: /apps/oneapi + +### Modification of common packages + # DH* Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' + # *DH ### All other external packages listed alphabetically autoconf: diff --git a/configs/sites/tier1/gaea-c6/packages.yaml b/configs/sites/tier1/gaea-c6/packages.yaml index 3cab899f1..321b33a7b 100644 --- a/configs/sites/tier1/gaea-c6/packages.yaml +++ b/configs/sites/tier1/gaea-c6/packages.yaml @@ -3,14 +3,39 @@ packages: compiler:: [intel@2023.2.0] providers: mpi:: [cray-mpich@8.1.29] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] -### MPI +### MPI, Python, MKL + mpi: + buildable: False cray-mpich: externals: - spec: cray-mpich@8.1.29%intel@2023.2.0~wrappers modules: - craype-network-ofi - cray-mpich/8.1.29 + intel-oneapi-mkl: + # Remove buildable: False and configure+uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2022.0.2%intel@2023.2.0 + # prefix: /apps/oneapi + +### Modification of common packages + # DH* Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' + # *DH ### All other external packages listed alphabetically autoconf: diff --git a/configs/sites/tier1/hera/compilers.yaml b/configs/sites/tier1/hera/compilers.yaml index 8150d7afc..d2e98f057 100644 --- a/configs/sites/tier1/hera/compilers.yaml +++ b/configs/sites/tier1/hera/compilers.yaml @@ -16,17 +16,6 @@ compilers: LD_LIBRARY_PATH: '/apps/gnu/gcc-9.2.0/lib64' CPATH: '/apps/gnu/gcc-9.2.0/include' extra_rpaths: [] -- compiler: - spec: intel@18.0.5.274 - paths: - cc: /apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/bin/intel64/icc - cxx: /apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/bin/intel64/icpc - f77: /apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/bin/intel64/ifort - fc: /apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/bin/intel64/ifort - flags: {} - operating_system: rocky8 - modules: - - intel/18.0.5.274 - compiler: spec: gcc@9.2.0 paths: diff --git a/configs/sites/tier1/hera/packages.yaml b/configs/sites/tier1/hera/packages.yaml index 443f88e99..741c1cb31 100644 --- a/configs/sites/tier1/hera/packages.yaml +++ b/configs/sites/tier1/hera/packages.yaml @@ -1,37 +1,7 @@ packages: all: - compiler:: [intel@2021.5.0, gcc@9.2.0] - #compiler:: [intel@18.0.5.274] - providers: - mpi:: [intel-oneapi-mpi@2021.5.1, openmpi@4.1.6] - #mpi:: [intel-mpi@2018.0.4] # To support hecflow01 target: [haswell] - mpi: - buildable: False - intel-mpi: - externals: - - spec: intel-mpi@2018.0.4%intel@18.0.5.274 - modules: - - impi/2018.0.4 - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.5.1%intel@2021.5.0 - modules: - - impi/2022.1.2 - prefix: /apps/oneapi - openmpi: - externals: - - spec: openmpi@4.1.6~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~internal-libevent~internal-pmix~java+legacylaunchers~lustre~memchecker~openshmem~orterunprefix+pmi+romio+rsh~singularity+static+vt+wrapper-rpath fabrics=ucx schedulers=slurm - modules: - - gnu/9.2.0 - - openmpi/4.1.6_gnu9.2.0 - zlib-ng: - require: - - any_of: ['~shared'] - when: "%intel" - -### All other external packages listed alphabetically autoconf: externals: - spec: autoconf@2.69 diff --git a/configs/sites/tier1/hera/packages_gcc.yaml b/configs/sites/tier1/hera/packages_gcc.yaml new file mode 100644 index 000000000..3d2b4d6cb --- /dev/null +++ b/configs/sites/tier1/hera/packages_gcc.yaml @@ -0,0 +1,13 @@ +packages: + all: + compiler:: [gcc@9.2.0] + providers: + mpi:: [openmpi@4.1.6] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@4.1.6~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~internal-libevent~internal-pmix~java+legacylaunchers~lustre~memchecker~openshmem~orterunprefix+pmi+romio+rsh~singularity+static+vt+wrapper-rpath fabrics=ucx schedulers=slurm + modules: + - gnu/9.2.0 + - openmpi/4.1.6_gnu9.2.0 diff --git a/configs/sites/tier1/hera/packages_intel.yaml b/configs/sites/tier1/hera/packages_intel.yaml new file mode 100644 index 000000000..b80a5e850 --- /dev/null +++ b/configs/sites/tier1/hera/packages_intel.yaml @@ -0,0 +1,36 @@ +packages: + all: + compiler:: [intel@2021.5.0] + providers: + mpi:: [intel-oneapi-mpi@2021.5.1] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.5.1%intel@2021.5.0 + modules: + - impi/2022.1.2 + intel-oneapi-mkl: + # Remove buildable: False and uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2022.0.2%intel@2021.5.0 + # prefix: /apps/oneapi + # DH* Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' + # *DH + zlib-ng: + require: + - '~shared' diff --git a/configs/sites/tier1/hercules/packages.yaml b/configs/sites/tier1/hercules/packages.yaml index 76c4672ef..9c2c95209 100644 --- a/configs/sites/tier1/hercules/packages.yaml +++ b/configs/sites/tier1/hercules/packages.yaml @@ -1,30 +1,4 @@ packages: - all: - compiler:: [intel@2021.9.0, gcc@12.2.0] - providers: - mpi:: [intel-oneapi-mpi@2021.9.0, openmpi@4.1.6] - -### MPI, Python, MKL - mpi: - buildable: False - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.9.0%intel@2021.9.0 - prefix: /apps/spack-managed/oneapi-2023.1.0/intel-oneapi-mpi-2021.9.0-a66eaipzsnyrdgaqzxmqmqz64qzvhkse - modules: - - intel-oneapi-mpi/2021.9.0 - openmpi: - externals: - - spec: openmpi@4.1.6%gcc@12.2.0~cuda~cxx~cxx_exceptions~java~memchecker+pmi+static~wrapper-rpath - schedulers=slurm - prefix: /work/noaa/epic/role-epic/spack-stack/hercules/openmpi-4.1.6/gcc-12.2.0-spack - modules: - - gcc/12.2.0 - - openmpi/4.1.6-gcc-12.2.0-spack - -### Modifications of common packages - -### All other external packages listed alphabetically autoconf: externals: - spec: autoconf@2.69 diff --git a/configs/sites/tier1/hercules/packages_gcc.yaml b/configs/sites/tier1/hercules/packages_gcc.yaml new file mode 100644 index 000000000..5781224d8 --- /dev/null +++ b/configs/sites/tier1/hercules/packages_gcc.yaml @@ -0,0 +1,14 @@ +packages: + all: + compiler:: [gcc@12.2.0] + providers: + mpi:: [openmpi@4.1.6] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@4.1.6%gcc@12.2.0~cuda~cxx~cxx_exceptions~java~memchecker+pmi+static~wrapper-rpath + schedulers=slurm + modules: + - gcc/12.2.0 + - openmpi/4.1.6-gcc-12.2.0-spack diff --git a/configs/sites/tier1/hercules/packages_intel.yaml b/configs/sites/tier1/hercules/packages_intel.yaml new file mode 100644 index 000000000..1919c5d1d --- /dev/null +++ b/configs/sites/tier1/hercules/packages_intel.yaml @@ -0,0 +1,33 @@ +packages: + all: + compiler:: [intel@2021.9.0] + providers: + mpi:: [intel-oneapi-mpi@2021.9.0] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.9.0%intel@2021.9.0 + modules: + - intel-oneapi-mpi/2021.9.0 + intel-oneapi-mkl: + # Remove buildable: False and uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2023.1.0%intel@2021.9.0 + # modules: + # - intel-oneapi-mkl/2023.1.0 + # Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' diff --git a/configs/sites/tier1/jet/compilers.yaml b/configs/sites/tier1/jet/compilers.yaml index 3105b2da7..c8a914103 100644 --- a/configs/sites/tier1/jet/compilers.yaml +++ b/configs/sites/tier1/jet/compilers.yaml @@ -16,17 +16,6 @@ compilers: LD_LIBRARY_PATH: '/apps/gnu/gcc-9.2.0b/lib64' CPATH: '/apps/gnu/gcc-9.2.0b/include' extra_rpaths: [] -- compiler: - spec: intel@18.0.5.274 - paths: - cc: /apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/bin/intel64/icc - cxx: /apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/bin/intel64/icpc - f77: /apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/bin/intel64/ifort - fc: /apps/intel/parallel_studio_xe_2018.4.057/compilers_and_libraries_2018/linux/bin/intel64/ifort - flags: {} - operating_system: rocky8 - modules: - - intel/18.0.5.274 - compiler: spec: gcc@9.2.0 paths: diff --git a/configs/sites/tier1/jet/packages.yaml b/configs/sites/tier1/jet/packages.yaml index 80e2c3a23..665e659ac 100644 --- a/configs/sites/tier1/jet/packages.yaml +++ b/configs/sites/tier1/jet/packages.yaml @@ -1,39 +1,7 @@ packages: all: - compiler:: [intel@2021.5.0, gcc@9.2.0] - #compiler:: [intel@18.0.5.274] - providers: - mpi:: [intel-oneapi-mpi@2021.5.1, openmpi@4.1.6] - #mpi:: [intel-mpi@2018.4.274] # To support all generations of jet target: [core2] - mpi: - buildable: False - intel-mpi: - externals: - - spec: intel-mpi@2018.4.274%intel@18.0.5.274 - prefix: /apps/intel/compilers_and_libraries_2018.5.274/linux/mpi - modules: - - impi/2018.4.274 - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.5.1%intel@2021.5.0 - prefix: /apps/oneapi - modules: - - impi/2022.1.2 - openmpi: - externals: - - spec: openmpi@4.1.6%gcc@9.2.0 - prefix: /apps/openmpi/4.1.6/gnu9.2.0/ - modules: - - gnu/9.2.0b - - openmpi/4.1.6_gnu9.2.0 - zlib-ng: - require: - - any_of: ['~shared'] - when: "%intel" - -### All other external packages listed alphabetically autoconf: externals: - spec: autoconf@2.69 diff --git a/configs/sites/tier1/jet/packages_gcc.yaml b/configs/sites/tier1/jet/packages_gcc.yaml new file mode 100644 index 000000000..f810d8345 --- /dev/null +++ b/configs/sites/tier1/jet/packages_gcc.yaml @@ -0,0 +1,14 @@ +packages: + all: + compiler:: [gcc@9.2.0] + providers: + mpi:: [openmpi@4.1.6] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@4.1.6%gcc@9.2.0 + prefix: /apps/openmpi/4.1.6/gnu9.2.0/ + modules: + - gnu/9.2.0b + - openmpi/4.1.6_gnu9.2.0 diff --git a/configs/sites/tier1/jet/packages_intel.yaml b/configs/sites/tier1/jet/packages_intel.yaml new file mode 100644 index 000000000..a31345813 --- /dev/null +++ b/configs/sites/tier1/jet/packages_intel.yaml @@ -0,0 +1,19 @@ +packages: + all: + compiler:: [intel@2021.5.0] + providers: + mpi:: [intel-oneapi-mpi@2021.5.1] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.5.1%intel@2021.5.0 + modules: + - impi/2022.1.2 + intel-oneapi-mkl: + externals: + - spec: intel-oneapi-mkl@2022.0.2%intel@2021.5.0 + prefix: /apps/oneapi + zlib-ng: + require: + - '~shared' diff --git a/configs/sites/tier1/narwhal/compilers.yaml b/configs/sites/tier1/narwhal/compilers.yaml index 4102aa0cd..22ddd17b4 100644 --- a/configs/sites/tier1/narwhal/compilers.yaml +++ b/configs/sites/tier1/narwhal/compilers.yaml @@ -1,21 +1,25 @@ compilers:: - compiler: - spec: intel@2021.4.0 + spec: intel@2021.10.0 paths: cc: cc cxx: CC f77: ftn fc: ftn - flags: {} + flags: + cflags: -diag-disable=10441 + cxxflags: -diag-disable=10441 + fflags: -diag-disable=10448 operating_system: sles15 modules: - - PrgEnv-intel/8.3.2 - - intel-classic/2021.4.0 + - PrgEnv-intel/8.3.3 + - intel-classic/2023.2.0 + - libfabric/1.12.1.2.2.1 environment: prepend_path: PATH: '/opt/cray/pe/gcc/10.3.0/snos/bin' CPATH: '/opt/cray/pe/gcc/10.3.0/snos/include' - LD_LIBRARY_PATH: '/opt/cray/pe/libsci/22.08.1.1/INTEL/19.0/x86_64/lib:/opt/cray/pe/gcc/10.3.0/snos/lib:/opt/cray/pe/gcc/10.3.0/snos/lib64' + LD_LIBRARY_PATH: '/opt/cray/libfabric/1.12.1.2.2.1/lib64:/opt/cray/pe/libsci/22.11.1.2/INTEL/19.0/x86_64/lib:/opt/cray/pe/gcc/10.3.0/snos/lib:/opt/cray/pe/gcc/10.3.0/snos/lib64' set: CRAYPE_LINK_TYPE: 'dynamic' extra_rpaths: [] @@ -29,11 +33,11 @@ compilers:: flags: {} operating_system: sles15 modules: - - PrgEnv-gnu/8.3.2 + - PrgEnv-gnu/8.3.3 - gcc/10.3.0 environment: prepend_path: - LD_LIBRARY_PATH: '/opt/cray/pe/libsci/22.08.1.1/GNU/9.1/x86_64/lib' + LD_LIBRARY_PATH: '/opt/cray/libfabric/1.12.1.2.2.1/lib64:/opt/cray/pe/libsci/22.11.1.2/GNU/9.1/x86_64/lib' set: CRAYPE_LINK_TYPE: 'dynamic' extra_rpaths: [] diff --git a/configs/sites/tier1/narwhal/packages.yaml b/configs/sites/tier1/narwhal/packages.yaml index 737163f0d..9351731bb 100644 --- a/configs/sites/tier1/narwhal/packages.yaml +++ b/configs/sites/tier1/narwhal/packages.yaml @@ -1,34 +1,4 @@ packages: - all: - compiler:: [intel@2021.4.0, gcc@10.3.0] - providers: - mpi:: [cray-mpich@8.1.14] - -### MPI, Python, MKL - mpi: - buildable: False - cray-mpich: - externals: - - spec: cray-mpich@8.1.14%intel@2021.4.0 ~wrappers - modules: - - cray-mpich/8.1.14 - - spec: cray-mpich@8.1.14%gcc@10.3.0 ~wrappers - modules: - - cray-mpich/8.1.14 - #intel-oneapi-tbb: - # externals: - # - spec: intel-oneapi-tbb@2021.3.0 - # prefix: /opt/intel/oneapi_2021.3.0.3219 - # modules: - # - intel/2021.3.0 - #intel-oneapi-mkl: - # externals: - # - spec: intel-oneapi-mkl@2021.3.0 - # prefix: /opt/intel/oneapi_2021.3.0.3219 - # modules: - # - intel/2021.3.0 - -### All other external packages listed alphabetically autoconf: externals: - spec: autoconf@2.69 diff --git a/configs/sites/tier1/narwhal/packages_gcc.yaml b/configs/sites/tier1/narwhal/packages_gcc.yaml new file mode 100644 index 000000000..3261960c6 --- /dev/null +++ b/configs/sites/tier1/narwhal/packages_gcc.yaml @@ -0,0 +1,13 @@ +packages: + all: + compiler:: [gcc@10.3.0] + providers: + mpi:: [cray-mpich@8.1.21] + mpi: + buildable: False + cray-mpich: + externals: + - spec: cray-mpich@8.1.21%gcc@10.3.0 ~wrappers + modules: + - cray-mpich-ucx/8.1.21 + - craype-network-ucx diff --git a/configs/sites/tier1/narwhal/packages_intel.yaml b/configs/sites/tier1/narwhal/packages_intel.yaml new file mode 100644 index 000000000..b8effd96d --- /dev/null +++ b/configs/sites/tier1/narwhal/packages_intel.yaml @@ -0,0 +1,17 @@ +packages: + all: + compiler:: [intel@2021.10.0] + providers: + mpi:: [cray-mpich@8.1.21] + mpi: + buildable: False + cray-mpich: + externals: + - spec: cray-mpich@8.1.21%intel@2021.10.0 ~wrappers + modules: + - cray-mpich-ucx/8.1.21 + - craype-network-ucx + intel-oneapi-mkl: + externals: + - spec: intel-oneapi-mkl@2023.2.0 + prefix: /opt/intel/oneapi_2023.2.0.49397 diff --git a/configs/sites/tier1/nautilus/packages.yaml b/configs/sites/tier1/nautilus/packages.yaml index 0e2794885..f8dbc3501 100644 --- a/configs/sites/tier1/nautilus/packages.yaml +++ b/configs/sites/tier1/nautilus/packages.yaml @@ -1,64 +1,4 @@ packages: - all: - compiler:: [intel@2021.5.0, aocc@4.0.0, gcc@12.2.1, oneapi@2024.1.2] - providers: - mpi:: [openmpi@4.1.6, openmpi@5.0.1, intel-oneapi-mpi@2021.12] - blas:: [intel-oneapi-mkl] - fftw-api:: [intel-oneapi-mkl] - lapack:: [intel-oneapi-mkl] - ectrans: - # do we need to set 1.2.0 here? - require:: '+mkl ~fftw' - gsibec: - # do we need to set the rest here? - require:: '+mkl' - py-numpy: - require: '@:1.25 ^intel-oneapi-mkl' - -### MPI, Python, MKL - mpi: - buildable: False - openmpi: - externals: - - spec: openmpi@4.1.6%intel@2021.5.0~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath fabrics=ucx schedulers=slurm - prefix: /p/app/penguin/openmpi/4.1.6/intel-classic-2022.0.2 - modules: - - penguin/openmpi/4.1.6/intel-classic-2022.0.2 - - slurm - - spec: openmpi@4.1.4%aocc@4.0.0~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath fabrics=ucx schedulers=slurm - prefix: /p/app/penguin/openmpi/4.1.4/aoc - modules: - - penguin/openmpi/4.1.4/aocc - - slurm - - spec: openmpi@5.0.1%gcc@12.2.1~cuda~java~memchecker~static~wrapper-rpath fabrics=ucx schedulers=slurm - prefix: /p/app/penguin/openmpi/5.0.1/gcc-8.5.0 - modules: - - penguin/openmpi/5.0.1/gcc-8.5.0 - - slurm - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.12%oneapi@2024.1.2 - prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.1.2 - intel-oneapi-mkl: - externals: - - spec: intel-oneapi-mkl@2022.0.2%intel@2021.5.0 - prefix: /p/app/compilers/intel/oneapi - modules: - - intel-oneapi-mkl@2022.0.2 - - spec: intel-oneapi-mkl@2022.0.2%gcc@12.2.1 - prefix: /p/app/compilers/intel/oneapi - modules: - - intel-oneapi-mkl@2022.0.2 - - spec: intel-oneapi-mkl@2024.1%oneapi@2024.1.2 - prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.1.2 - intel-oneapi-runtime: - externals: - - spec: intel-oneapi-runtime@2024.1.2%oneapi@2024.1.2 - prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.1.2 - -### Modifications of common packages - -### All other external packages listed alphabetically autoconf: externals: - spec: autoconf@2.69 diff --git a/configs/sites/tier1/nautilus/packages_gcc.yaml b/configs/sites/tier1/nautilus/packages_gcc.yaml new file mode 100644 index 000000000..08bb02aa5 --- /dev/null +++ b/configs/sites/tier1/nautilus/packages_gcc.yaml @@ -0,0 +1,14 @@ +packages: + all: + compiler:: [gcc@12.2.1] + providers: + mpi:: [openmpi@5.0.1] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@5.0.1%gcc@12.2.1~cuda~java~memchecker~static~wrapper-rpath fabrics=ucx schedulers=slurm + prefix: /p/app/penguin/openmpi/5.0.1/gcc-8.5.0 + modules: + - penguin/openmpi/5.0.1/gcc-8.5.0 + - slurm diff --git a/configs/sites/tier1/nautilus/packages_intel.yaml b/configs/sites/tier1/nautilus/packages_intel.yaml new file mode 100644 index 000000000..625387414 --- /dev/null +++ b/configs/sites/tier1/nautilus/packages_intel.yaml @@ -0,0 +1,18 @@ +packages: + all: + compiler:: [intel@2021.5.0] + providers: + mpi:: [openmpi@4.1.6] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@4.1.6%intel@2021.5.0~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath fabrics=ucx schedulers=slurm + prefix: /p/app/penguin/openmpi/4.1.6/intel-classic-2022.0.2 + modules: + - penguin/openmpi/4.1.6/intel-classic-2022.0.2 + - slurm + intel-oneapi-mkl: + externals: + - spec: intel-oneapi-mkl@2022.0.2%intel@2021.5.0 + prefix: /p/app/compilers/intel/oneapi diff --git a/configs/sites/tier1/nautilus/packages_oneapi.yaml b/configs/sites/tier1/nautilus/packages_oneapi.yaml new file mode 100644 index 000000000..40d0378e7 --- /dev/null +++ b/configs/sites/tier1/nautilus/packages_oneapi.yaml @@ -0,0 +1,19 @@ +packages: + all: + compiler:: [oneapi@2024.1.2] + providers: + mpi:: [intel-oneapi-mpi@2021.12] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.12%oneapi@2024.1.2 + prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.1.2 + intel-oneapi-mkl: + externals: + - spec: intel-oneapi-mkl@2024.1%oneapi@2024.1.2 + prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.1.2 + intel-oneapi-runtime: + externals: + - spec: intel-oneapi-runtime@2024.1.2%oneapi@2024.1.2 + prefix: /p/app/projects/NEPTUNE/spack-stack/oneapi-2024.1.2 diff --git a/configs/sites/tier1/noaa-aws/packages.yaml b/configs/sites/tier1/noaa-aws/packages.yaml index 9e5363a55..a16a87b90 100644 --- a/configs/sites/tier1/noaa-aws/packages.yaml +++ b/configs/sites/tier1/noaa-aws/packages.yaml @@ -1,30 +1,8 @@ packages: - all: - compiler:: [intel@2021.3.0, gcc@9.2.0] - providers: - mpi:: [intel-oneapi-mpi@2021.3.0, openmpi@3.1.4] - -### MPI, Python, MKL - mpi: - buildable: False - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.3.0%intel@2021.3.0 - prefix: /apps/oneapi - modules: - - impi/2021.3.0 - openmpi: - externals: - - spec: openmpi@3.1.4%gcc@9.2.0 - prefix: /apps/openmpi/3.1.4/gnu/gcc-9.2.0 - modules: - - openmpi/3.1.4 - ### Modifications of common packages # Pin flex to avoid duplicate packages flex: version: ['2.6.4'] - ### All other external packages listed alphabetically bash: externals: diff --git a/configs/sites/tier1/noaa-aws/packages_gcc.yaml b/configs/sites/tier1/noaa-aws/packages_gcc.yaml new file mode 100644 index 000000000..6e04fbe3f --- /dev/null +++ b/configs/sites/tier1/noaa-aws/packages_gcc.yaml @@ -0,0 +1,13 @@ +packages: + all: + compiler:: [gcc@9.2.0] + providers: + mpi:: [openmpi@3.1.4] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@3.1.4%gcc@9.2.0 + prefix: /apps/openmpi/3.1.4/gnu/gcc-9.2.0 + modules: + - openmpi/3.1.4 diff --git a/configs/sites/tier1/noaa-aws/packages_intel.yaml b/configs/sites/tier1/noaa-aws/packages_intel.yaml new file mode 100644 index 000000000..c125f2911 --- /dev/null +++ b/configs/sites/tier1/noaa-aws/packages_intel.yaml @@ -0,0 +1,34 @@ +packages: + all: + compiler:: [intel@2021.3.0] + providers: + mpi:: [intel-oneapi-mpi@2021.3.0] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.3.0%intel@2021.3.0 + prefix: /apps/oneapi + modules: + - impi/2021.3.0 + intel-oneapi-mkl: + # Remove buildable: False and configure+uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2022.0.2%intel@2021.3.0 + # prefix: /apps/oneapi + # DH* Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' + # *DH diff --git a/configs/sites/tier1/noaa-azure/packages.yaml b/configs/sites/tier1/noaa-azure/packages.yaml index 2b7b5bd78..c3522a095 100644 --- a/configs/sites/tier1/noaa-azure/packages.yaml +++ b/configs/sites/tier1/noaa-azure/packages.yaml @@ -1,30 +1,8 @@ packages: - all: - compiler:: [intel@2021.3.0, gcc@9.2.0] - providers: - mpi:: [intel-oneapi-mpi@2021.3.0, openmpi@3.1.4] - -### MPI, Python, MKL - mpi: - buildable: False - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.3.0%intel@2021.3.0 - prefix: /apps/oneapi - modules: - - impi/2021.3.0 - openmpi: - externals: - - spec: openmpi@3.1.4%gcc@9.2.0 - prefix: /apps/openmpi/3.1.4/gnu/gcc-9.2.0 - modules: - - openmpi/3.1.4 - ### Modifications of common packages # Pin flex to avoid duplicate packages flex: version: ['2.6.4'] - ### All other external packages listed alphabetically autoconf: externals: diff --git a/configs/sites/tier1/noaa-azure/packages_gcc.yaml b/configs/sites/tier1/noaa-azure/packages_gcc.yaml new file mode 100644 index 000000000..6e04fbe3f --- /dev/null +++ b/configs/sites/tier1/noaa-azure/packages_gcc.yaml @@ -0,0 +1,13 @@ +packages: + all: + compiler:: [gcc@9.2.0] + providers: + mpi:: [openmpi@3.1.4] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@3.1.4%gcc@9.2.0 + prefix: /apps/openmpi/3.1.4/gnu/gcc-9.2.0 + modules: + - openmpi/3.1.4 diff --git a/configs/sites/tier1/noaa-azure/packages_intel.yaml b/configs/sites/tier1/noaa-azure/packages_intel.yaml new file mode 100644 index 000000000..c125f2911 --- /dev/null +++ b/configs/sites/tier1/noaa-azure/packages_intel.yaml @@ -0,0 +1,34 @@ +packages: + all: + compiler:: [intel@2021.3.0] + providers: + mpi:: [intel-oneapi-mpi@2021.3.0] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.3.0%intel@2021.3.0 + prefix: /apps/oneapi + modules: + - impi/2021.3.0 + intel-oneapi-mkl: + # Remove buildable: False and configure+uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2022.0.2%intel@2021.3.0 + # prefix: /apps/oneapi + # DH* Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' + # *DH diff --git a/configs/sites/tier1/noaa-gcloud/packages.yaml b/configs/sites/tier1/noaa-gcloud/packages.yaml index d1dc19f93..b86026f11 100644 --- a/configs/sites/tier1/noaa-gcloud/packages.yaml +++ b/configs/sites/tier1/noaa-gcloud/packages.yaml @@ -1,30 +1,8 @@ packages: - all: - compiler:: [intel@2021.3.0, gcc@9.2.0] - providers: - mpi:: [intel-oneapi-mpi@2021.3.0, openmpi@3.1.4] - -### MPI, Python, MKL - mpi: - buildable: False - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.3.0%intel@2021.3.0 - prefix: /apps/oneapi - modules: - - impi/2021.3.0 - openmpi: - externals: - - spec: openmpi@3.1.4%gcc@9.2.0 - prefix: /apps/openmpi/3.1.4/gnu/gcc-9.2.0 - modules: - - openmpi/3.1.4 - ### Modifications of common packages # Pin flex to avoid duplicate packages flex: version: ['2.6.4'] - ### All other external packages listed alphabetically bash: externals: diff --git a/configs/sites/tier1/noaa-gcloud/packages_gcc.yaml b/configs/sites/tier1/noaa-gcloud/packages_gcc.yaml new file mode 100644 index 000000000..6e04fbe3f --- /dev/null +++ b/configs/sites/tier1/noaa-gcloud/packages_gcc.yaml @@ -0,0 +1,13 @@ +packages: + all: + compiler:: [gcc@9.2.0] + providers: + mpi:: [openmpi@3.1.4] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@3.1.4%gcc@9.2.0 + prefix: /apps/openmpi/3.1.4/gnu/gcc-9.2.0 + modules: + - openmpi/3.1.4 diff --git a/configs/sites/tier1/noaa-gcloud/packages_intel.yaml b/configs/sites/tier1/noaa-gcloud/packages_intel.yaml new file mode 100644 index 000000000..c125f2911 --- /dev/null +++ b/configs/sites/tier1/noaa-gcloud/packages_intel.yaml @@ -0,0 +1,34 @@ +packages: + all: + compiler:: [intel@2021.3.0] + providers: + mpi:: [intel-oneapi-mpi@2021.3.0] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.3.0%intel@2021.3.0 + prefix: /apps/oneapi + modules: + - impi/2021.3.0 + intel-oneapi-mkl: + # Remove buildable: False and configure+uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2022.0.2%intel@2021.3.0 + # prefix: /apps/oneapi + # DH* Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' + # *DH diff --git a/configs/sites/tier1/orion/packages.yaml b/configs/sites/tier1/orion/packages.yaml index 079bd3fd0..3fcecb71c 100644 --- a/configs/sites/tier1/orion/packages.yaml +++ b/configs/sites/tier1/orion/packages.yaml @@ -1,29 +1,4 @@ packages: - all: - compiler:: [intel@2021.9.0, gcc@12.2.0] - providers: - mpi:: [intel-oneapi-mpi@2021.9.0, openmpi@4.1.4] - zlib-api:: [zlib] - -### MPI, Python, MKL - mpi: - buildable: False - intel-oneapi-mpi: - externals: - - spec: intel-oneapi-mpi@2021.9.0%intel@2021.9.0 - #prefix: /apps/spack-managed/oneapi-2023.1.0/intel-oneapi-mpi-2021.9.0-a66eaipzsnyrdgaqzxmqmqz64qzvhkse - modules: - - intel-oneapi-mpi/2021.9.0 - openmpi: - externals: - - spec: openmpi@4.1.4%gcc@12.2.0 ~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix+pmi+romio+rsh~singularity+static+vt+wrapper-rpath fabrics=none romio-filesystem=none schedulers=slurm - modules: - - gcc/12.2.0 - - openmpi/4.1.4 - -### Modifications of common packages - -### All other external packages listed alphabetically autoconf: externals: - spec: autoconf@2.69 diff --git a/configs/sites/tier1/orion/packages_gcc.yaml b/configs/sites/tier1/orion/packages_gcc.yaml new file mode 100644 index 000000000..8a8f8d641 --- /dev/null +++ b/configs/sites/tier1/orion/packages_gcc.yaml @@ -0,0 +1,15 @@ +packages: + all: + compiler:: [gcc@12.2.0] + providers: + mpi:: [openmpi@4.1.4] + # https://github.com/JCSDA/spack-stack/issues/1055 + zlib-api:: [zlib] + mpi: + buildable: False + openmpi: + externals: + - spec: openmpi@4.1.4%gcc@12.2.0 ~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~internal-libevent~internal-pmix~java~legacylaunchers~lustre~memchecker~openshmem~orterunprefix+pmi+romio+rsh~singularity+static+vt+wrapper-rpath fabrics=none romio-filesystem=none schedulers=slurm + modules: + - gcc/12.2.0 + - openmpi/4.1.4 diff --git a/configs/sites/tier1/orion/packages_intel.yaml b/configs/sites/tier1/orion/packages_intel.yaml new file mode 100644 index 000000000..193d5aac0 --- /dev/null +++ b/configs/sites/tier1/orion/packages_intel.yaml @@ -0,0 +1,35 @@ +packages: + all: + compiler:: [intel@2021.9.0] + providers: + mpi:: [intel-oneapi-mpi@2021.9.0] + # https://github.com/JCSDA/spack-stack/issues/1055 + zlib-api:: [zlib] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] + mpi: + buildable: False + intel-oneapi-mpi: + externals: + - spec: intel-oneapi-mpi@2021.9.0%intel@2021.9.0 + modules: + - intel-oneapi-mpi/2021.9.0 + intel-oneapi-mkl: + # Remove buildable: False and uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2023.1.0%intel@2021.9.0 + # modules: + # - intel-oneapi-mkl/2023.1.0 + # Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' diff --git a/configs/sites/tier1/s4/packages.yaml b/configs/sites/tier1/s4/packages.yaml index f5d41523b..a5e542ffd 100644 --- a/configs/sites/tier1/s4/packages.yaml +++ b/configs/sites/tier1/s4/packages.yaml @@ -1,14 +1,14 @@ packages: all: - # Removing gcc/mpich for now, not working as expected - #compiler:: [intel@2021.5.0, gcc@9.3.0] - #providers: - # mpi:: [intel-oneapi-mpi@2021.5.0, mpich@4.0.1] compiler:: [intel@2021.5.0] providers: mpi:: [intel-oneapi-mpi@2021.5.0] # https://github.com/JCSDA/spack-stack/issues/1055 zlib-api:: [zlib] + # Remove the next three lines to switch to intel-oneapi-mkl + blas:: [openblas] + fftw-api:: [fftw] + lapack:: [openblas] ### MPI, Python, MKL mpi: @@ -17,13 +17,23 @@ packages: externals: - spec: intel-oneapi-mpi@2021.5.0%intel@2021.5.0 prefix: /opt/intel/oneapi/2022.1 - # Commenting this out for now, not working as expected - #mpich: - # externals: - # - spec: mpich@4.0.1%gcc@9.3.0 ~hydra device=ch4 - # prefix: /data/prod/hpc-stack/gnu-9.3.0/mpich/4.0.1 - # modules: - # - mpich/4.0.1 + intel-oneapi-mkl: + # Remove buildable: False and uncomment externals section below to use intel-oneapi-mkl + buildable: False + #externals: + #- spec: intel-oneapi-mkl@2022.0.1%intel@2021.5.0 + # prefix: /opt/intel/oneapi/2022.1 + + # Remove this section to switch to intel-oneapi-mkl + ectrans: + require:: + - '@1.2.0 ~mkl +fftw' + gsibec: + require:: + - '@1.2.1 ~mkl' + py-numpy: + require:: + - '@:1.25 ^openblas' ### All other external packages listed alphabetically autoconf: diff --git a/configs/sites/tier2/blackpearl/mirrors.yaml b/configs/sites/tier2/blackpearl/mirrors.yaml new file mode 100644 index 000000000..95ab7092e --- /dev/null +++ b/configs/sites/tier2/blackpearl/mirrors.yaml @@ -0,0 +1,2 @@ +mirrors: + local-source: file:///home/dom/prod/spack-source-cache diff --git a/configs/sites/tier2/blackpearl/packages_oneapi.yaml b/configs/sites/tier2/blackpearl/packages_oneapi.yaml index 385837c86..8466a209c 100644 --- a/configs/sites/tier2/blackpearl/packages_oneapi.yaml +++ b/configs/sites/tier2/blackpearl/packages_oneapi.yaml @@ -3,24 +3,6 @@ packages: compiler:: [oneapi@2024.1.2] providers: mpi:: [intel-oneapi-mpi] - blas:: [intel-oneapi-mkl] - fftw-api:: [intel-oneapi-mkl] - lapack:: [intel-oneapi-mkl] - ectrans: - require:: '+mkl ~fftw' - gsibec: - require:: '+mkl' - py-numpy: - require: - - '^intel-oneapi-mkl' - bison: - require: '%gcc' - gmake: - require: '%gcc' - libmd: - require: '%gcc' - libbsd: - require: '%gcc' mpi: buildable: False diff --git a/doc/source/NewSiteConfigs.rst b/doc/source/NewSiteConfigs.rst index 9de90ef9f..b4116538c 100644 --- a/doc/source/NewSiteConfigs.rst +++ b/doc/source/NewSiteConfigs.rst @@ -5,7 +5,7 @@ Generating new site configs The instructions here describe how to generate a new site config. In addition to configuring new production and testing systems, this is the recommended way for developers to use spack-stack locally on their Linux or MacOS workstations. In general, the recommended approach is to start with an empty/default site config (`linux.default` or `macos.default`). The instructions differ slightly for macOS and Linux and assume that the prerequisites for the platform have been installed as described in :numref:`Sections %s ` and :numref:`%s `. -It is also instructive to peruse the GitHub actions scripts in ``.github/workflows`` and ``.github/actions`` to see how automated spack-stack builds are configured for CI testing, as well as the existing site configs in ``configs/sites``. +The instructions below are for GNU (`gcc`), since this is the easiest and best supported setup. Creating site configs for other compilers is more involved and not described here. It is recommended to peruse the GitHub actions scripts in ``.github/workflows`` and ``.github/actions`` to see how automated spack-stack builds are configured for CI testing, as well as the existing site configs in ``configs/sites``. .. note:: We try to maintain compatibility with as many compilers and compiler versions as possible. The following table lists the compilers that are known to work. Please be aware that if you choose to use a different, older or newer compiler, spack-stack may not work as expected and we have limited resources available for support. Further note that Intel compiler versions are confusing, because the oneAPI version doesn't match the compiler version. We generally refer to the compiler version being the version string in the path to the compiler, e.g, `/apps/oneapi/compiler/2022.0.2/linux/bin/intel64/ifort`. @@ -13,11 +13,11 @@ It is also instructive to peruse the GitHub actions scripts in ``.github/workflo +-------------------------------------------+----------------------------------------------------------------------+---------------------------+ | Compiler | Versions tested/in use in one or more site configs | Spack compiler identifier | +===========================================+======================================================================+===========================+ -| Intel classic (icc, icpc, ifort) | 2021.3.0 to the final version in oneAPI 2023.2.3 [#fn1]_ | ``intel@`` | +| Intel classic (icc, icpc, ifort) | 2021.3.0 to the final version in oneAPI 2023.2.4 [#fn1]_ | ``intel@`` | +-------------------------------------------+----------------------------------------------------------------------+---------------------------+ -| Intel mixed (icx, icpx, ifort) | 2024.1.2 | ``oneapi@`` | +| Intel mixed (icx, icpx, ifort) | 2024.1.2 to 2024.2.0 | ``oneapi@`` | +-------------------------------------------+----------------------------------------------------------------------+---------------------------+ -| GNU (gcc, g++, gfortran) | 9.2.0 to 12.2.0 (note: 13.x.y is **not** yet supported) | ``gcc@`` | +| GNU (gcc, g++, gfortran) | 9.2.0 to 13.3.0 (note: 14.x.y is **not** yet supported) | ``gcc@`` | +-------------------------------------------+----------------------------------------------------------------------+---------------------------+ | Apple clang (clang, clang++, w/ gfortran) | 13.1.6 to 15.0.0 [#fn2]_ | ``apple-clang@`` | +-------------------------------------------+----------------------------------------------------------------------+---------------------------+ @@ -581,14 +581,7 @@ It is recommended to increase the stacksize limit by using ``ulimit -S -s unlimi sed -i 's/tcl/lmod/g' site/modules.yaml -10. If applicable (depends on the environment), edit the main config file for the environment and adjust the compiler matrix to match the compilers for Linux, as above: - -.. code-block:: console - - definitions: - - compilers: ['%gcc'] - -11. Edit site config files and common config files, for example to remove duplicate versions of external packages that are unwanted, add specs in ``spack.yaml``, etc. +10. Edit site config files and common config files, for example to remove duplicate versions of external packages that are unwanted, add specs in ``spack.yaml``, etc. .. code-block:: console @@ -596,7 +589,7 @@ It is recommended to increase the stacksize limit by using ``ulimit -S -s unlimi vi common/*.yaml vi site/*.yaml -12. Process the specs and install +11. Process the specs and install It is recommended to save the output of concretize in a log file and inspect that log file manually and also using the :ref:`show_duplicate_packages.py ` utility. The former is to ensure that the correct compiler and MPI libraries are being used. The latter is done to find and eliminate duplicate package specifications which can cause issues at the module creation step below. @@ -609,19 +602,19 @@ See the :ref:`documentation ` for usage information including ${SPACK_STACK_DIR}/util/show_duplicate_packages.py -d [-c] log.concretize spack install [--verbose] [--fail-fast] 2>&1 | tee log.install -13. Create tcl module files (replace ``tcl`` with ``lmod`` if you have manually installed lmod) +12. Create tcl module files (replace ``tcl`` with ``lmod`` if you have manually installed lmod) .. code-block:: console spack module tcl refresh -14. Create meta-modules for compiler, mpi, python +13. Create meta-modules for compiler, mpi, python .. code-block:: console spack stack setup-meta-modules -15. You now have a spack-stack environment that can be accessed by running ``module use ${SPACK_STACK_DIR}/envs/unified-env.mylinux/install/modulefiles/Core``. The modules defined here can be loaded to build and run code as described in :numref:`Section %s `. +14. You now have a spack-stack environment that can be accessed by running ``module use ${SPACK_STACK_DIR}/envs/unified-env.mylinux/install/modulefiles/Core``. The modules defined here can be loaded to build and run code as described in :numref:`Section %s `. .. _NewSiteConfigs_Linux_CreateEnv_Nvidia: diff --git a/doc/source/PreConfiguredSites.rst b/doc/source/PreConfiguredSites.rst index 0a8366246..4084281e0 100644 --- a/doc/source/PreConfiguredSites.rst +++ b/doc/source/PreConfiguredSites.rst @@ -249,20 +249,14 @@ With Intel, the following is required for building new spack environments and fo umask 0022 module unload PrgEnv-cray - module load PrgEnv-intel/8.3.2 + module load PrgEnv-intel/8.3.3 module unload intel - module load intel-classic/2021.4.0 + module load intel-classic/2023.2.0 module unload cray-mpich - module load cray-mpich/8.1.14 - module unload cray-python - module load cray-python/3.9.7.1 - module unload cray-libsci - module load cray-libsci/22.08.1.1 - - module use /p/app/projects/NEPTUNE/spack-stack/modulefiles - module load ecflow/5.8.4 + module load cray-mpich/8.1.21 + module load libfabric/1.12.1.2.2.1 -For ``spack-stack-1.7.0`` with Intel, proceed with loading the following modules: +THIS SECTION IS OUT OF DATE, REFER TO 1.7.0 RELEASE DOCUMENTATION - - For ``spack-stack-1.7.0`` with Intel, proceed with loading the following modules: .. code-block:: console @@ -271,8 +265,8 @@ For ``spack-stack-1.7.0`` with Intel, proceed with loading the following modules module unload craype-network-ofi module load craype-network-ucx module use /p/app/projects/NEPTUNE/spack-stack/spack-stack-1.7.0/envs/ue-intel-2021.4.0/install/modulefiles/Core - module load stack-intel/2021.4.0 - module load stack-cray-mpich/8.1.14 + module load stack-intel/2021.10.0 + module load stack-cray-mpich/8.1.21 module load stack-python/3.10.13 With GNU, the following is required for building new spack environments and for using spack to build and run software. Don't use ``module purge`` on Narwhal! @@ -281,20 +275,14 @@ With GNU, the following is required for building new spack environments and for umask 0022 module unload PrgEnv-cray - module load PrgEnv-gnu/8.3.2 + module load PrgEnv-gnu/8.3.3 module unload gcc module load gcc/10.3.0 module unload cray-mpich - module load cray-mpich/8.1.14 - module unload cray-python - module load cray-python/3.9.7.1 - module unload cray-libsci - module load cray-libsci/22.08.1.1 - - module use /p/app/projects/NEPTUNE/spack-stack/modulefiles - module load ecflow/5.8.4 + module load cray-mpich/8.1.21 + module load libfabric/1.12.1.2.2.1 -For ``spack-stack-1.7.0`` with GNU, proceed with loading the following modules: +THIS SECTION IS OUT OF DATE, REFER TO 1.7.0 RELEASE DOCUMENTATION - For ``spack-stack-1.7.0`` with GNU, proceed with loading the following modules: .. code-block:: console @@ -304,7 +292,7 @@ For ``spack-stack-1.7.0`` with GNU, proceed with loading the following modules: module load craype-network-ucx module use /p/app/projects/NEPTUNE/spack-stack/spack-stack-1.7.0/envs/ue-gcc-10.3.0/install/modulefiles/Core module load stack-gcc/10.3.0 - module load stack-cray-mpich/8.1.14 + module load stack-cray-mpich/8.1.21 module load stack-python/3.10.13 .. _Preconfigured_Sites_Nautilus: @@ -320,13 +308,6 @@ With Intel, the following is required for building new spack environments and fo umask 0022 module purge - module load slurm - module load intel/compiler/2022.0.2 - module load penguin/openmpi/4.1.6/intel-classic-2022.0.2 - - module use /p/app/projects/NEPTUNE/spack-stack/modulefiles - module load ecflow/5.8.4 - For ``spack-stack-1.7.0`` with Intel, proceed with loading the following modules: .. code-block:: console @@ -343,14 +324,6 @@ With AMD clang/flang (aocc), the following is required for building new spack en umask 0022 module purge - module load slurm - module load amd/aocc/4.0.0 - module load amd/aocl/aocc/4.0 - module load penguin/openmpi/4.1.4/aocc - - module use /p/app/projects/NEPTUNE/spack-stack/modulefiles - module load ecflow/5.8.4 - .. note:: ``spack-stack-1.7.0`` is not yet supported with the Arm clang/flang compilers. Use Intel instead. diff --git a/spack-ext/repos/spack-stack/packages/emc-verif-global-env/package.py b/spack-ext/repos/spack-stack/packages/emc-verif-global-env/package.py index 3632d9e29..e06c15e82 100644 --- a/spack-ext/repos/spack-stack/packages/emc-verif-global-env/package.py +++ b/spack-ext/repos/spack-stack/packages/emc-verif-global-env/package.py @@ -24,7 +24,11 @@ class EmcVerifGlobalEnv(BundlePackage): depends_on("grib-util") # Test grads # depends_on('grads') - depends_on("wgrib2") + # Currently, wgrib2 doesn't build with oneapi, + # but there isn't a "when not" option in spack yet + depends_on("wgrib2", when="%apple-clang") + depends_on("wgrib2", when="%gcc") + depends_on("wgrib2", when="%intel") depends_on("python") depends_on("prod-util") depends_on("met") diff --git a/spack-ext/repos/spack-stack/packages/global-workflow-env/package.py b/spack-ext/repos/spack-stack/packages/global-workflow-env/package.py index 309e75fcb..1da3f6238 100644 --- a/spack-ext/repos/spack-stack/packages/global-workflow-env/package.py +++ b/spack-ext/repos/spack-stack/packages/global-workflow-env/package.py @@ -38,7 +38,11 @@ class GlobalWorkflowEnv(BundlePackage): depends_on("landsfcutil") depends_on("sigio") depends_on("bufr") - depends_on("wgrib2") + # Currently, wgrib2 doesn't build with oneapi, + # but there isn't a "when not" option in spack yet + depends_on("wgrib2", when="%apple-clang") + depends_on("wgrib2", when="%gcc") + depends_on("wgrib2", when="%intel") depends_on("met") depends_on("metplus") depends_on("gsi-ncdiag") diff --git a/spack-ext/repos/spack-stack/packages/nceplibs-env/package.py b/spack-ext/repos/spack-stack/packages/nceplibs-env/package.py index e5c25bfcb..a740bf2f4 100644 --- a/spack-ext/repos/spack-stack/packages/nceplibs-env/package.py +++ b/spack-ext/repos/spack-stack/packages/nceplibs-env/package.py @@ -36,6 +36,10 @@ class NceplibsEnv(BundlePackage): depends_on("w3emc") depends_on("w3nco") depends_on("wrf-io") - depends_on("wgrib2") + # Currently, wgrib2 doesn't build with oneapi, + # but there isn't a "when not" option in spack yet + depends_on("wgrib2", when="%apple-clang") + depends_on("wgrib2", when="%gcc") + depends_on("wgrib2", when="%intel") # There is no need for install() since there is no code. diff --git a/spack-ext/repos/spack-stack/packages/ufs-srw-app-env/package.py b/spack-ext/repos/spack-stack/packages/ufs-srw-app-env/package.py index d4b53a699..7ce84d52d 100644 --- a/spack-ext/repos/spack-stack/packages/ufs-srw-app-env/package.py +++ b/spack-ext/repos/spack-stack/packages/ufs-srw-app-env/package.py @@ -41,7 +41,11 @@ class UfsSrwAppEnv(BundlePackage): depends_on("sigio") depends_on("wrf-io") depends_on("w3emc") - depends_on("wgrib2") + # Currently, wgrib2 doesn't build with oneapi, + # but there isn't a "when not" option in spack yet + depends_on("wgrib2", when="%apple-clang") + depends_on("wgrib2", when="%gcc") + depends_on("wgrib2", when="%intel") depends_on("gsi-ncdiag") depends_on("met") depends_on("metplus") diff --git a/spack-ext/repos/spack-stack/packages/ufs-utils-env/package.py b/spack-ext/repos/spack-stack/packages/ufs-utils-env/package.py index 26f02c38e..e7ba375db 100644 --- a/spack-ext/repos/spack-stack/packages/ufs-utils-env/package.py +++ b/spack-ext/repos/spack-stack/packages/ufs-utils-env/package.py @@ -45,6 +45,10 @@ class UfsUtilsEnv(BundlePackage): depends_on("wrf-io") depends_on("ncio") depends_on("landsfcutil") - depends_on("wgrib2") + # Currently, wgrib2 doesn't build with oneapi, + # but there isn't a "when not" option in spack yet + depends_on("wgrib2", when="%apple-clang") + depends_on("wgrib2", when="%gcc") + depends_on("wgrib2", when="%intel") # There is no need for install() since there is no code. diff --git a/spack-ext/repos/spack-stack/packages/upp-env/package.py b/spack-ext/repos/spack-stack/packages/upp-env/package.py index e4fe72d09..c0ca64638 100644 --- a/spack-ext/repos/spack-stack/packages/upp-env/package.py +++ b/spack-ext/repos/spack-stack/packages/upp-env/package.py @@ -31,7 +31,11 @@ class UppEnv(BundlePackage): depends_on("wrf-io") depends_on("prod-util") # For testing: - depends_on("wgrib2") + # Currently, wgrib2 doesn't build with oneapi, + # but there isn't a "when not" option in spack yet + depends_on("wgrib2", when="%apple-clang") + depends_on("wgrib2", when="%gcc") + depends_on("wgrib2", when="%intel") depends_on("grib-util") # There is no need for install() since there is no code.