Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 57 additions & 19 deletions docs/software/prgenv/prgenv-nvfortran.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,53 @@ Specifically, it is intended for building and running applications that **requir
The naming scheme is `prgenv-nvfortran/<version>:v<i>`, where `<version>` matches the version of the NVIDIA HPC SDK.

* the SDK is released every two months, and is numbered in the `YY.M[M]` format, e.g. `24.1` and `24.11`.
* the `prgenv-nvfortran` will be released three times a year (every second NVHPC release).
* the `prgenv-nvfortran` will be released two or three times a year (every second NVHPC release).

The currently supported versions are:

| `prgenv-nvhpc` | NVHPC |
| -------------- | ----- |
| 24.11 | 24.11 |
| `prgenv-nvfortran` | NVHPC |
| -------------- | ----- |
| 24.11 | 24.11 |
| 25.7 | 25.7 |

??? note "I need a different version"
If you need a version of the NVHPC SDK that is not provided, e.g. the 25.1 version that falls between 24.11 and 25.4, make a request on the [CSCS service desk](https://jira.cscs.ch/plugins/servlet/desk).

=== "25.7"

Version 24.11 provides the following software:

* [[email protected]](https://packages.spack.io/package.html?name=cmake)
* [[email protected]](https://packages.spack.io/package.html?name=cray-mpich)
* [[email protected]](https://packages.spack.io/package.html?name=cuda)
* [[email protected]](https://packages.spack.io/package.html?name=fftw)
* [[email protected]](https://packages.spack.io/package.html?name=fmt)
* [[email protected]](https://packages.spack.io/package.html?name=gcc)
* [[email protected]](https://packages.spack.io/package.html?name=hdf5)
* [[email protected]](https://packages.spack.io/package.html?name=libtree)
* [[email protected]](https://packages.spack.io/package.html?name=lua)
* [[email protected]](https://packages.spack.io/package.html?name=lz4)
* [[email protected]](https://packages.spack.io/package.html?name=meson)
* [[email protected]](https://packages.spack.io/package.html?name=netcdf-c)
* [[email protected]](https://packages.spack.io/package.html?name=netcdf-fortran)
* [[email protected]](https://packages.spack.io/package.html?name=ninja)
* [[email protected]](https://packages.spack.io/package.html?name=nvhpc)
* [[email protected]](https://packages.spack.io/package.html?name=nvpl-blas)
* [[email protected]](https://packages.spack.io/package.html?name=nvpl-lapack)
* [[email protected]](https://packages.spack.io/package.html?name=osu-micro-benchmarks)
* [[email protected]](https://packages.spack.io/package.html?name=python)
* [[email protected]](https://packages.spack.io/package.html?name=zlib-ng)

The package main update from the previous version 24.11 is the addition of NCCL, the addition of `libfabric` to the uenv, and the SquashFS tools:

* [[email protected]](https://packages.spack.io/package.html?name=aws-ofi-nccl)
* [[email protected]](https://packages.spack.io/package.html?name=nccl-tests)
* [[email protected]](https://packages.spack.io/package.html?name=nccl)
* [[email protected]](https://packages.spack.io/package.html?name=libfabric)
* [[email protected]](https://packages.spack.io/package.html?name=squashfs)

!!! note
Version `25.7` upgraded to Spack 1.0, so any Spack workflows based on the previous version will probably need to be updated to the latest Spack version.

=== "24.11"

Expand All @@ -48,9 +88,6 @@ The currently supported versions are:
* [[email protected]](https://packages.spack.io/package.html?name=python)
* [[email protected]](https://packages.spack.io/package.html?name=zlib-ng)

??? note "I need a different version"
If you need a version of the NVHPC SDK that is not provided, e.g. the 25.1 version that falls between 24.11 and 25.4, make a request on the [CSCS service desk](https://jira.cscs.ch/plugins/servlet/desk).

## How to use

The image is only provided on Alps systems that have NVIDIA GPUs.
Expand All @@ -64,15 +101,15 @@ uenv image find prgenv-nvfortran
uenv image find prgenv-nvfortran@*

# pull a version
uenv image pull prgenv-nvfortran/24.11:v2
uenv image pull prgenv-nvfortran/25.7:v1
```

=== "the `nvfort` view"

The `nvfort` view loads all of the packages into your environment (equivalent to loading all the modules at once):

```bash
uenv start prgenv-nvfortran/24.11:v1 --view=nvfort
uenv start prgenv-nvfortran/25.7:v1 --view=nvfort
mpif90 --version
```

Expand All @@ -93,17 +130,18 @@ uenv image pull prgenv-nvfortran/24.11:v2
The modules view will start the uenv, and make a set of modules available:

```console
$ uenv start prgenv-nvfortran/24.11:v1 --view=nvfort,modules
$ uenv start prgenv-nvfortran/25.7:v1 --view=nvfort,modules
$ module avail
---------------------------- /user-environment/modules ----------------------------
aws-ofi-nccl/master libtree/3.1.1 ninja/1.12.1
cmake/3.30.5 lua/5.4.6 nvhpc/24.11
cray-mpich/8.1.30 lz4/1.10.0 nvpl-blas/0.3.0
cuda/12.6.0 meson/1.5.1 nvpl-lapack/0.2.3.1
fftw/3.3.10 nccl-tests/2.13.6 osu-micro-benchmarks/5.9
fmt/11.0.2 nccl/2.22.3-1 python/3.12.5
gcc/13.2.0 netcdf-c/4.9.2 zlib-ng/2.2.1
hdf5/1.14.5 netcdf-fortran/4.6.1
---------------------------- /user-environment/modules ------------------------
aws-ofi-nccl/1.16.0 libtree/3.1.1 nvhpc/25.7
cmake/3.31.8 lua/5.4.6 nvpl-blas/0.4.0.1
cray-mpich/8.1.32 lz4/1.10.0 nvpl-lapack/0.3.0
cuda/12.9.0 meson/1.7.0 osu-micro-benchmarks/7.5
fftw/3.3.10 nccl-tests/2.16.3 python/3.13.5
fmt/11.2.0 nccl/2.27.5-1 squashfs/4.6.1
gcc/13.4.0 netcdf-c/4.9.2 zlib-ng/2.2.4
hdf5/1.14.6 netcdf-fortran/4.6.1
libfabric/1.22.0 ninja/1.12.1
```

None of the modules are loaded by default, so you will have to load the required modules