Slurm Workload Manager

Slurm

Developer(s)| SchedMD
Written in| C
Operating system| Linux
Type| Job Scheduler for Clusters and Supercomputers
Website| {{{1}}}

The Slurm Workload Manager, formerly known as Simple Linux Utility for Resource Management (SLURM), or simply Slurm, is a free and open-source job scheduler for Linux and Unix-like kernels, used by many of the world's supercomputers and computer clusters.

It provides three key functions:

* allocating exclusive and/or non-exclusive access to resources (computer nodes) to users for some duration of time so they can perform work,
* providing a framework for starting, executing, and monitoring work, typically a parallel job such as Message Passing Interface (MPI) on a set of allocated nodes, and
* arbitrating contention for resources by managing a queue of pending jobs.

Slurm is the workload manager on about 60% of the TOP500 supercomputers.[1]

Slurm uses a best-fit algorithm based on Hilbert curve scheduling or fat tree network topology in order to optimize locality of task assignments on parallel computers.[2]

## Contents

* 1 History
* 2 Structure
* 3 Features
* 4 Supported platforms
* 5 License
* 6 Commercial support
* 7 Usage
* 8 See also
* 9 References
* 10 Further reading
* 11 External links

## History

Slurm began development as a collaborative effort primarily by Lawrence Livermore National Laboratory, SchedMD,[3] Linux NetworX, Hewlett-Packard, and Groupe Bull as a Free Software resource manager. The first release happened in 2002.[4] It was inspired by the closed source Quadrics RMS and shares a similar syntax. The name is a reference to the soda in Futurama.[5] Over 250 people around the world have contributed to the project. It has since evolved into a sophisticated batch scheduler capable of satisfying the requirements of many large computer centers.

As of November 2021[update], TOP500 list of most powerful computers in the world indicates that Slurm is the workload manager on more than half of the top ten systems.

## Structure

Slurm's design is very modular with about 100 optional plugins. In its simplest configuration, it can be installed and configured in a couple of minutes. More sophisticated configurations provide database integration for accounting, management of resource limits and workload prioritization.

## Features

Slurm features include:[6]

* No single point of failure, backup daemons, fault-tolerant job options
* Highly scalable (schedules up to 100,000 independent jobs on the 100,000 sockets of IBM Sequoia)
* High performance (up to 1000 job submissions per second and 600 job executions per second)
* Free and open-source software (GNU General Public License)
* Highly configurable with about 100 plugins
* Fair-share scheduling with hierarchical bank accounts
* Preemptive and gang scheduling (time-slicing of parallel jobs)
* Integrated with database for accounting and configuration
* Resource allocations optimized for network topology and on-node topology (sockets, cores and hyperthreads)
* Advanced reservation
* Idle nodes can be powered down
* Different operating systems can be booted for each job
* Scheduling for generic resources (e.g. Graphics processing unit)
* Real-time accounting down to the task level (identify specific tasks with high CPU or memory usage)
* Resource limits by user or bank account
* Accounting for power consumption by job
* Support of IBM Parallel Environment (PE/POE)
* Support for job arrays
* Job profiling (periodic sampling of each task's CPU use, memory use, power consumption, network and file system use)
* Sophisticated multifactor job prioritization algorithms
* Support for MapReduce+
* Support for burst buffer that accelerates scientific data movement
* Support for heterogeneous generic resources
* Automatic job requeue policy based on exit value

## Supported platforms

Recent Slurm releases run only on Linux. Older versions had been ported to a few other POSIX-based operating systems, including BSDs (FreeBSD, NetBSD and OpenBSD),[7] but this is no longer feasible as Slurm now requires cgroups for core operations. Clusters running operating systems other than Linux will need to use a different batch system, such as LPJS.[8] Slurm also supports several unique computer architectures, including:

* IBM BlueGene/Q models, including the 20 petaflop IBM Sequoia
* Cray XT, XE and Cascade
* Tianhe-2 a 33.9 petaflop system with 32,000 Intel Ivy Bridge chips and 48,000 Intel Xeon Phi chips with a total of 3.1 million cores
* IBM Parallel Environment
* Anton

## License

Slurm is available under the GNU General Public License v2.

## Commercial support

In 2010, the developers of Slurm founded SchedMD, which maintains the canonical source, provides development, level 3 commercial support and training services. Commercial support is also available from Bull, Cray, and Science + Computing (subsidiary of Atos).

## Usage

Slurm distinguishes several stages for a job

The `slurm` system has three main parts:

* `slurmctld`, a central control daemon running on a single control node (optionally with failover backups);
* many computing nodes, each with one or more `slurmd` daemons;
* clients that connect to the manager node, often with ssh.

The clients can issue commands to the control daemon, which would accept and divide the workload to the computing daemons.

For clients, the main commands are `srun` (queue up an interactive job), `sbatch` (queue up a job), `squeue` (print the job queue) and `scancel` (remove a job from the queue).

Jobs can be run in batch mode or interactive mode. For interactive mode, a compute node would start a shell, connects the client into it, and run the job. From there the user may observe and interact with the job while it is running. Usually, interactive jobs are used for initial debugging, and after debugging, the same job would be submitted by `sbatch`. For a batch mode job, its `stdout` and `stderr` outputs are typically directed to text files for later inspection.

## See also

* Job Scheduler and Batch Queuing for Clusters
* Beowulf cluster
* Maui Cluster Scheduler
* Open Source Cluster Application Resources (OSCAR)
* TORQUE
* Univa Grid Engine
* Platform LSF

## References

1. ↑ "Running a Job on HPC using Slurm". Center for High-Performance Computing - University of Southern California. https://hpcc.usc.edu/support/documentation/slurm/.
2. ↑ Pascual, Jose Antonio; Navaridas, Javier; Miguel-Alonso, Jose (2009). "Effects of Topology-Aware Allocation Policies on Scheduling Performance". Job Scheduling Strategies for Parallel Processing. 5798. pp. 138–144. doi:10.1007/978-3-642-04633-9_8. ISBN 978-3-642-04632-2.
3. ↑ "Slurm Commercial Support, Development, and Installation". SchedMD. https://www.schedmd.com/.
4. ↑ "Slurm History - SchedMD". https://www.schedmd.com/about-schedmd/slurm-history/.
5. ↑ "SLURM: Simple Linux Utility for Resource Management". 23 June 2003. https://slurm.schedmd.com/slurm_design.pdf.
6. ↑ "Slurm Workload Manager - Overview". https://slurm.schedmd.com/overview.html.
7. ↑ Slurm Platforms
8. ↑ Bacon, Jason (2025-08-26), outpaddling/LPJS, https://github.com/outpaddling/LPJS, retrieved 2025-10-10

## Further reading

* Balle, Susanne M.; Palermo, Daniel J. (2008). "Enhancing an Open Source Resource Manager with Multi-core/Multi-threaded Support". Job Scheduling Strategies for Parallel Processing. 4942. p. 37. doi:10.1007/978-3-540-78699-3_3. ISBN 978-3-540-78698-6.
* Jette, M.; Grondona, M. (June 2003). "SLURM: Simple Linux Utility for Resource Management". Proceedings of ClusterWorld Conference and Expo (San Jose, California). https://slurm.schedmd.com/slurm_design.pdf.
* Layton, Jeffrey B. (5 February 2009). "Caos NSA and Perceus: All-in-one Cluster Software Stack". Linux Magazine. http://www.linux-mag.com/id/7239/1/.
* Yoo, Andy B.; Jette, Morris A.; Grondona, Mark (2003). "SLURM: Simple Linux Utility for Resource Management". Job Scheduling Strategies for Parallel Processing. 2862. p. 44. doi:10.1007/10968987_3. ISBN 978-3-540-20405-3. https://archive.org/details/jobschedulingstr0000jssp_q2o1/page/44.

## External links

* No URL found. Please specify a URL here or add one to Wikidata.
* Slurm Documentation
* Slurm Workload Manager Architecture Configuration and Use
* Caltech HPC Center: Job Script Generator

* v
* t
* e

Linux kernel

Organization|

| Kernel|

* Linux Foundation
* Linux Mark Institute
* Linus's law
* Tanenbaum–Torvalds debate
* Tux
* SCO disputes
* Linaro
* GNU GPL v2
* menuconfig
* Supported computer architectures
* Kernel names
* Criticism

|

Support|

* Developers
* The Linux Programming Interface
* kernel.org
* LKML
* Linux conferences
* Users
* Linux User Group (LUG)

Technical|

| Debugging|

* CRIU
* ftrace
* kdump
* Linux kernel oops
* SystemTap
* BPF

|

Startup|

* vmlinux
* System.map
* dracut
* initrd
* initramfs

ABIs|

* Linux Standard Base
* x32 ABI

APIs|

| Of
userspace|

| FS,
daemons|

* devfs
* devpts
* debugfs
* procfs
* sysfs
* systemd
* udev
* Kmscon

|

Wrapper
libraries|

* C standard library
* glibc
* uClibc
* Bionic
* libhybris
* dietlibc
* EGLIBC
* klibc
* musl
* Newlib
* libcgroup
* libdrm
* libalsa
* libevdev
* libusb

kernel|

| System Call
Interface|

* POSIX
* ioctl
* select
* open
* read
* close
* sync
* …
* Linux-only
* futex
* epoll
* splice
* dnotify
* inotify
* readahead
* …

|

In-kernel|

* ALSA
* Crypto API
* DRM
* kernfs
* Memory barrier
* New API
* RCU
* Video4Linux

Components|

* Kernel modules
* BlueZ
* cgroups
* Console
* bcache
* Device mapper
* dm-cache
* dm-crypt
* DRM
* EDAC
* evdev
* Kernel same-page merging (KSM)
* LIO
* Framebuffer
* LVM
* KMS driver
* Netfilter
* Netlink
* nftables
* Network scheduler
* perf
* SLUB
* zram
* zswap

* Process and I/O schedulers:
* O(n) scheduler
* O(1) scheduler
* Completely Fair Scheduler (CFQ)
* Brain Fuck Scheduler
* Noop scheduler
* SCHED_DEADLINE

* Security Modules: AppArmor
* Exec Shield
* grsecurity
* PaX
* seccomp
* SELinux
* Smack
* Tomoyo Linux
* Linux PAM

* Device drivers
* 802.11
* graphics
* Raw device

* initramfs
* KernelCare
* kexec
* kGraft
* kpatch
* Ksplice

Variants|

* Mainline
* Linux kernel
* Linux-libre
* High-performance computing
* INK
* Compute Node Linux
* SLURM
* Real-time computing
* RTLinux
* RTAI
* Xenomai
* Carrier Grade Linux
* MMU-less
* μClinux
* PSXLinux

| Virtualization|

* Hypervisor
* KVM
* Xen
* OS-level virtualization
* Linux-VServer
* Lguest
* LXC
* OpenVZ
* Other
* L4Linux
* ELinOS
* User-mode Linux
* MkLinux
* coLinux

|

Adoption|

| Range
of use|

* Desktop
* Embedded
* Gaming
* Thin client:
* LTSP
* Thinstation
* Server:
* LAMP
* LYME-LYCE
* Devices

|

Adopters|

* List of Linux adopters
* GENIVI Alliance
* Proprietary software for Linux

* Category
* Commons
* Book
* Wikiversity
* Portal

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Slurm Workload Manager. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Slurm_Workload_Manager&oldid=4217657"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template