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 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.
A Python program used for manipulation of Slurm hostlists including functions such as intersection and difference. Download the code from:
Lua bindings for hostlist functions are also available here:
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 perapi 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.
- Task Affinity plugins
- 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
- 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.
Prints a consolidated compute node status line, with one line per node including a list of jobs.
- 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:
Some Slurm plugins (slurmrestd, burst_buffer/datawarp, burst_buffer/lua, jobcomp/elasticsearch 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 installDeclare the package configuration path before compiling Slurm (example provided for /bin/sh):
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-c cd http_parser make sudo make installAdd the following argument when running configure for Slurm:
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 installAdd the following argument when running configure for Slurm:
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 installAdd the following argument when running configure for Slurm:
Slurm-web is a free software, distributed under the GPL version 3 license, that provides both a HTTP REST API (based on JSON format) and a web GUI with dashboards and graphical views of the current state of your Slurm-based HPC supercomputers. The website of Slurm-web, with screenshots:
Last modified 24 March 2022