Skip to content

Calling SLURM from Singularity container on Pelle@UPPMAX

Warning

This is not the right way to use SLURM and Singularity containers.
The example bellow is just a proof of concept using clean Ubuntu 24.04.4 LTS.
Use it at your own risk.

#!/bin/bash

singularity exec -B /usr/bin/sbatch \
                 -B /usr/bin/squeue \
                 -B /usr/bin/srun \
                 -B /etc/slurm \
                 -B /etc/munge \
                 -B /run/munge \
                 -B /var/run/munge \
                 -B /usr/lib64/slurm \
                 -B /usr/lib64/lua/5.4 \
                 -B /usr/share/lua \
                 -B /usr/lib64/liblua-5.4.so \
                 -B /usr/lib64/libjson-c.so.5 \
                 -B /usr/lib64/libmunge.so.2 \
                 -B /lib64/libcrypt.so.2 \
            ubuntu_latest.sif bash << EOF

# Check that you are in the container
cat /etc/os-release

export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH
echo "slurm:x:151:151:Slurm:/:/sbin/nologin" >> /etc/passwd
echo "slurm:x:151:" >> /etc/group

# Submit job
sbatch -A nais-XXXXX -n 1 -t 10:00 dummy.sh
# Check the queue
squeue --me

# Run something via srun
srun -A nais-XXXXX -n 1 hostname

EOF

Output

./test-slurm.sh

PRETTY_NAME="Ubuntu 24.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.4 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=noble
LOGO=ubuntu-logo

Submitted batch job 4768050

  JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
4768050     pelle dummy.sh   pmitev PD       0:00      1 (None)

srun: job 4768051 queued and waiting for resources
srun: job 4768051 has been allocated resources
p115.uppmax.uu.se