Example serial job scripts on the Linux-Cluster
Introductory remarks
The job scripts for SLURM partitions are provided as templates which you can adapt for your own settings. In particular, you should account for the following points:
Some entries are placeholders, which you must replace with correct, user-specific settings. In particular, path specifications must be adapted. Always specify the appropriate directories instead of the names with the three periods in the following examples!
In case you have to work with the environment modules package in your batch script, you also have to source the file /etc/profile.d/modules.sh.
Time and Memory Requirements
Try to estimate the time and mem require as close as possible to your needs. This help to prevent idling nodes or CPUs.
Serial jobs
This job type normally uses a single core on a shared memory node of the designated SLURM partition. The multiple cores of a node are shared with other users.
Serial job | Serial job (long running) |
---|---|
#!/bin/bash #SBATCH -J job_name #SBATCH -o ./%x.%j.%N.out #SBATCH -D ./ #SBATCH --get-user-env #SBATCH --clusters=serial #SBATCH --partition=serial_std #SBATCH --mem=800mb #SBATCH --cpus-per-task=1 #SBATCH --export=NONE #SBATCH --time=24:00:00 ./myprog.exe The above example requests 1 core of a node and assumes the binary | #!/bin/bash #SBATCH -J job_name #SBATCH -o ./%x.%j.%N.out #SBATCH -D ./ #SBATCH --get-user-env #SBATCH --clusters=serial #SBATCH --partition=serial_long #SBATCH --mem=800mb #SBATCH --cpus-per-task=1 #SBATCH --export=NONE #SBATCH --time=8-00:00:00 ./myprog.exe The above example requests 1 core of a node and assumes the binary |
Shared Memory jobs
For very large memory jobs (more than 8 GByte and up to 240 GBytes) or (going beyond 1 TByte) the teramem_inter partition in the interactive segment should be used.
Shared memory job up to 28 cores with up to 50 GByte memory | Shared memory job on HP DL580 "teramem1" with shared memory multithreading with up to 96 cores and 6 TByte of memory |
---|---|
#!/bin/bash #SBATCH -J job_name #SBATCH -o ./%x.%j.%N.out #SBATCH -D ./ #SBATCH --get-user-env #SBATCH --clusters=serial #SBATCH --partition=serial_std #SBATCH --mem=10000mb #SBATCH --cpus-per-task=7 #SBATCH --export=NONE #SBATCH --time=8:00:00 export OMP_NUM_THREADS=7 ./myprog.exe | #!/bin/bash #SBATCH -J job_name #SBATCH -o ./%x.%j.%N.out #SBATCH -D ./ #SBATCH --get-user-env #SBATCH --clusters=inter #SBATCH --partition=teramem_inter #SBATCH --mem=2000gb #SBATCH --cpus-per-task=32 #SBATCH --export=NONE #SBATCH --time=8:00:00 export OMP_NUM_THREADS=32 ./myprog.exe |
The above example requests 7 cores of a node and assumes the binary
which is also a good balance. | To avoid wasting resources, the number of cores requested should be commensurate with the memory requirement, i.e. at around 60 GBytes per core. This may imply that you need to parallelize your code if not done yet. |
TSM Archivation
TSM archivation is only supported on the login nodes of the cluster, not on the SLURM-controlled batch nodes. Please consult the document describing tape archivation on our HPC systems for more details on TSM usage.