Summary and Setup
This lesson is a one-day introduction to a shared supercomputer. You will log in, load software from the EESSI stack, submit Slurm jobs, move data without drowning the file system, run many small tasks, and take a first look at timing and scaling.
This lesson has six episodes. Each one is about half an hour of teaching plus a short exercise. The slide decks for the SURF course sit beside it. The instructor notes say which deck matches which episode.
The course cluster is a small Magic Castle cluster on SURF Research Cloud. It has the same kinds of parts as Snellius: a login node, Slurm, a shared file system, and the EESSI software stack. The numbers are smaller. Commands you practice there are the commands you will use on Snellius, with a shorter resource request.
If you cannot reach either machine today, every episode has a fallback you can run in the EESSI client container. That container mounts the same software repository the cluster uses. It does not give you a batch queue. You still run the program the job would have run.
The login node is shared. You prepare work there. You do not run the long computation there.
You need a terminal and one of the three machines below. You do not need all three.
Snellius
Snellius is the Dutch national supercomputer. SURF sends the account mail after your project has a login. The public description of the machine is at https://www.surf.nl/en/services/compute/snellius-the-national-supercomputer.
Sign in to the SURF user portal before the first SSH login. If the
network you are on is not trusted, the welcome mail names a door node.
Use that host instead of snellius.surf.nl.
A browser session through Open OnDemand is still a login node. Do not start the long run there.
The course cluster
The course cluster is a Magic Castle workspace on SURF Research
Cloud. The template is https://github.com/ComputeCanada/magic_castle. Your
trainer sends a setup link. That link sets your password. The welcome
note has the address, written here as MANAGER.
There is one login node. module load 2025 selects EESSI
2025.06. module load 2024 selects that same stack and is
the one you load before QCG-PilotJob. There is no CUA
account and no project budget on this cluster.
The EESSI client, when you have no cluster
The software episodes also run in the EESSI client container. Access is documented at https://www.eessi.io/isc26-tutorial/getting-access/ and day-to-day use at https://www.eessi.io/isc26-tutorial/usage/.
You need Apptainer 1.0 or newer, with --fusemount
support. This shell is the short form of the client script on that page.
It mounts the same repository the cluster uses. It does not give you
Slurm.
BASH
mkdir -p "$HOME/eessi-work/var-lib-cvmfs" "$HOME/eessi-work/var-run-cvmfs" "$HOME/eessi-work/home"
export APPTAINER_BIND="$HOME/eessi-work/var-run-cvmfs:/var/run/cvmfs,$HOME/eessi-work/var-lib-cvmfs:/var/lib/cvmfs"
export APPTAINER_HOME="$HOME/eessi-work/home:/home/$USER"
apptainer shell --fusemount "container:cvmfs2 software.eessi.io /cvmfs/software.eessi.io" docker://ghcr.io/eessi/client:rocky8
Inside the container:
BASH
source /cvmfs/software.eessi.io/versions/2025.06/init/lmod/bash
module load Python/3.13.5-GCCcore-14.3.0
python3 --version
python3 --version prints Python 3.13.5. The
first launch downloads the image and can take a few minutes. Later
launches are shorter.
The container has no sbatch and no squeue.
Use it for the software episode and for pi_one.py. Use
Snellius or the course cluster for the queue.
Files from this lesson
The batch scripts and the pi program are in
episodes/files/. Copy pi_one.py into the
directory you submit from, or submit from episodes/files
after you have cloned the lesson.