-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add gh200 prgenv-gnu/24.7 recipe (#118)
* add gh200 prgenv-gnu/24.7 recipe * add prgenv-gnu docs, and clean up some old docs
- Loading branch information
Showing
8 changed files
with
202 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
# prgenv-gnu uenv | ||
|
||
Provides a small set of tools and libraries built around the GNU compiler toolchain. | ||
|
||
It provides the GCC compilers (gcc, g++ and gfortran), MPI (cray-mpich), Python, cuda (on systems with NVIDIA GPUs). | ||
|
||
The following packages are provided: | ||
|
||
* `aws-ofi-nccl` | ||
* `cmake` | ||
* `cray-mpich` | ||
* built with `cuda` support on systems with NVIDIA GPUs | ||
* `cuda` | ||
* only on systems with NVIDIA GPUs | ||
* `fftw` | ||
* `fmt` | ||
* `gcc` | ||
* `hdf5` | ||
* `libtree` | ||
* `meson` | ||
* `nccl-tests` | ||
* `nccl` | ||
* `ninja` | ||
* `openblas` | ||
* built with OpenMP support | ||
* `osu-micro-benchmarks` | ||
* `python` | ||
* a recent version of python 3 | ||
|
||
## How to use | ||
|
||
The environment is designed as a fairly minimal set of | ||
|
||
There are three ways to access the software provided by prgenv-gnu, once it has been started. | ||
|
||
=== "views" | ||
|
||
The simplest way to get started is to use the file system view. A single view is provided: | ||
|
||
* before v24.7: the `default` view | ||
* since v24.7: the `develop` view | ||
|
||
``` | ||
# set when starting the uenv | ||
uenv start --view=develop prgenv-gnu/24.7:v1 | ||
|
||
# set after starting | ||
# NOTE: this method will be deprecated | ||
uenv start prgenv-gnu/24.7:v1 | ||
uenv view develop | ||
|
||
# example: the python executable provided by the uenv will be available | ||
which python | ||
/user-environment/env/default/bin/python | ||
|
||
# example: the python version is more recent that the 3.6 version in /usr/bin | ||
python --version | ||
Python 3.12.1 | ||
``` | ||
|
||
|
||
=== "modules" | ||
|
||
The uenv provides modules for all of the software packages. | ||
The modules are not available by default when a uenv starts, and have to be enabled. | ||
|
||
```bash | ||
# with v4 of uenv: | ||
uenv start prgenv-gnu/24.7 | ||
uenv modules use | ||
|
||
# with v5 of uenv: | ||
|
||
# method 1: enable modules when the uenv is started | ||
uenv start --view=modules prgenv-gnu/24.7 | ||
|
||
# method 2: enable modules after the uenv has started | ||
uenv start prgenv-gnu/24.7 | ||
uenv view modules | ||
``` | ||
|
||
=== "spack" | ||
|
||
To use Spack, you can check the [guide for using Spack with uenv](https://eth-cscs.github.io/alps-uenv/uenv-compilation-spack/). | ||
|
||
!!! note | ||
|
||
If using the most recent release of uenv and a compatible uenv, load the `spack` view: | ||
|
||
```bash | ||
# start the uenv with the spack view | ||
# note: the version might differ from the one in this example | ||
uenv start --view=spack prgenv-gnu/24.7:v1 | ||
``` | ||
|
||
Loading the `spack` view sets the following environment variables (with example values): | ||
|
||
``` | ||
UENV_SPACK_CONFIG_PATH /user-environment/config | ||
UENV_SPACK_URL https://github.com/spack/spack.git | ||
UENV_SPACK_COMMIT b5fe93fee1eec46a0750bd340198bffcb92ff9eec | ||
``` | ||
|
||
## platform specific hints | ||
|
||
=== "gh200" | ||
|
||
The version of MPI (cray-mpich) provided on Grace Hopper systems (Todi at the time of writing) supports GPU-direct or GPU aware communication, whereby pointers to GPU buffers can be passed directly to MPI calls. | ||
No special steps have to be taken to compile your code, however the following environment variable must be set to run an application that uses GPU pointers: | ||
|
||
```bash | ||
export MPICH_GPU_SUPPORT_ENABLED=1 | ||
``` | ||
|
||
|
||
=== "multicore" | ||
|
||
There are no platform-specific notes for multicore. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
bootstrap: | ||
spec: [email protected] | ||
gcc: | ||
specs: | ||
- [email protected] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
name: prgenv-gnu | ||
spack: | ||
commit: releases/v0.22 | ||
repo: https://github.com/spack/spack.git | ||
store: /user-environment | ||
description: GNU Compiler toolchain with cray-mpich, Python, CMake and other development tools. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
gcc-env: | ||
compiler: | ||
- toolchain: gcc | ||
spec: gcc | ||
mpi: | ||
spec: [email protected] | ||
gpu: cuda | ||
unify: true | ||
specs: | ||
- aws-ofi-nccl@master | ||
- cmake | ||
- [email protected] | ||
- fftw | ||
- fmt | ||
- hdf5 | ||
- libtree | ||
- meson | ||
- nccl | ||
- nccl-tests | ||
- ninja | ||
- openblas threads=openmp | ||
- [email protected] | ||
- [email protected] | ||
variants: | ||
- +mpi | ||
- +cuda | ||
- cuda_arch=90 | ||
views: | ||
default: | ||
link: roots | ||
uenv: | ||
prefix_paths: | ||
LD_LIBRARY_PATH: [lib, lib64] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
default: | ||
features: | ||
- cuda | ||
- mpi | ||
- osu-micro-benchmarks | ||
- openmp | ||
- serial | ||
cc: mpicc | ||
cxx: mpic++ | ||
ftn: mpifort | ||
activation: /user-environment/env/default/activate.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
modules: | ||
# Paths to check when creating modules for all module sets | ||
prefix_inspections: | ||
bin: | ||
- PATH | ||
lib: | ||
- LD_LIBRARY_PATH | ||
lib64: | ||
- LD_LIBRARY_PATH | ||
|
||
default: | ||
arch_folder: false | ||
# Where to install modules | ||
roots: | ||
tcl: /user-environment/modules | ||
tcl: | ||
all: | ||
autoload: none | ||
hash_length: 0 | ||
exclude_implicits: true | ||
exclude: ['%[email protected]', 'gcc %[email protected]'] | ||
projections: | ||
all: '{name}/{version}' |