How to run a job on our computational ressources
Introduction
The rationale for this procedure is to ensure data security, to keep visibility on the cluster usage and prevent maxing out cluster resources.
Apptainer makes the container safe for all the other users : unlike Docker that needs to be run as root to be able to use GPUs, Apptainer is made for HPC usage, which prevents your container or the containers for other researchers to read your files, or erase them.
SLURM allows accounting of the submitted jobs to be able to keep visibility on the cluster usage, and will allows us to adapt its configuration along the way.
Before starting, make sure you can connect to the compute nodes.
Environment
-
On either server Chacha or Disco, you have a symlink datasets in your home directory that is linked to the local storage of the server : its purpose is to give you a proper space to put all the data you will be working on.
-
You have also another symlink shared_datasets for jobs that needs to be run on several nodes : this filesystem is shared between nodes.
-
Your .bashrc / .zshrc contains by default the variable APPTAINER_TMPDIR set to /home/user.name/.apptainer/ : this allows you to build containers without using the system /tmp that is restricted with a low quota, and use your larger dataset quota instead.
-
By default, you are the only one seeing your data : If you are working as a team on these data, please ask for a group creation so we can add members in it and apply suitable permissions.
The full filesystem layout, retention rules and quotas are described in Storage and quotas.
Containerize your application
To avoid having everyone installing their libraries installed on the system or on their user directly on the physical servers, we need you to keep them cleanly packed in a container : That way you can both install what you want inside this container, and you can do it without needing any root priviledge on the server you are sharing with other researchers.
For examples, see : How to create a simple apptainer container
Run your application via SLURM
To be able to run a job on CALC@HEI, you MUST run it under SLURM. Ressource usage is managed by Slurm on this cluster.
For examples, see : How-to create a simple SLURM job
More information on our SLURM cluster
Good practice
Common pitfalls — including why the VSCode remote-SSH plugin must not be used on our servers — are collected in the FAQ.
Automation
If you need to use Cron to schedule something, you need to ask for your user to be added to the /etc/cron.allow whitelist.