An all-in-one snap package for the Slurm workload manager.
Slurm is used by many of the world's supercomputers and computer clusters. It is a highly scalable cluster management and job scheduling system for large and small Linux clusters. It is scalable, highly configurable, and supports scheduling for generic computational resources such as GPUs. This snap package includes:
munged
: The daemon responsible for authenticating local MUNGE clients and servicing their credential encode & decode requests.mungectl
: A command line tool for getting, setting, and generating MUNGE munge keys.slurmctld
: The central management daemon of Slurm.slurmd
: The compute node daemon of Slurm.slurmdbd
: The Slurm database daemon. Provides an interface to a database for Slurm.slurmrestd
: The Slurm REST API daemon. Provides an interface to Slurm via a REST API.- The MUNGE and Slurm CLI commands
- A CLI-based configuration API for configuring Slurm.
The latest, stable version of the Slurm snap can installed using the following command:
sudo snap install slurm --classic
mungectl
can be used to manage the munge.key file inside the Slurm snap:
slurm.mungectl key generate # Generate new munge key file.
slurm.mungectl key get # Get munge key file as base64-encoded string.
cat new.key.b64 | slurm.mungectl key set # Set new munge key using base64-encoded key.
Slurm configuration files such as slurm.conf and slurmdbd.conf can be found
under the /var/snap/slurm/common/etc/slurm
directory. Files in this directory
can be edited directly to configure your Slurm deployment.
Some of the services provided by the Slurm snap can be configured by using the
snap set slurm ...
command. See the sections below for the service options that
can be modified using snap
:
munged.max-thread-count
- Set the maximum number of threads that
munged
can spawn for processing authentication requests.
- Set the maximum number of threads that
slurmd.config-server
- Set configuration server for
slurmd
. Required when runningslurmd
in configless mode. The daemon will download the slurm.conf configuration file from the primary control server.
- Set configuration server for
slurmrestd.max-connections
- Set the maximum number of connections to process at one time.
slurmrestd.max-thread-count
- Set the maximum number of threads to spawn for processing client connections.
If you want to learn more about all the things you can do with the Slurm snap, here are some further resources for you to explore:
We use just as the command runner for this project. The project's justfile provides some useful recipes that will definitely help you while you're hacking on the Slurm snap:
just snap # Build snap
just fmt # Apply formatting standards to project
just lint # Check project against coding style standards
just unit # Run unit tests
To run the integration tests for the Slurm snap, you'll need to have both LXD and gambol installed on your machine:
just integration # Run integration tests
If you're interested in contributing your work to the Slurm snap, take a look at our contributing guidelines for further details.
The Slurm snap a project of the Ubuntu High-Performance Computing community. Interested in contributing bug fixes, new editors, documentation, or feedback? Want to join the Ubuntu HPC community? You’ve come to the right place 🤩
Here’s some links to help you get started with joining the community:
- Ubuntu Code of Conduct
- Contributing guidelines
- Join the conversation on Matrix
- Get the latest news on Discourse
- Ask and answer questions on GitHub
The Slurm snap is free software, distributed under the Apache Software License, version 2.0. See the Apache-2.0 LICENSE file for further details. The Slurm workload manager itself is licensed under the GNU General Public License, version 2, or any later version. See Slurm's legal notice for further licensing information about Slurm itself.