SLURM Demo

From Stat DS Computing Wiki


This page will walk you through submitting a job using SLURM. It will also cover basic Linux usage.

1 - Copy SLURM Demo Files

This section will cover copying example SLURM files to your own personal location.

1 - Log in to the head node server using your StatDS computing account through your terminal. (If you forget your password, reset it here.)

  • This cluster is used for demonstration purposes only. Actual compute jobs are not meant to be submitted to this cluster.
ssh statdsuser@ood.stat.cmu.edu

2 - Copy the SLURM demo folder to your home directory. Do not run these files without moving them to your own working directory.

cp -r /share/slurmdemo ~/slurmdemo

3 - Navigate to your new SLURM Demo directory.

cd ~/slurmdemo

4 - View the contents of the SLURM Demo directory.

ls -l

2 - Submit SLURM Job

This section will demonstrate submitting a job using SLURM.

1 - Modify the “submit_bash.sh” script. Make sure that you are in the correct directory that has the SLURM demo files from the section above.

  • You may use any text editor (vim, vi, nano, etc). In this example nano will be used.
    nano submit_bash.sh
    2 - Change these three lines and make them more specific to you.
    SBATCH --job-name=yourjobuniquename
    - This is the name of your job.
    
    SBATCH --output=yourjoboutputfile_%j.out
    - This is the name of your job’s output file. Any intentional output generated from your job will be placed into this file. The “%j” will add the job’s unique JobID to the name.
    
    SBATCH --error=yourjoberrorfile_%j.err
    - This is the name of your job’s error file. Any unintentional errors generated in the script will be placed into this file. The “%j” will add the job’s unique JobID to the name.

3 - Run the submit script.

sbatch submit_bash.sh

4 - Once you submit your job, you can view the status of it by running the command below. This will only show your jobs.

squeue -u $USER

5 - To view every running job, run the command below.

squeue

6 - Once your job has finished, view the contents of your output file. Use your unique output file name as modified in step 2.

cat yourjoboutputfile_%j.out

3 - Submit SLURM Job with an Error

This section will demonstrate submitting a job using SLURM that produces an error.

In addition to the regular output file, SLURM produces a dedicated file that contains any errors in your script. In some cases this is the only file that will contain any output.

Rename the error file in your own submit_err.sh. Modify the line shown below.

#SBATCH --error=yourjoberrorfile_%j.err

To see an example, run "submit_err.sh". This job runs a Python script with a syntax error.

sbatch submit_err.sh

View the contents of the error output file.

cat nameofyourerrfile.err


Additional Information

Requesting Additional Resources

SLURM allows you to request multiple CPU cores, a specified amount of RAM, and even GPUs if they are available. Requesting more than 1 CPU is especially important when paralyzing tasks. Below is an example submit script that shows how to declare each.

!/bin/bash

SBATCH --partition selectedpartition
SBATCH --ntasks 1

##number of CPUs you need:
SBATCH --cpus-per-task 6

##Amount of RAM in GB
SBATCH --mem 10G

##Number of GPUs
SBATCH --gres=gpu:1

For more information about SLURM, visit this page here.