From 9d0ab9655f012cd72c800b9bc3a1edb954dae813 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Thu, 14 Nov 2024 13:51:13 -0700 Subject: [PATCH 01/10] Unpin or update several packages in configs/common/packages.yaml --- configs/common/packages | 0 configs/common/packages.yaml | 42 +++++++++++++++++++----------------- 2 files changed, 22 insertions(+), 20 deletions(-) create mode 100644 configs/common/packages diff --git a/configs/common/packages b/configs/common/packages new file mode 100644 index 000000000..e69de29bb diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 1c40bd5e8..d9ac97924 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -26,7 +26,7 @@ packages: cairo: require: '+pic' cdo: - require: '@2.3.0 ~openmp' + require: '@2.4.4 ~openmp' cmake: version: ['3.27.9'] require: '+ownlibs' @@ -143,9 +143,9 @@ packages: require: '@2.46.3 ~shared ~f2py' variants: '+pflogger' # To avoid duplicate packages being built - meson: - require: - - '@1.5.1:' + #meson: + # require: + # - '@1.5.1:' # If making changes here, also check the Discover site configs and the CI workflows met: require: '@11.1.1 +python +grib2' @@ -156,7 +156,7 @@ packages: mpich: require: '~hwloc' nco: - require: '@5.1.6 ~doc' + require: '@5.2.4 ~doc' # ncview - when adding information here, also check Orion # and Discover site configs nemsio: @@ -199,9 +199,9 @@ packages: require: '~tiff' python: require: '@3.11.7' - py-attrs: - # https://github.com/JCSDA/spack-stack/issues/740 - require: '@21.4.0' + #py-attrs: + # # https://github.com/JCSDA/spack-stack/issues/740 + # require: '@21.4.0' py-cartopy: require: '+plotting' py-cryptography: @@ -228,8 +228,8 @@ packages: # https://github.com/JCSDA/spack-stack/issues/1276 py-matplotlib: require: '@3.7.4' - py-meson-python: - require: '@0.15.0' + #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 @@ -237,27 +237,28 @@ packages: #py-mysql-connector-python: # require: '@8.0.32' py-netcdf4: - require: '@1.5.8 ~mpi' + #require: '@1.5.8 ~mpi' + require: '~mpi' # py-numpy@1.26 causes many build problems with older Python packages # also check Nautilus site config when making changes here # https://github.com/JCSDA/spack-stack/issues/1276 - py-numpy: - require: - - '@:1.23.5' + #py-numpy: + # require: + # - '@:1.23.5' py-pandas: require: '+excel' - py-pybind11: - require: '@2.11.0' + #py-pybind11: + # require: '@2.11.0' # To avoid duplicate packages py-ruamel-yaml: require: '@0.17.16' # Pin the py-setuptools version to avoid duplicate Python packages py-setuptools: - require: '@63.4.3' + require: '@69' py-setuptools-rust: require: '+rust_bootstrap' - py-shapely: - require: '@1.8.0' + #py-shapely: + # require: '@1.8.0' py-torch: require: '+custom-protobuf ~mkldnn' # To avoid duplicate packages @@ -293,4 +294,5 @@ packages: wrf-io: require: '@1.2.0' zstd: - require: '@1.5.2 +programs' + #require: '@1.5.2 +programs' + require: '+programs' From 4b59184f6a10f23a421468f3ac84dbcf193b6544 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sun, 17 Nov 2024 18:05:39 -0500 Subject: [PATCH 02/10] Update .gitmodules and submodule pointer for spack for code review and testing --- .gitmodules | 6 ++++-- spack | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitmodules b/.gitmodules index a69f3e4f1..08b91dba6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,9 @@ [submodule "spack"] path = spack - url = https://github.com/jcsda/spack - branch = spack-stack-dev + #url = https://github.com/jcsda/spack + #branch = spack-stack-dev + url = https://github.com/climbfuji/spack + branch = bugfix/py_pyhdf_numpy [submodule "doc/CMakeModules"] path = doc/CMakeModules url = https://github.com/noaa-emc/cmakemodules diff --git a/spack b/spack index b6ef265ec..b3b3a5a6f 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit b6ef265ec4582ddca131534a9d314e233919ae69 +Subproject commit b3b3a5a6fd5e030354f79165bc7722258210958e From 4898371618b954b0d99b5bed36de43c8c08696d7 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sun, 17 Nov 2024 18:06:11 -0500 Subject: [PATCH 03/10] Pin py-netcdf to version 1.7.1 with variant mpi enabled --- configs/common/packages | 0 configs/common/packages.yaml | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) delete mode 100644 configs/common/packages diff --git a/configs/common/packages b/configs/common/packages deleted file mode 100644 index e69de29bb..000000000 diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index d9ac97924..49b90f24a 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -236,9 +236,10 @@ packages: # README.md #py-mysql-connector-python: # require: '@8.0.32' + # Variant ~mpi not working for latest py-netcdf4 + # https://github.com/spack/spack/issues/47652 py-netcdf4: - #require: '@1.5.8 ~mpi' - require: '~mpi' + require: '@1.7.1 +mpi' # py-numpy@1.26 causes many build problems with older Python packages # also check Nautilus site config when making changes here # https://github.com/JCSDA/spack-stack/issues/1276 From db66b49c177976d4c5c04956a384d6531983a519 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Sun, 17 Nov 2024 20:51:44 -0500 Subject: [PATCH 04/10] Use different versions of cdo for older Intel classic compilers --- configs/common/packages.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 49b90f24a..fd53b6bbf 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -26,7 +26,15 @@ packages: cairo: require: '+pic' cdo: - require: '@2.4.4 ~openmp' + prefer: + - '@2.4.4 ~openmp' + require: + - any_of: ['@2.3.0 ~openmp'] + when: '%intel@2021:' + message: '2.3.0 is the last version to use C++17' + - any_of: ['@2.0.5 ~openmp'] + when: '%intel@:2020' + message: '2.0.5 is the last version to use C++14' cmake: version: ['3.27.9'] require: '+ownlibs' From 5a442d7f81eaeee9c97c0c7b4e17e15648fe2f00 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 18 Nov 2024 07:45:34 -0500 Subject: [PATCH 05/10] Also use cdo@2.3.0 with apple-clang@14 --- configs/common/packages.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index fd53b6bbf..70b15b0b5 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -31,10 +31,13 @@ packages: require: - any_of: ['@2.3.0 ~openmp'] when: '%intel@2021:' - message: '2.3.0 is the last version to use C++17' + message: '2.3.0 is the last version to use C++17, use with Intel Classic' + - any_of: ['@2.3.0 ~openmp'] + when: '%apple-clang@:14' + message: '2.3.0 is the last version to use C++17, use with Apple Clang 14 and earlier' - any_of: ['@2.0.5 ~openmp'] when: '%intel@:2020' - message: '2.0.5 is the last version to use C++14' + message: '2.0.5 is the last version to use C++14, use with Intel Classic 2020 and earlier' cmake: version: ['3.27.9'] require: '+ownlibs' From f9575af288a1d655d8fd9fa0c70ecf8c6add5085 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Wed, 20 Nov 2024 22:14:01 -0500 Subject: [PATCH 06/10] Update submodule pointer for spack --- spack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spack b/spack index b274d591f..3baaff2ad 160000 --- a/spack +++ b/spack @@ -1 +1 @@ -Subproject commit b274d591fc82d38609124e3fe6f8ef1753357947 +Subproject commit 3baaff2aded5ef61e0b47b27b3fde1b0b992c268 From 9b2757c72b2fc023facbb97b9727a43078c65305 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 13 Dec 2024 08:42:19 -0700 Subject: [PATCH 07/10] Remove hardcoded version of py-numpy from all tier-1 site configs --- configs/sites/tier1/aws-pcluster/packages_intel.yaml | 2 +- configs/sites/tier1/derecho/packages_intel.yaml | 2 +- configs/sites/tier1/gaea-c5/packages.yaml | 2 +- configs/sites/tier1/gaea-c6/packages.yaml | 2 +- configs/sites/tier1/hera/packages_intel.yaml | 2 +- configs/sites/tier1/hercules/packages_intel.yaml | 2 +- configs/sites/tier1/nautilus/packages_gcc.yaml | 2 +- configs/sites/tier1/noaa-aws/packages_intel.yaml | 2 +- configs/sites/tier1/noaa-azure/packages_intel.yaml | 2 +- configs/sites/tier1/noaa-gcloud/packages_intel.yaml | 2 +- configs/sites/tier1/orion/packages_intel.yaml | 2 +- configs/sites/tier1/s4/packages.yaml | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/configs/sites/tier1/aws-pcluster/packages_intel.yaml b/configs/sites/tier1/aws-pcluster/packages_intel.yaml index 20f5c020f..7a7fec11c 100644 --- a/configs/sites/tier1/aws-pcluster/packages_intel.yaml +++ b/configs/sites/tier1/aws-pcluster/packages_intel.yaml @@ -31,5 +31,5 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH diff --git a/configs/sites/tier1/derecho/packages_intel.yaml b/configs/sites/tier1/derecho/packages_intel.yaml index 60535c698..5e1962e14 100644 --- a/configs/sites/tier1/derecho/packages_intel.yaml +++ b/configs/sites/tier1/derecho/packages_intel.yaml @@ -37,6 +37,6 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH diff --git a/configs/sites/tier1/gaea-c5/packages.yaml b/configs/sites/tier1/gaea-c5/packages.yaml index ba5e06efa..9d59b8bbd 100644 --- a/configs/sites/tier1/gaea-c5/packages.yaml +++ b/configs/sites/tier1/gaea-c5/packages.yaml @@ -35,7 +35,7 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH ### All other external packages listed alphabetically diff --git a/configs/sites/tier1/gaea-c6/packages.yaml b/configs/sites/tier1/gaea-c6/packages.yaml index 90c651753..224b56831 100644 --- a/configs/sites/tier1/gaea-c6/packages.yaml +++ b/configs/sites/tier1/gaea-c6/packages.yaml @@ -34,7 +34,7 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH ### All other external packages listed alphabetically diff --git a/configs/sites/tier1/hera/packages_intel.yaml b/configs/sites/tier1/hera/packages_intel.yaml index 0893faf15..514424a99 100644 --- a/configs/sites/tier1/hera/packages_intel.yaml +++ b/configs/sites/tier1/hera/packages_intel.yaml @@ -30,7 +30,7 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH zlib-ng: require: diff --git a/configs/sites/tier1/hercules/packages_intel.yaml b/configs/sites/tier1/hercules/packages_intel.yaml index d49bd9822..d7c7dbe21 100644 --- a/configs/sites/tier1/hercules/packages_intel.yaml +++ b/configs/sites/tier1/hercules/packages_intel.yaml @@ -30,4 +30,4 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' diff --git a/configs/sites/tier1/nautilus/packages_gcc.yaml b/configs/sites/tier1/nautilus/packages_gcc.yaml index 5bf3ce644..c97a48ba8 100644 --- a/configs/sites/tier1/nautilus/packages_gcc.yaml +++ b/configs/sites/tier1/nautilus/packages_gcc.yaml @@ -31,4 +31,4 @@ packages: - '@1.2.1 +mkl' py-numpy: require:: - - '@:1.23 ^intel-oneapi-mkl' + - '^intel-oneapi-mkl' diff --git a/configs/sites/tier1/noaa-aws/packages_intel.yaml b/configs/sites/tier1/noaa-aws/packages_intel.yaml index 1b739954d..665c8aaa0 100644 --- a/configs/sites/tier1/noaa-aws/packages_intel.yaml +++ b/configs/sites/tier1/noaa-aws/packages_intel.yaml @@ -30,5 +30,5 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH diff --git a/configs/sites/tier1/noaa-azure/packages_intel.yaml b/configs/sites/tier1/noaa-azure/packages_intel.yaml index 1b739954d..665c8aaa0 100644 --- a/configs/sites/tier1/noaa-azure/packages_intel.yaml +++ b/configs/sites/tier1/noaa-azure/packages_intel.yaml @@ -30,5 +30,5 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH diff --git a/configs/sites/tier1/noaa-gcloud/packages_intel.yaml b/configs/sites/tier1/noaa-gcloud/packages_intel.yaml index 1b739954d..665c8aaa0 100644 --- a/configs/sites/tier1/noaa-gcloud/packages_intel.yaml +++ b/configs/sites/tier1/noaa-gcloud/packages_intel.yaml @@ -30,5 +30,5 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' # *DH diff --git a/configs/sites/tier1/orion/packages_intel.yaml b/configs/sites/tier1/orion/packages_intel.yaml index d49bd9822..d7c7dbe21 100644 --- a/configs/sites/tier1/orion/packages_intel.yaml +++ b/configs/sites/tier1/orion/packages_intel.yaml @@ -30,4 +30,4 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' diff --git a/configs/sites/tier1/s4/packages.yaml b/configs/sites/tier1/s4/packages.yaml index 1a85fdd87..9206efe31 100644 --- a/configs/sites/tier1/s4/packages.yaml +++ b/configs/sites/tier1/s4/packages.yaml @@ -34,7 +34,7 @@ packages: - '@1.2.1 ~mkl' py-numpy: require:: - - '@:1.23 ^openblas' + - '^openblas' ### All other external packages listed alphabetically autoconf: From 2411498ab1563e7749f22fa615db36377c1d1e3f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Fri, 13 Dec 2024 20:28:21 -0700 Subject: [PATCH 08/10] Bug fixes for S4 site config: correct GNU backend for Intel, no external curl/openssl, use external qt --- configs/sites/tier1/s4/compilers.yaml | 20 ++++++++++++--- configs/sites/tier1/s4/packages.yaml | 36 ++++++++++++++------------- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/configs/sites/tier1/s4/compilers.yaml b/configs/sites/tier1/s4/compilers.yaml index dff2729fb..6e8ebb5c7 100644 --- a/configs/sites/tier1/s4/compilers.yaml +++ b/configs/sites/tier1/s4/compilers.yaml @@ -13,9 +13,9 @@ compilers: - intel/2023.2 environment: prepend_path: - PATH: /opt/gcc/13.3/bin - LD_LIBRARY_PATH: /opt/intel/oneapi/2023.2/compiler/2023.2.0/linux/compiler/lib/intel64_lin:/opt/gcc/13.3/lib64:/opt/gcc/13.3/lib - CPATH: /opt/gcc/13.3/include + PATH: /opt/gcc/10.2.0/bin + LD_LIBRARY_PATH: /opt/intel/oneapi/2023.2/compiler/2023.2.0/linux/compiler/lib/intel64_lin:/opt/gcc/10.2.0/lib64:/opt/gcc/10.2.0/lib + CPATH: /opt/gcc/10.2.0/include extra_rpaths: [] - compiler: spec: gcc@=13.3.0 @@ -31,6 +31,20 @@ compilers: - gcc/13.3 environment: {} extra_rpaths: [] +- compiler: + spec: gcc@=10.2.0 + paths: + cc: /opt/gcc/10.2.0/bin/gcc + cxx: /opt/gcc/10.2.0/bin/g++ + f77: /opt/gcc/10.2.0/bin/gfortran + fc: /opt/gcc/10.2.0/bin/gfortran + flags: {} + operating_system: rocky8 + target: x86_64 + modules: + - gcc/10.2 + environment: {} + extra_rpaths: [] - compiler: spec: gcc@=8.5.0 paths: diff --git a/configs/sites/tier1/s4/packages.yaml b/configs/sites/tier1/s4/packages.yaml index 9206efe31..08acf079c 100644 --- a/configs/sites/tier1/s4/packages.yaml +++ b/configs/sites/tier1/s4/packages.yaml @@ -1,12 +1,15 @@ packages: all: - compiler:: [intel@2021.10.0,gcc@13.3.0] + compiler:: [intel@2021.10.0,gcc@10.2.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] + # spack concretizer gets confused and wants an AVX512 architecture for some packages + require: + - 'arch=linux-rocky8-skylake' ### MPI, Python, MKL mpi: @@ -77,10 +80,11 @@ packages: externals: - spec: cpio@2.12 prefix: /usr - curl: - externals: - - spec: curl@7.61.1+gssapi+ldap+nghttp2 - prefix: /usr + # OS curl/openssl cause problems + #curl: + # externals: + # - spec: curl@7.61.1+gssapi+ldap+nghttp2 + # prefix: /usr diffutils: externals: - spec: diffutils@3.6 @@ -145,10 +149,11 @@ packages: externals: - spec: openssh@8.0p1 prefix: /usr - openssl: - externals: - - spec: openssl@1.1.1k - prefix: /usr + # OS curl/openssl cause problems + #openssl: + # externals: + # - spec: openssl@1.1.1k + # prefix: /usr perl: externals: - spec: perl@5.26.3~cpanm+opcode+open+shared+threads @@ -157,14 +162,11 @@ packages: externals: - spec: pkgconf@1.4.2 prefix: /usr - # TODO - installing via spack-stack works, for example for - # spack-stack-1.8.0, but would be good if we didn't have to. - # https://github.com/JCSDA/spack-stack/issues/1329 - #qt: - # buildable: False - # externals: - # - spec: qt@5.9.7 - # prefix: /usr + qt: + buildable: False + externals: + - spec: qt@5.15.3 + prefix: /usr rsync: externals: - spec: rsync@3.1.3 From 6c61e0f3c70a962938d69afd48a3f6e17af5556f Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Mon, 16 Dec 2024 08:52:49 -0700 Subject: [PATCH 09/10] Remove 'prefer' for cdo in configs/common/packages.yaml, since it clashes with the 'require' block below --- configs/common/packages.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index ee6783423..1c7ee1757 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -26,8 +26,6 @@ packages: cairo: require: '+pic' cdo: - prefer: - - '@2.4.4 ~openmp' require: - any_of: ['@2.3.0 ~openmp'] when: '%intel@2021:' From 520a0b67ef19b6134264a60089527c8770767683 Mon Sep 17 00:00:00 2001 From: Dom Heinzeller Date: Tue, 17 Dec 2024 17:43:23 -0700 Subject: [PATCH 10/10] Remove commented-out package entries from configs/common/packages.yaml and pin zstd to 1.5.6 --- configs/common/packages.yaml | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/configs/common/packages.yaml b/configs/common/packages.yaml index 0edf1a5c6..13fdb34c2 100644 --- a/configs/common/packages.yaml +++ b/configs/common/packages.yaml @@ -151,11 +151,6 @@ packages: mapl: require: '@2.46.3 ~shared ~f2py' variants: '+pflogger' - # To avoid duplicate packages being built - #meson: - # require: - # - '@1.5.1:' - # If making changes here, also check the Discover site configs and the CI workflows met: require: '@11.1.1 +python +grib2' metplus: @@ -211,9 +206,6 @@ packages: require: '~tiff' python: require: '@3.11.7' - #py-attrs: - # # https://github.com/JCSDA/spack-stack/issues/740 - # require: '@21.4.0' py-cartopy: require: '+plotting' # Avoid full rust dependency: version 43+ requires py-maturin @@ -235,34 +227,15 @@ packages: require: '@3.8.0' py-h5py: require: '~mpi' - ## To avoid duplicate packages - #py-jinja2: - # require: '@3.1.2' # https://github.com/JCSDA/spack-stack/issues/1276 py-matplotlib: require: '@3.7.4' - #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' # Variant ~mpi not working for latest py-netcdf4 # https://github.com/spack/spack/issues/47652 py-netcdf4: require: '@1.7.1 +mpi' - # py-numpy@1.26 causes many build problems with older Python packages - # also check Nautilus site config when making changes here - # https://github.com/JCSDA/spack-stack/issues/1276 - #py-numpy: - # require: - # - '@:1.23.5' py-pandas: require: '+excel' - #py-pybind11: - # require: '@2.11.0' # To avoid duplicate packages py-ruamel-yaml: require: '@0.17.16' @@ -271,8 +244,6 @@ packages: require: '@69' py-setuptools-rust: require: '+rust_bootstrap' - #py-shapely: - # require: '@1.8.0' py-torch: require: '+custom-protobuf ~mkldnn' # To avoid duplicate packages @@ -308,5 +279,4 @@ packages: wrf-io: require: '@1.2.0' zstd: - #require: '@1.5.2 +programs' - require: '+programs' + require: '@1.5.6 +programs'