Computing Library › HPC & Compute
HPC & Compute

Job Scheduling and Batch Systems

Batch schedulers allocate a shared cluster's nodes among many users' jobs, balancing throughput, fairness, and utilization.

Sharing a scarce machine

An HPC cluster serves many users at once, so access is mediated by a batch scheduler such as Slurm, PBS, or LSF. A user submits a job script that requests resources, node count, cores, GPUs, memory, and a time limit, and the scheduler decides when and where it runs. Jobs wait in a queue rather than running interactively.

What the scheduler optimizes

Kronos motion — jobs industry

The scheduler juggles competing goals: high utilization (keep nodes busy), fairness (no user monopolizes the machine), and reasonable turnaround (jobs do not wait forever). These goals conflict, so scheduling policy is a tuned compromise expressed through priorities and fair-share accounting.

Key mechanisms

Backfill and the time limit

Backfill relies on accurate time-limit requests: it can slot a short job into a gap only if it trusts the job to finish in time. Users who overstate limits get slower turnaround; those who understate risk being killed. This is one reason checkpointing matters, a job can resume across allocations.

A typical submission

A job script names the resources and the program to run, then the scheduler places it when resources free up and the priority is right. Good citizenship, right-sizing requests and packing work efficiently, improves both personal turnaround and overall machine throughput.