From 2c026c1370ed254685c9f323283f7cd8e06087f9 Mon Sep 17 00:00:00 2001
From: Nicolas Richart <nicolas.richart@epfl.ch>
Date: Tue, 9 Jul 2024 15:10:06 +0200
Subject: [PATCH] Adding missing files and more constraints to help
 concretizing

---
 .../pinot-noir-gcc/definitions_kuma_h100.yaml |   7 ++
 stacks/pinot-noir-gcc/packages_kuma_h100.yaml |   6 +-
 stacks/pinot-noir/definitions_kuma_h100.yaml  |   7 ++
 stacks/pinot-noir/packages_jed.yaml           |   5 +
 stacks/pinot-noir/packages_stack.yaml         |  54 ++-------
 stacks/pinot-noir/spack.yaml                  | 114 +++++++++---------
 6 files changed, 90 insertions(+), 103 deletions(-)
 create mode 100644 stacks/pinot-noir-gcc/definitions_kuma_h100.yaml
 create mode 100644 stacks/pinot-noir/definitions_kuma_h100.yaml

diff --git a/stacks/pinot-noir-gcc/definitions_kuma_h100.yaml b/stacks/pinot-noir-gcc/definitions_kuma_h100.yaml
new file mode 100644
index 0000000..0f156fa
--- /dev/null
+++ b/stacks/pinot-noir-gcc/definitions_kuma_h100.yaml
@@ -0,0 +1,7 @@
+definitions:
+  - cuda_system_codes:
+      - cuda
+      - cudnn
+
+  - cuda_serial_codes:
+      - nccl
diff --git a/stacks/pinot-noir-gcc/packages_kuma_h100.yaml b/stacks/pinot-noir-gcc/packages_kuma_h100.yaml
index 425f8b3..07fab46 100644
--- a/stacks/pinot-noir-gcc/packages_kuma_h100.yaml
+++ b/stacks/pinot-noir-gcc/packages_kuma_h100.yaml
@@ -4,7 +4,7 @@ packages:
     require:
       - "~rocm"
 
-      - spec: cuda_arch=90 target=icelake
+      - spec: cuda_arch=90 target=zen4
         when: '+cuda'
 
       - spec: '+cuda'
@@ -23,7 +23,7 @@ packages:
 
   openmpi:
     require:
-      - spec: '+cuda cuda_arch=90 target=icelake'
+      - spec: '+cuda cuda_arch=90 target=zen4'
 
   petsc:
     require:
@@ -48,7 +48,7 @@ packages:
 
   ucx:
     require:
-      - spec: '+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +gdrcopy +cuda cuda_arch=90 target=icelake ~rocm'
+      - spec: '+xpmem +cma +rdmacm +rc +ud +dc +verbs +ib_hw_tm +gdrcopy +cuda cuda_arch=90 ~rocm target=zen4'
 
   # ---------------------------------------------------------------------------
   # Externals
diff --git a/stacks/pinot-noir/definitions_kuma_h100.yaml b/stacks/pinot-noir/definitions_kuma_h100.yaml
new file mode 100644
index 0000000..0f156fa
--- /dev/null
+++ b/stacks/pinot-noir/definitions_kuma_h100.yaml
@@ -0,0 +1,7 @@
+definitions:
+  - cuda_system_codes:
+      - cuda
+      - cudnn
+
+  - cuda_serial_codes:
+      - nccl
diff --git a/stacks/pinot-noir/packages_jed.yaml b/stacks/pinot-noir/packages_jed.yaml
index 186b82d..822d1e2 100644
--- a/stacks/pinot-noir/packages_jed.yaml
+++ b/stacks/pinot-noir/packages_jed.yaml
@@ -23,6 +23,11 @@ packages:
     - spec: '+cuda cuda_arch=90 +cuda_uvm +wrapper ~openmptarget'
       when: '%gcc'
 
+  kokkos-kernels:
+    require:
+    - spec: '+cuda cuda_arch=90'
+      when: '%gcc'
+
   openmpi:
     require:
       - spec: '+cuda cuda_arch=90 target=icelake'
diff --git a/stacks/pinot-noir/packages_stack.yaml b/stacks/pinot-noir/packages_stack.yaml
index d75c10a..d12a3aa 100644
--- a/stacks/pinot-noir/packages_stack.yaml
+++ b/stacks/pinot-noir/packages_stack.yaml
@@ -9,48 +9,6 @@ packages:
       - spec: "^libiconv"
         when: "^iconv"
 
-      # - spec: ^intel-oneapi-mpi
-      #   when: '%oneapi ^mpi'
-
-      # - spec: ^openmpi
-      #   when: '%gcc ^mpi'
-
-      # - spec: ^openmpi
-      #   when: '%aocc ^mpi'
-
-      # - spec: ^nvhpc+mpi
-      #   when: '%nvhpc ^mpi'
-
-      - spec: ^openblas %gcc
-        when: '%gcc ^blas'
-
-      - spec: ^eigen %gcc
-        when: '%gcc ^eigen'
-
-      - spec: ^kokkos %gcc
-        when: '%gcc ^kokkos'
-
-      # - spec: ^openblas
-      #   when: '%gcc ^lapack'
-
-      # - spec: ^intel-oneapi-mkl
-      #   when: '%oneapi ^blas'
-
-      # - spec: ^intel-oneapi-mkl
-      #   when: '%oneapi ^lapack'
-
-      # - spec: ^nvhpc+blas
-      #   when: '%nvhpc ^blas'
-
-      # - spec: ^nvhpc+lapack
-      #   when: '%nvhpc ^lapack'
-
-      # - spec: ^openblas
-      #   when: '%gcc ^py-numpy'
-
-      # - spec: ^intel-oneapi-mkl
-      #   when: '%oneapi ^py-numpy'
-
       - spec: '+ipo'
         when: '%gcc'
 
@@ -99,12 +57,15 @@ packages:
     - spec: '@2.31.0 ~magma'
 
   intel-oneapi-mkl:
-    prefer: ['+cluster']
+    prefer: ['~cluster']
 
   kokkos:
-    prefer: ['+openmp', '+openmptarget', '+numactl', '+memkind', '+threads',
+    prefer: ['+openmp', '+numactl', '+memkind', '+threads',
     '+aggressive_vectorization']
 
+  kokkos-kernel:
+    prefer: ['+openmp', '+threads']
+
   lammps:
     require: ['build_type=Release', '+asphere', '+atc', '+body', '+class2',
     '+colloid', '+compress', '+coreshell', '+dipole', '+diffraction', '+extra-dump',
@@ -158,6 +119,9 @@ packages:
   py-torch:
     require: ['+mpi']
 
+  scotch:
+    prefer: ['~mpi']
+
   suite-sparse:
     require:
     - spec: '+graphblas'
@@ -167,7 +131,7 @@ packages:
 
   ucx:
     require:
-    - spec: +rdmacm +rc +dc +ud +cma +verbs
+    - spec: '+rdmacm +rc +dc +ud +cma +verbs'
 
   zlib-ng:
     require: ['build_system=autotools']
diff --git a/stacks/pinot-noir/spack.yaml b/stacks/pinot-noir/spack.yaml
index 1bafcf1..d80e2cc 100644
--- a/stacks/pinot-noir/spack.yaml
+++ b/stacks/pinot-noir/spack.yaml
@@ -72,7 +72,6 @@ spack:
         - tk
         - tmux
         - trimmomatic
-        - valgrind
         - xclip
         - zlib-ng
 
@@ -81,7 +80,6 @@ spack:
     # -------------------------------------------------------------------------
     - serial_codes:
         - bwa
-        - boost ~mpi
         - fftw +openmp ~mpi
         - fftw ~openmp ~mpi
         - eigen
@@ -93,17 +91,17 @@ spack:
         - jasper
         - kallisto ^hdf5 ~mpi
         - kokkos
+        - kokkos-kernels
         - mafft
         - metis
         - muscle
         - netcdf-c~mpi ^hdf5~mpi
         - netcdf-fortran ^netcdf-c ~mpi ^hdf5 ~mpi
-        - nfft
+        - nfft ^fftw~mpi~openmp
         - python
-        - scotch
+        - scotch ~mpi
         - star
         - subread
-        - superlu
         - unblur ^fftw~mpi~openmp
         - voropp
 
@@ -189,8 +187,8 @@ spack:
         - snakemake
 
     - python_blas_codes:
-        - boost
-        - gmsh ~mpi +hdf5 +cgns +eigen ~opencascade +openmp ~fltk ~med
+        - boost ~mpi
+        #- gmsh ~mpi +hdf5 +cgns +eigen ~opencascade +openmp ~fltk ~med
         - iq-tree
         - py-biopython
         - py-keras-preprocessing
@@ -201,6 +199,7 @@ spack:
         - py-pandas
         - py-pybigwig
         - py-xarray
+        - valgrind
 
     - gcc_python_codes:
         - blast-plus
@@ -212,7 +211,7 @@ spack:
         - mesa
         - mummer
         - node-js
-        - openbabel +python
+        - openbabel +python ^boost ~mpi
         - r
         - spades
         - xgboost
@@ -327,18 +326,10 @@ spack:
     - matrix:
         - [$compilers_specs]
 
-    - matrix:
-        - [$blas_oneapi]
-        - [$%compiler_oneapi]
-
     - matrix:
         - [$blas_gcc]
         - [$%compiler_gcc]
 
-    - matrix:
-        - [$mpi_oneapi]
-        - [$%compiler_oneapi]
-
     - matrix:
         - [$mpi_gcc]
         - [$%compiler_gcc]
@@ -353,16 +344,12 @@ spack:
 
     - matrix:
         - [$serial_codes]
-        - [$%compilers]
+        - [$%compiler_gcc]
 
     - matrix:
         - [$gcc_serial_codes]
         - [$%compiler_gcc]
 
-    - matrix:
-        - [$oneapi_serial_codes]
-        - [$%compiler_oneapi]
-
     - matrix:
         - [$cuda_serial_codes]
         - [$%compiler_gcc]
@@ -372,11 +359,6 @@ spack:
         - [$^blas_gcc]
         - [$%compiler_gcc]
 
-    - matrix:
-        - [$blas_codes]
-        - [$^blas_oneapi]
-        - [$%compiler_oneapi]
-
     - matrix:
         - [$gcc_blas_codes]
         - [$^blas_gcc]
@@ -392,34 +374,18 @@ spack:
         - [$^python_gcc]
         - [$%compiler_gcc]
 
-    - matrix:
-        - [$python_codes]
-        - [$^python_oneapi]
-        - [$%compiler_oneapi]
-
     - matrix:
         - [$python_blas_codes]
         - [$^python_gcc]
         - [$^blas_gcc]
         - [$%compiler_gcc]
 
-    - matrix:
-        - [$python_blas_codes]
-        - [$^python_oneapi]
-        - [$^blas_oneapi]
-        - [$%compiler_oneapi]
-
     - matrix:
         - [$gcc_python_blas_codes]
         - [$^python_gcc]
         - [$^blas_gcc]
         - [$%compiler_gcc]
 
-    - matrix:
-        - [$mpi_codes]
-        - [$^mpi_oneapi]
-        - [$%compiler_oneapi]
-
     - matrix:
         - [$mpi_codes]
         - [$^mpi_gcc]
@@ -430,25 +396,12 @@ spack:
         - [$^mpi_gcc]
         - [$%compiler_gcc]
 
-    - matrix:
-        - [$mpi_blas_codes]
-        - [$^blas_oneapi]
-        - [$^mpi_oneapi]
-        - [$%compiler_oneapi]
-
     - matrix:
         - [$mpi_blas_codes]
         - [$^blas_gcc]
         - [$^mpi_gcc]
         - [$%compiler_gcc]
 
-    - matrix:
-        - [$mpi_blas_python_codes]
-        - [$^blas_oneapi]
-        - [$^mpi_oneapi]
-        - [$^python_oneapi]
-        - [$%compiler_oneapi]
-
     - matrix:
         - [$mpi_blas_python_codes]
         - [$^blas_gcc]
@@ -463,6 +416,57 @@ spack:
         - [$^python_gcc]
         - [$%compiler_gcc]
 
+    # --------------------------------------------------------------------------
+    - matrix:
+        - [$serial_codes]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$blas_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$mpi_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$oneapi_serial_codes]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$blas_codes]
+        - [$^blas_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$python_codes]
+        - [$^python_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$python_blas_codes]
+        - [$^python_oneapi]
+        - [$^blas_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$mpi_codes]
+        - [$^mpi_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$mpi_blas_codes]
+        - [$^blas_oneapi]
+        - [$^mpi_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$mpi_blas_python_codes]
+        - [$^blas_oneapi]
+        - [$^mpi_oneapi]
+        - [$^python_oneapi]
+        - [$%compiler_oneapi]
+
   view: false
 #    default:
 #      root: /stack/packages/
-- 
GitLab