From ba4d5eb14d82777ec93c4e283f4e26ff0fd200a6 Mon Sep 17 00:00:00 2001
From: Nicolas Richart <nicolas.richart@epfl.ch>
Date: Sun, 23 Jun 2024 23:56:33 +0200
Subject: [PATCH] Adding most of the mpi codes

---
 stacks/pinot-noir/packages_stack.yaml |  20 ++++-
 stacks/pinot-noir/spack.yaml          | 123 +++++++++++++++++++++++++-
 2 files changed, 137 insertions(+), 6 deletions(-)

diff --git a/stacks/pinot-noir/packages_stack.yaml b/stacks/pinot-noir/packages_stack.yaml
index c8df86f..076ef54 100644
--- a/stacks/pinot-noir/packages_stack.yaml
+++ b/stacks/pinot-noir/packages_stack.yaml
@@ -44,6 +44,13 @@ packages:
   # ----------------------------------------------------------------------------
   # Requirements
   # ----------------------------------------------------------------------------
+  boost:
+    prefer:
+    - spec: 'cxxstd=14 +icu ~mpi +python +numpy +atomic +chrono +container +date_time
+      +filesystem +graph +iostreams ~json +locale +log +math ~pic +program_options
+      +random +regex +serialization +shared +signals ~singlethreaded ~stacktrace +system
+      ~taggedlayout +test +thread +timer ~type_erasure ~versionedlayout +wave +exception'
+
   cuda:
     require:
     - spec: '@12.4.0'
@@ -54,9 +61,15 @@ packages:
     require:
     - spec: '@5.4.10'
 
+  fftw:
+    prefer:
+    - spec: '+mpi +openmp'
+
   hdf5:
-    require:
+    prefer:
+    - spec: '+mpi'
     - spec: '@1.14.3'
+    require:
     - spec: '+hl +threadsafe +szip +cxx +fortran'
     - spec: '+ipo'
       when: '%gcc'
@@ -84,6 +97,9 @@ packages:
   metis:
     require: ['+real64']
 
+  netcdf-c:
+    prefer: ['+mpi']
+
   openblas:
     prefer: ['threads=pthreads']
 
@@ -95,7 +111,7 @@ packages:
 
   petsc:
     require:
-    - spec: '+hypre +mumps +saws +scalapack'
+    - spec: '+hypre +mumps +saws +scalapack +mpi'
 
   python:
     require:
diff --git a/stacks/pinot-noir/spack.yaml b/stacks/pinot-noir/spack.yaml
index 3fec7b0..13371cc 100644
--- a/stacks/pinot-noir/spack.yaml
+++ b/stacks/pinot-noir/spack.yaml
@@ -79,17 +79,22 @@ spack:
     # -------------------------------------------------------------------------
     - serial_codes:
         - bwa
+        - boost ~mpi
         - fftw +openmp ~mpi
         - fftw ~openmp ~mpi
+        - eigen
         - gsl
-        #- hdf5 ~mpi
+        - hdf5@1.14.1 ~mpi
         - hisat2
         - htslib
         - intel-oneapi-tbb
         - jasper
+        - kallisto ^hdf5 ~mpi
         - mafft
         - metis
         - muscle
+        - netcdf-c~mpi ^hdf5~mpi
+        - netcdf-fortran ^netcdf-c ~mpi ^hdf5 ~mpi
         - nfft
         - python
         - scotch
@@ -99,30 +104,105 @@ spack:
         - voropp
 
     - gcc_serial_codes:
+        - cistem  ^fftw~mpi
+        - ctffind ^fftw ~mpi
+        - ffmpeg +libx264
+        - glpk+gmp
         - hwloc
+        - intel-oneapi-mkl
         - libxc
+        - ncview ^hdf5 ~mpi ^netcdf-c ~mpi ~parallel-netcdf
+        - rust
+        - sox
         - stacks
-                    
+        - unblur ^fftw~mpi
+
+    - oneapi_serial_codes:
+        - abaqus@2023
+        - intel-oneapi-ipp
+
     # -------------------------------------------------------------------------
     # Empty to specialize in environments
     # -------------------------------------------------------------------------
     - cuda_system_codes: []
 
+    - cuda_serial_codes: []
+
+    # -------------------------------------------------------------------------
+    # Blas dependent codes
+    # -------------------------------------------------------------------------
+    - blas_codes:
+        - arpack-ng ~mpi
+        - superlu
+        - suite-sparse
+
+    - gcc_blas_codes:
+        - armadillo +hdf5 ^arpack-ng ~mpi ^hdf5 ~mpi
+        - octave
+
     # -------------------------------------------------------------------------
     # Parallel codes
     # -------------------------------------------------------------------------
     - mpi_codes:
-        - osu-micro-benchmarks +graphing
+        - fftw +mpi +openmp
         - hdf5@1.14.3 +mpi
+        - openfoam-org +metis ^scotch+mpi
+        - osu-micro-benchmarks +graphing
+        - parmetis
+        - phylobayesmpi
+        - scotch +mpi
+        - netcdf-c
+        - netcdf-fortran
         - parmetis
 
+    - gcc_mpi_codes:
+        - wrf ~pnetcdf build_type=dm+sm
+
     - blas_mpi_codes:
+        - arpack-ng +mpi
         - hypre@2.31.0
         - mumps@5.6.2
         - superlu-dist@8.2.1
+        - quantum-espresso +mpi +scalapack +gipaw
+        - quantum-espresso +mpi +scalapack +gipaw hdf5=parallel
+        - py-mpi4py
+
+    - gcc_blas_mpi_codes:
+        - gmsh +mpi +eigen +openmp +hdf5 ~fltk ~opencascade ~med ^mmg ~vtk
+        - cpmd ~openmp
+        - elmerfem +mumps +openmp +hypre
+        - netlib-scalapack
+        - yambo +mpi io=iotk,etsf-io
 
     - blas_mpi_python_codes:
-        - petsc@3.21.1 +mpi
+        - boost +mpi
+        - cgal
+        - iq-tree@1.6.12+mpi
+        - neuron +mpi +python
+        - petsc@3.21.1
+        - plumed
+        - py-petsc4py
+        - slepc
+
+    - gcc_blas_mpi_python_codes:
+        - adios2
+        - eman2 +mpi
+        - fenics +parmetis +hdf5 +scotch +suite-sparse ~vtk ~trilinos
+        - gromacs +mpi +plumed
+        - lammps build_type=Release +asphere +atc +body +class2 +colloid +compress +coreshell +dipole +diffraction +extra-dump +granular +h5md +kspace +latboltz +latte +lib +manybody +mc +misc +molecule +mpi +mpiio +netcdf +peri ~poems +python +qeq +replica +rigid +shock +ml-snap +srd +voronoi +plumed
+        - opencv +vtk +python3
+        - openfoam +metis
+        - py-horovod
+        - py-keras
+        - py-tensorflow +mpi
+        - py-topaz
+        - py-torch +mpi ~magma
+        - py-torchvision
+        - relion ~mklfft
+        - vtk
+        - paraview +shared +python3 +hdf5 ~osmesa +opengl2
+        - py-h5py
+        - cp2k +mpi +plumed +openmp smm=blas
 
     # -------------------------------------------------------------------------
     # Generic definitions
@@ -168,6 +248,29 @@ spack:
         - [$gcc_serial_codes]
         - [$%compiler_gcc]
 
+    - matrix:
+        - [$oneapi_serial_codes]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [$cuda_serial_codes]
+        - [$%compiler_gcc]
+
+    - matrix:
+        - [blas_codes]
+        - [$^blas_gcc]
+        - [$%compiler_gcc]
+
+    - matrix:
+        - [blas_codes]
+        - [$^blas_oneapi]
+        - [$%compiler_oneapi]
+
+    - matrix:
+        - [gcc_blas_codes]
+        - [$^blas_gcc]
+        - [$%compiler_gcc]
+
     - matrix:
         - [$mpi_codes]
         - [$^mpi_oneapi]
@@ -178,6 +281,11 @@ spack:
         - [$^mpi_gcc]
         - [$%compiler_gcc]
 
+    - matrix:
+        - [$gcc_mpi_codes]
+        - [$^mpi_gcc]
+        - [$%compiler_gcc]
+
     - matrix:
         - [$blas_mpi_codes]
         - [$^blas_oneapi]
@@ -204,6 +312,13 @@ spack:
         - [$^python_gcc]
         - [$%compiler_gcc]
 
+    - matrix:
+        - [$gcc_blas_mpi_python_codes]
+        - [$^blas_gcc]
+        - [$^mpi_gcc]
+        - [$^python_gcc]
+        - [$%compiler_gcc]
+
   view: false
 #    default:
 #      root: /stack/packages/
-- 
GitLab