diff --git a/configs/common/modules_lmod.yaml b/configs/common/modules_lmod.yaml index 72349aa6c..4cc4d43e6 100644 --- a/configs/common/modules_lmod.yaml +++ b/configs/common/modules_lmod.yaml @@ -132,8 +132,8 @@ modules: ^esmf@8.6.1+debug snapshot=none: 'esmf-8.6.1-debug' ^esmf@8.7.0~debug snapshot=none: 'esmf-8.7.0' ^esmf@8.7.0+debug snapshot=none: 'esmf-8.7.0-debug' - ^esmf@8.8.0b06~debug snapshot=b06: 'esmf-8.8.0b06' - ^esmf@8.8.0b06+debug snapshot=b06: 'esmf-8.8.0b06-debug' + ^esmf@8.8.0b10~debug snapshot=b10: esmf-8.8.0b10 + ^esmf@8.8.0b10+debug snapshot=b10: esmf-8.8.0b10-debug openmpi: environment: set: diff --git a/configs/common/modules_tcl.yaml b/configs/common/modules_tcl.yaml index 77b0817e8..b59e3a9f6 100644 --- a/configs/common/modules_tcl.yaml +++ b/configs/common/modules_tcl.yaml @@ -134,8 +134,8 @@ modules: ^esmf@8.6.1+debug snapshot=none: 'esmf-8.6.1-debug' ^esmf@8.7.0~debug snapshot=none: 'esmf-8.7.0' ^esmf@8.7.0+debug snapshot=none: 'esmf-8.7.0-debug' - ^esmf@8.8.0b06~debug snapshot=b06: 'esmf-8.8.0b06' - ^esmf@8.8.0b06+debug snapshot=b06: 'esmf-8.8.0b06-debug' + ^esmf@8.8.0b10~debug snapshot=b10: esmf-8.8.0b10 + ^esmf@8.8.0b10+debug snapshot=b10: esmf-8.8.0b10-debug openmpi: environment: set: diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 240180186..bd13a65ca 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -55,7 +55,7 @@ packages: esmf: require: - '~xerces ~pnetcdf +shared +external-parallelio' - - any_of: ['@=8.6.1 snapshot=none', '@=8.8.0b06 snapshot=b06'] + - any_of: ['@=8.6.1 snapshot=none', '@=8.8.0b10 snapshot=b10'] - any_of: ['fflags="-fp-model precise" cxxflags="-fp-model precise"'] when: "%intel" message: "Extra ESMF compile options for Intel" @@ -177,8 +177,11 @@ packages: # ninja - when adding information here, also check Discover site config odc: require: '@1.5.2 ~fortran' + # Todo: update to 0.3.28 so that it builds with 'clang'. Check + # packages_clang.yaml where we are overwriting openblas for now. openblas: - require: '@0.3.24' + require: + - '@0.3.24' openmpi: require: '~internal-hwloc +two_level_namespace' openssl: diff --git a/configs/common/packages_clang.yaml b/configs/common/packages_clang.yaml new file mode 100644 index 000000000..b9ae4a53d --- /dev/null +++ b/configs/common/packages_clang.yaml @@ -0,0 +1,28 @@ +packages: + all: + providers: + blas: [openblas] + fftw-api: [fftw] + lapack: [openblas] + ectrans: + require: + - '~mkl +fftw' + gsibec: + require: + - '~mkl' + py-numpy: + require: + - '^openblas' + # clang@19 requires openblas@0.3.28 - with this, we can'this + # build all the Python dependencies as of 2024/12/11 due to + # version conflicts. + openblas: + require:: + - '@0.3.28' + # ip@5 doesn't build with clang@19 compilers (flang-new) + # https://github.com/NOAA-EMC/NCEPLIBS-ip/issues/263 + # but requiring %gcc doesn't work when using openblas + #ip: + # require: + # #- '~openmp' + # - '%gcc' diff --git a/configs/sites/tier1/derecho/packages.yaml b/configs/sites/tier1/derecho/packages.yaml index 7105a030a..f9fac0663 100644 --- a/configs/sites/tier1/derecho/packages.yaml +++ b/configs/sites/tier1/derecho/packages.yaml @@ -1,17 +1,18 @@ packages: all: target: [core2] + ### Modification of common packages + # Tell esmf that this is not a 'normal' Cray ... 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" + require: + - 'esmf_os=Linux esmf_comm=mpich' # py-scipy 1.12 does not build with intel on Derecho, pin to 1.11.4 # use same version with gcc for consistency on the machine py-scipy: require: - '@1.11.4' + ### All other external packages listed alphabetically autoconf: externals: diff --git a/configs/sites/tier1/derecho/packages_intel.yaml b/configs/sites/tier1/derecho/packages_intel.yaml index 60535c698..ca48188a6 100644 --- a/configs/sites/tier1/derecho/packages_intel.yaml +++ b/configs/sites/tier1/derecho/packages_intel.yaml @@ -3,10 +3,6 @@ packages: compiler:: [intel@2021.10.0,gcc@11.2.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: @@ -18,25 +14,11 @@ packages: - 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 + # No intel-oneapi-mkl installed on Derecho, install via spack. + # Prefer the version that Intel releases with the above compiler + prefer: + - '@2023.2.0' # 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.5.0 ~mkl +fftw' - gsibec: - require:: - - '@1.2.1 ~mkl' - py-numpy: - require:: - - '@:1.23 ^openblas' - # *DH diff --git a/configs/sites/tier2/bounty/compilers.yaml b/configs/sites/tier2/bounty/compilers.yaml index 2fb1419e6..04a1f0a15 100644 --- a/configs/sites/tier2/bounty/compilers.yaml +++ b/configs/sites/tier2/bounty/compilers.yaml @@ -38,3 +38,18 @@ compilers: modules: [] environment: {} extra_rpaths: [] +- compiler: + spec: clang@=19.1.4 + paths: + cc: /home/dom/prod/llvm-19.1.4/bin/clang + cxx: /home/dom/prod/llvm-19.1.4/bin/clang++ + f77: /home/dom/prod/llvm-19.1.4/bin/flang-new + fc: /home/dom/prod/llvm-19.1.4/bin/flang-new + flags: {} + operating_system: almalinux9 + target: x86_64 + modules: [] + environment: + append_path: + LD_LIBRARY_PATH: /home/dom/prod/llvm-19.1.4/lib + extra_rpaths: [/home/dom/prod/llvm-19.1.4/lib] diff --git a/configs/sites/tier2/bounty/packages_clang.yaml b/configs/sites/tier2/bounty/packages_clang.yaml new file mode 100644 index 000000000..aaab1a988 --- /dev/null +++ b/configs/sites/tier2/bounty/packages_clang.yaml @@ -0,0 +1,5 @@ +packages: + all: + compiler:: [clang@19.1.4] + providers: + mpi:: [openmpi@5.0.5] diff --git a/configs/templates/neptune-dev/spack.yaml b/configs/templates/neptune-dev/spack.yaml index 0f5ae6907..f0a97f662 100644 --- a/configs/templates/neptune-dev/spack.yaml +++ b/configs/templates/neptune-dev/spack.yaml @@ -8,8 +8,8 @@ spack: definitions: - compilers: ['%aocc', '%apple-clang', '%gcc', '%intel', '%oneapi'] - packages: - - neptune-env +espc ^esmf@=8.8.0b06 - - neptune-python-env +xnrl ^neptune-env +espc ^esmf@=8.8.0b06 + - neptune-env +espc ^esmf@=8.8.0b10 + - neptune-python-env +xnrl ^neptune-env +espc ^esmf@=8.8.0b10 specs: - matrix: diff --git a/configs/templates/skylab-dev/spack.yaml b/configs/templates/skylab-dev/spack.yaml index a58b63201..ba3c9c1d6 100644 --- a/configs/templates/skylab-dev/spack.yaml +++ b/configs/templates/skylab-dev/spack.yaml @@ -14,11 +14,11 @@ spack: - jedi-fv3-env - jedi-geos-env ^esmf@=8.6.1 - jedi-mpas-env - - jedi-neptune-env ^esmf@=8.8.0b06 + - jedi-neptune-env ^esmf@=8.8.0b10 - jedi-ufs-env ^esmf@=8.6.1 - jedi-um-env - - neptune-env ^esmf@=8.8.0b06 - - neptune-python-env ^esmf@=8.8.0b06 + - neptune-env ^esmf@=8.8.0b10 + - neptune-python-env ^esmf@=8.8.0b10 - soca-env # Various crtm tags (list all to avoid duplicate packages) @@ -27,7 +27,7 @@ spack: # Various esmf tags (list all to avoid duplicate packages) - esmf@=8.6.1 snapshot=none - - esmf@=8.8.0b06 snapshot=b06 + - esmf@=8.8.0b10 snapshot=b10 specs: - matrix: diff --git a/configs/templates/unified-dev/spack.yaml b/configs/templates/unified-dev/spack.yaml index 06985043e..f4dab2eb5 100644 --- a/configs/templates/unified-dev/spack.yaml +++ b/configs/templates/unified-dev/spack.yaml @@ -17,12 +17,12 @@ spack: - jedi-fv3-env - jedi-geos-env ^esmf@=8.6.1 - jedi-mpas-env - - jedi-neptune-env ^esmf@=8.8.0b06 + - jedi-neptune-env ^esmf@=8.8.0b10 - jedi-tools-env - jedi-ufs-env ^esmf@=8.6.1 - jedi-um-env - - neptune-env ^esmf@=8.8.0b06 - - neptune-python-env ^esmf@=8.8.0b06 + - neptune-env ^esmf@=8.8.0b10 + - neptune-python-env ^esmf@=8.8.0b10 - soca-env - ufs-srw-app-env ^esmf@=8.6.1 - ufs-weather-model-env ^esmf@=8.6.1 @@ -33,7 +33,7 @@ spack: # Various esmf tags (list all to avoid duplicate packages) - esmf@=8.6.1 snapshot=none - - esmf@=8.8.0b06 snapshot=b06 + - esmf@=8.8.0b10 snapshot=b10 # MADIS for WCOSS2 decoders. - madis@4.5 diff --git a/spack b/spack index fb5aa538d..c0dc3572e 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit fb5aa538da9fdcb8fce0aee2dd4d7c17f9dd601a +Subproject commit c0dc3572e4ce215ab4810ef22ea6082eba07e4ef