Running Jobs

ARC clusters use SLURM (Simple Linux Utility for Resource Management) as the job scheduler and workload manager. SLURM allocates compute resources to users, manages job queues, and ensures fair sharing across the cluster.

How Job Submission Works

  1. Write a job script — Define your workload with SLURM directives (resources, time, partition) and the commands to run

  2. Submit with sbatch — SLURM queues your job and assigns it a unique job ID

  3. Wait in queue — SLURM schedules your job based on resource availability, priority, and fair-share policies

  4. Execute on compute nodes — SLURM launches your job on allocated nodes with the requested resources

  5. Monitor and manage — Track progress with squeue, inspect output, or cancel with scancel

Why Use Job Scripts?

Running compute-intensive workloads directly on login nodes is prohibited and can degrade performance for all users. Job scripts ensure:

  • Resource isolation — Your job runs on dedicated compute nodes, not shared login nodes

  • Fair scheduling — SLURM balances workloads across all users and partitions

  • Resource guarantees — You get exactly what you request (CPUs, memory, GPUs, time)

  • Automatic cleanup — SLURM reclaims resources when your job completes

Important

Never run long-running or compute-intensive commands on login nodes. Use sbatch to submit jobs, or srun for interactive sessions on compute nodes.

Quick Commands

# Submit a job
sbatch my_job.sh

# Check job status
squeue -u $USER

# Cancel a job
scancel <job_id>

Topics

Topic

Description

Writing Job Scripts

SLURM directives, job types, and advanced tips

Partitions and Limits

Cluster partitions, QoS, and account limits

Job Management

Monitor, cancel, prioritize jobs

Interactive Sessions

Run commands on compute nodes

Multi-processing vs. Multi-threading

Threads vs. processes, Slurm resource allocation, hybrid models

Advanced SLURM Commands

Command reference (squeue, sacct, sinfo, etc.)