Skip to content

Snap package for Slurm. Slurm is a highly scalable cluster management and job scheduling system for large and small Linux clusters ⚖️🐧

License

Notifications You must be signed in to change notification settings

charmed-hpc/slurm-snap

Repository files navigation

Slurm snap

CI Release GitHub License Matrix

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.

✨ Getting started

Installing the Slurm snap

The latest, stable version of the Slurm snap can installed using the following command:

sudo snap install slurm --classic

Manage the munge key

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.

Configuring Slurm

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:

munge

  • munged.max-thread-count
    • Set the maximum number of threads that munged can spawn for processing authentication requests.

slurmd

  • slurmd.config-server
    • Set configuration server for slurmd. Required when running slurmd in configless mode. The daemon will download the slurm.conf configuration file from the primary control server.

slurmrestd

  • 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.

🤔 What's next?

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:

🛠️ Development

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.

🤝 Project and community

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:

📋 License

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.

About

Snap package for Slurm. Slurm is a highly scalable cluster management and job scheduling system for large and small Linux clusters ⚖️🐧

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published