Skip to content

Commit

Permalink
release/1.5.1: update site config for Hercules (gnu+mvapich2) (#849)
Browse files Browse the repository at this point in the history
* Switch Hercules gnu MPI library to mvapich2
* Update doc/source/PreConfiguredSites.rst for release 1.5.1 on Hercules
  • Loading branch information
climbfuji authored Oct 30, 2023
1 parent d9d5c6d commit 03675e3
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 20 deletions.
12 changes: 6 additions & 6 deletions configs/sites/hercules/packages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ packages:
all:
compiler:: [[email protected], [email protected]]
providers:
mpi:: [[email protected], [email protected]]
mpi:: [[email protected], [email protected]]

### MPI, Python, MKL
mpi:
Expand All @@ -13,13 +13,13 @@ packages:
prefix: /apps/spack-managed/oneapi-2023.1.0/intel-oneapi-mpi-2021.9.0-a66eaipzsnyrdgaqzxmqmqz64qzvhkse
modules:
- intel-oneapi-mpi/2021.9.0
openmpi:
mvapich2:
externals:
- spec: [email protected]%[email protected]~cuda~cxx~cxx_exceptions~java~memchecker+pmi~static~wrapper-rpath
fabrics=ucx schedulers=slurm
prefix: /work/noaa/epic/role-epic/spack-stack/hercules/openmpi-4.1.5/gcc-11.3.1
- spec: [email protected]%[email protected]~cuda~debug~regcache~wrapperrpath process_managers=slurm
prefix: /work/noaa/epic/role-epic/spack-stack/hercules/mvapich2-2.3.7/gcc-11.3.1
modules:
- openmpi/4.1.5
- slurm/22.05.8
- mvapich2/2.3.7

### Modifications of common packages
# Version 2.0.8 doesn't compile on Hercules
Expand Down
35 changes: 35 additions & 0 deletions doc/modulefile_templates/mvapich2
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#%Module1.0

module-whatis "Provides an mvapich2-2.3.7 installation for use with spack and gcc-13.3.1."

conflict openmpi
conflict mvapich2
conflict mpi
conflict intel-mpi
conflict intel-oneapi-mpi

proc ModulesHelp { } {
puts stderr "Provides an mvapich2-2.3.7 installation for use with spack and gcc-13.3.1."
}

if { [ module-info mode load ] && ![ is-loaded slurm/22.05.8 ] } {
module load slurm/22.05.8
}
#if { [ module-info mode load ] && ![ is-loaded ucx/1.13.1 ] } {
# module load ucx/1.13.1
#`}

# Set this value
set MPICH_PATH "/work/noaa/epic/role-epic/spack-stack/hercules/mvapich2-2.3.7/gcc-11.3.1"

prepend-path PATH "${MPICH_PATH}/bin"
prepend-path LD_LIBRARY_PATH "${MPICH_PATH}/lib"
prepend-path LIBRARY_PATH "${MPICH_PATH}/lib"
prepend-path CPATH "${MPICH_PATH}/include"
prepend-path CMAKE_PREFIX_PATH "${MPICH_PATH}"
prepend-path MANPATH "${MPICH_PATH}/share/man"

# Settings specific for Hercules
setenv MPI_ROOT ${MPICH_PATH}
setenv SLURM_MPI_TYPE "pmi2"
setenv MV2_HOMOGENEOUS_CLUSTER "1"
16 changes: 10 additions & 6 deletions doc/source/MaintainersSection.rst
Original file line number Diff line number Diff line change
Expand Up @@ -257,18 +257,22 @@ ecflow
mysql
``mysql`` must be installed separately from ``spack`` using a binary tarball provided by the MySQL community. Follow the instructions in :numref:`Section %s <MaintainersSection_MySQL>` to install ``mysql`` in ``/work/noaa/epic-ps/role-epic-ps/spack-stack/mysql-8.0.31-hercules``.

openmpi
need to load qt so to get consistent zlib (or just load zlib directly, check qt module)
mvapich2
Because of difficulties with ``openmpi`` on Hercules, we build ``mvapich2``. It is necessary to either load ``qt`` to use a consistent ``zlib``, or to load ``zlib`` directly (check the ``qt`` module). Create modulefile ``mvapich2`` from template ``doc/modulefile_templates/mvapich2``.

.. code-block:: console
module purge
module load zlib/1.2.13
module load ucx/1.13.1
./configure \
--prefix=/work/noaa/epic/role-epic/spack-stack/hercules/openmpi-4.1.5/gcc-11.3.1 \
--with-ucx=$UCX_ROOT \
--with-zlib=$ZLIB_ROOT
module load slurm/22.05.8
FFLAGS=-fallow-argument-mismatch ./configure \
--prefix=/work/noaa/epic/role-epic/spack-stack/hercules/mvapich-2.3.7/gcc-11.3.1 \
--with-pmi=pmi2 \
--with-pm=slurm \
--with-slurm-include=/opt/slurm-22.05.8/include \
--with-slurm-lib=/opt/slurm-22.05.8/lib \
2>&1 | tee log.config./configure
make VERBOSE=1 -j4
make check
make install
Expand Down
16 changes: 8 additions & 8 deletions doc/source/PreConfiguredSites.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ Directory ``configs/sites`` contains site configurations for several HPC systems
Pre-configured sites are split into two categories: Tier 1 with officially supported spack-stack installations (see :numref:`Section %s <Preconfigured_Sites_Tier1>`), and Tier 2 (sites with configuration files that were tested or contributed by others in the past, but that are not officially supported by the spack-stack team; see :numref:`Section %s <Preconfigured_Sites_Tier2>`).

=============================================================
Officially supported spack-stack 1.5.0 installations (tier 1)
Officially supported spack-stack 1.5.1 installations (tier 1)
=============================================================

Ready-to-use spack-stack 1.5.0 installations are available on the following, fully supported platforms. This version supports the JEDI Skylab release 5 of June 2023, and the UFS Weather Model of July 2023. It can also be used for testing spack-stack with other UFS applications (e.g. the UFS Short Range Weather Application, and the EMC Global Workflow). Amazon Web Services AMI are available in the US East 1 or 2 regions.
Ready-to-use spack-stack 1.5.1 installations are available on the following, fully supported platforms. This version supports the JEDI Skylab release 5 of June 2023, and the UFS Weather Model of July 2023. It can also be used for testing spack-stack with other UFS applications (e.g. the UFS Short Range Weather Application, and the EMC Global Workflow). Amazon Web Services AMI are available in the US East 1 or 2 regions.

+---------------------+----------------------------------+-----------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
| Organization | System | Compilers | Location | Maintainers |
+=====================+==================================+=================+=========================================================================================================+===============================+
| **HPC platforms** |
+---------------------+----------------------------------+-----------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
| | Hercules^* | GCC, Intel | ``/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.0/envs/unified-env`` | Cam Book / Dom Heinzeller |
| | Hercules^* | GCC, Intel | ``/work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.1/envs/unified-env`` | Cam Book / Dom Heinzeller |
| MSU +----------------------------------+-----------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
| | Orion | GCC, Intel | ``/work/noaa/epic/role-epic/spack-stack/orion/spack-stack-1.5.0/envs/unified-env`` | Cam Book / Dom Heinzeller |
+---------------------+----------------------------------+-----------------+---------------------------------------------------------------------------------------------------------+-------------------------------+
Expand Down Expand Up @@ -124,23 +124,23 @@ The following is required for building new spack environments and for using spac
module load ecflow/5.8.4
module load mysql/8.0.31
For ``spack-stack-1.5.0`` with Intel, load the following modules after loading mysql and ecflow:
For ``spack-stack-1.5.1`` with Intel, load the following modules after loading mysql and ecflow:

.. code-block:: console
module use /work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core
module use /work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.1/envs/unified-env/install/modulefiles/Core
module load stack-intel/2021.9.0
module load stack-intel-oneapi-mpi/2021.9.0
module load stack-python/3.10.8
module available
For ``spack-stack-1.5.0`` with GNU, load the following modules after loading mysql and ecflow:
For ``spack-stack-1.5.1`` with GNU, load the following modules after loading mysql and ecflow:

.. code-block:: console
module use /work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.0/envs/unified-env/install/modulefiles/Core
module use /work/noaa/epic/role-epic/spack-stack/hercules/spack-stack-1.5.1/envs/unified-env/install/modulefiles/Core
module load stack-gcc/11.3.1
module load stack-openmpi/4.1.5
module load stack-mvapich2/2.3.7
module load stack-python/3.10.8
module available
Expand Down

0 comments on commit 03675e3

Please sign in to comment.