Schedulers & Command-Line Access

Most ACCESS resources use Slurm to manage jobs. Log in via SSH, write a job script, and submit — this page covers the essentials.

Common Slurm Commands

Slurm is the job scheduler used on most ACCESS resources. These commands cover the day-to-day workflow. Full Slurm documentation.

Command Description
sbatch job.shSubmit a batch job script
squeue -u $USERList your queued and running jobs
scancel <jobid>Cancel a job by its ID
sinfoShow partition and node availability
seff <jobid>Show efficiency report for a completed job
sacct -j <jobid>Show accounting data for a job
scontrol show job <jobid>Show full job details

Sample Job Script

A minimal Slurm batch script. Copy and adapt this for your workflow — replace partition name, time limit, and commands as needed.

#!/bin/bash
#SBATCH --job-name=my_job
#SBATCH --account=abc123         # your ACCESS allocation account
#SBATCH --partition=compute
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=4
#SBATCH --mem=8G
#SBATCH --time=01:00:00          # max walltime HH:MM:SS
#SBATCH --output=job_%j.out
#SBATCH --error=job_%j.err

module purge
module load python/3.11

python my_analysis.py
Partition names, maximum walltimes, and GPU request syntax vary by system. See the resources listing for per-system details. Browse all resources.

Requesting GPUs

GPU request syntax differs slightly between resources, but the general Slurm pattern is:

#SBATCH --gres=gpu:1            # request 1 GPU (most resources)
#SBATCH --gpus-per-node=a100:2  # request 2 A100 GPUs by type (where supported)

Interactive Jobs

For debugging, interactive data exploration, or short tests, you can request an interactive shell on a compute node:

srun --pty --nodes=1 --ntasks=1 --cpus-per-task=4 --mem=8G --time=01:00:00 /bin/bash

For interactive graphical work (Jupyter, RStudio, MATLAB), consider ACCESS OnDemand — it handles the session setup for you.

Frequently Asked Questions

My job is stuck in the queue — what should I do?

Run squeue --job and check the REASON column. Common reasons include Resources (waiting for nodes), Priority (other jobs ahead in queue), and QOSMaxWallDurationPerJobLimit (your walltime exceeds the partition limit).

You can also monitor queue depth on XDMoD.

How do I know which account to use for #SBATCH --account?

Run sacctmgr show associations user=$USER format=account,cluster,qos to list all accounts linked to your username. Your primary allocation account is usually formatted as abc123 (your ACCESS allocation number). If you have multiple accounts, check your allocation details in the ACCESS allocations portal to confirm which maps to each project.

Does every ACCESS resource use Slurm?

Most ACCESS resources use Slurm, but not all. A small number of systems use PBS/Torque or other schedulers. Check the resource-specific documentation before submitting jobs. The core concepts (job scripts, resource requests, queue monitoring) are similar across schedulers, but the exact flags and commands differ. When in doubt, open a help ticket with the resource provider.

How do I transfer output files after my job completes?

Use Globus for large transfers — it handles restarts automatically and works well between ACCESS systems and your campus. For smaller files, scp or rsync over SSH work well. Add a transfer step at the end of your job script so files move automatically when the job finishes, without requiring you to log back in.