Download Slurm
Slurm source can be downloaded from
https://www.schedmd.com/downloads.php.
Slurm has also been packaged for
Debian and
Ubuntu
(named slurm-wlm),
Fedora, and
NetBSD (in pkgsrc) and
FreeBSD.
Related Software
Note that the following software is not written or maintained by SchedMD. Some of the software is required for certain functionality (e.g. MySQL or MariaDB are required to use slurmdbd) while other software was written to provide additional functionality for users or administrators.
- Authentication plugins identifies the user originating a message.
- MUNGE (recommended)
In order to compile the "auth/munge" authentication plugin for Slurm, you will need to build and install MUNGE, available from https://dun.github.io/munge/ and Debian and Fedora and Ubuntu. - Authentication tools for users that work with Slurm.
- AUKS
AUKS is an utility designed to ease Kerberos V credential support addition to non-interactive applications, like batch systems (Slurm, LSF, Torque, etc.). It includes a plugin for the Slurm workload manager. AUKS is not used as an authentication plugin by the Slurm code itself, but provides a mechanism for the application to manage Kerberos V credentials. - Databases can be used to store accounting information. See our Accounting web page for more information.
- DRMAA (Distributed Resource Management Application API)
PSNC DRMAA for Slurm is an implementation of Open Grid Forum DRMAA 1.0 (Distributed Resource Management Application API) specification for submission and control of jobs to Slurm. Using DRMAA, grid applications builders, portal developers and ISVs can use the same high-level API to link their software with different cluster/resource management systems.
There is a variant of PSNC DRMAA providing support for Slurm's --cluster option available from https://github.com/natefoo/slurm-drmaa.
Perl 6 DRMAA bindings are available from https://github.com/scovit/Scheduler-DRMAA. - Hardware topology
- Portable Hardware Locality (hwloc)
- NOTE: If you build Slurm or any MPI stack component with hwloc, note that versions 2.5.0 through 2.7.0 (inclusive) of hwloc have a bug that pushes an untouchable value into the environ array, causing a segfault when accessing it. It is advisable to build with hwloc version 2.7.1 or later.
- Used by slurmd and PMIx client to get hardware topology information.
- Hostlist
A Python program used for manipulation of Slurm hostlists including functions such as intersection and difference. Download the code from:
http://www.nsc.liu.se/~kent/python-hostlist
Lua bindings for hostlist functions are also available here:
https://github.com/grondo/lua-hostlist
NOTE: The Lua hostlist functions do not support the bracketed numeric ranges anywhere except at the end of the name (i.e. "tux[0001-0100]" and "rack[0-3]_blade[0-63]" are not supported). - MPI versions supported
- Command wrappers
There is a wrapper for Maui/Moab's showq command here. - Scripting interfaces
- A Perl interface is included in the Slurm distribution in the contribs/perlapi directory and packaged in the perlapi RPM.
- PySlurm is a Python/Cython module to interface with Slurm. There is also a Python module to expand and collect hostlist expressions available here.
- SPANK Plugins
SPANK provides a very generic interface for stackable plug-ins which may be used to dynamically modify the job launch code in Slurm. SPANK plugins may be built without access to Slurm source code. They need only be compiled against Slurm‘s spank.h header file, added to the SPANK config file plugstack.conf, and they will be loaded at runtime during the next job launch. Thus, the SPANK infrastructure provides administrators and other developers a low cost, low effort ability to dynamically modify the runtime behavior of Slurm job launch. Additional documentation can be found here. - Node Health Check
Probably the most comprehensive and lightweight health check tool out there is LBNL Node Health Check. It has integration with Slurm as well as Torque resource managers. - Accounting Tools
- UBMoD is a web based tool for displaying accounting data from various
resource managers. It aggregates the accounting data from sacct into a MySQL
data warehouse and provide a front end web interface for browsing the data.
For more information, see the
UDMod home page and
source code.
- XDMoD (XD Metrics on Demand) is an NSF-funded open source tool designed to audit and facilitate the utilization of the XSEDE cyberinfrastructure by providing a wide range of metrics on XSEDE resources, including resource utilization, resource performance, and impact on scholarship and research.
- UBMoD is a web based tool for displaying accounting data from various
resource managers. It aggregates the accounting data from sacct into a MySQL
data warehouse and provide a front end web interface for browsing the data.
For more information, see the
UDMod home page and
source code.
- STUBL (Slurm Tools and UBiLities)
STUBL is a collection of supplemental tools and utility scripts for Slurm.
STUBL home page. - pestat
Prints a consolidated compute node status line, with one line per node including a list of jobs.
Home page - Graphical Sdiag
The sdiag utility is a diagnostic tool that maintains statistics on Slurm's scheduling performance. You can run sdiag periodically or as you modify Slurm's configuration. However if you want a historical view of these statistics, you could save them in a time-series database and graph them over time as performed with this tool: - JSON
Some Slurm plugins (slurmrestd, burst_buffer/datawarp, burst_buffer/lua, jobcomp/elasticsearch, jobcomp/kafka and power/cray_aries) parse and/or serialize JSON format data. These plugins and slurmrestd are designed to make use of the JSON-C library for this purpose. Instructions for the build are as follows:
git clone --depth 1 --single-branch -b json-c-0.15-20200726 https://github.com/json-c/json-c.git json-c mkdir json-c-build cd json-c-build cmake ../json-c make sudo make install
Declare the package configuration path before compiling Slurm (example provided for /bin/sh):export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:$PKG_CONFIG_PATH
-
HTTP Parser
slurmrestd requires libhttp_parser (>=v2.6.0). Instructions for the build are as follows:
git clone --depth 1 --single-branch -b v2.9.4 https://github.com/nodejs/http-parser.git http_parser cd http_parser make sudo make install
Add the following argument when running configure for Slurm:--with-http-parser=/usr/local/
-
YAML Parser
slurmrestd requires libyaml to support YAML. Instructions for the build are as follows:
git clone --depth 1 --single-branch -b 0.2.5 https://github.com/yaml/libyaml libyaml cd libyaml ./bootstrap ./configure make sudo make install
Add the following argument when running configure for Slurm:--with-yaml=/usr/local/
-
JWT library
JWT authentication requires libjwt. Instructions for the build are as follows:
git clone --depth 1 --single-branch -b v1.12.0 https://github.com/benmcollins/libjwt.git libjwt cd libjwt autoreconf --force --install ./configure --prefix=/usr/local make -j sudo make install
Add the following argument when running configure for Slurm:--with-jwt=/usr/local/
Last modified 05 July 2023