Skip to content
Draft
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
24 changes: 9 additions & 15 deletions docs/software/prgenv/cpe.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,26 +22,17 @@ The CPE is provided to users on Alps as containers.
### Available versions

The `PrgEnv-gnu` and `PrgEnv-cray` programming environments are provided as separate containers, instead of having both in one container, named `gnu-$version` and `cray-$version` respectively.
The `version` is the CPE version in the container.
The `version` is the CPE version in the container. Deployed versions can be found at `/capstor/store/cscs/cscs/public/containers/edf/<microarchitecture>`.
Copy link
Member

@bcumming bcumming Dec 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The `version` is the CPE version in the container. Deployed versions can be found at `/capstor/store/cscs/cscs/public/containers/edf/<microarchitecture>`.
The `version` is the CPE version in the container.
Deployed versions can be found at `/capstor/store/cscs/cscs/public/containers/edf/<microarchitecture>`.
!!! example "Listing all available CPE containers"
```console
$ find /capstor/store/cscs/cscs/public/containers/edf -type f -printf '%P\n'
zen2/cpe-cray-24.07.toml
zen2/cpe-cray-25.03.toml
zen2/cpe-gnu-25.03.toml
zen2/cpe-gnu-24.07.toml
zen2/.cpe-base.toml
gh200/cpe-cray-24.07.toml
gh200/cpe-cray-25.03.toml
gh200/cpe-gnu-25.03.toml
gh200/cpe-gnu-24.07.toml
gh200/.cpe-base.toml
```


| | `zen2` | `gh200` |
|-----------------|----------|---------|
| `cpe-gnu-24.7` | ❌ | ✅ |
| `cpe-cray-24.7` | ❌ | ✅ |

!!! warning "only available on gh200"
The CPE container is only provided on systems with the "[container engine][ref-container-engine]" container runtime, which is currently the Grace-Hopper systems [Daint][ref-cluster-daint], [Clariden][ref-cluster-clariden] and [Santis][ref-cluster-santis].
| `cpe-gnu-24.7` | ✅ | ✅ |
| `cpe-cray-24.7` | ✅ | ✅ |
| `cpe-gnu-25.3` | ✅ | ✅ |
| `cpe-cray-25.3` | ✅ | ✅ |

### How to use

!!! info "Before you start"
To use the CPE containers as documented below, you need to set the `EDF_PATH` environment variable.
```console
export EDF_PATH=/capstor/scratch/cscs/anfink/shared/cpe/edf:$EDF_PATH
```
Note that the current location of the EDF files is temporary, to work around a file system bug.
The environment variable __will not be required__ once this issue is fixed.

To start a session with the CPE (see [available-versions][ref-cpe-versions] above):
```console
$ srun --environment=cpe-cray-24.07 --pty bash
Expand Down Expand Up @@ -109,4 +100,7 @@ The recommended way of using CPE in a container is to start the container, and u
!!! note
By default, the paths `/capstor`, `/iopsstor` are mounted to the same paths inside the container.

Additionally `/users` will be mounted at `/users.host`, so you can access data in your home folder, but with a slightly different path. This is on purpose, and you can override this behaviour by writing your own [EDF file][ref-ce-edf-reference], especially using the key `base_environment`, referencing the predefined CPE environment files and override what you would like to change.
!!! note
`/users` will not be mounted by default.
If you need your home directory, you need to override the `mounts` directive.
The recommended way is to derive from existing EDF file using the key `base_environment`, further details at [EDF file reference][ref-ce-edf-reference].