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
- built with
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.
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
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.
To use Spack, you can check the guide for using Spack with uenv.
Note
If using the most recent release of uenv and a compatible uenv, load the spack
view:
# 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):
platform specific hints¶
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:
There are no platform-specific notes for multicore.