0 purchases
slurmutils 0.7.0
slurmutils
Utilities and APIs for interfacing with the Slurm workload manager.
slurmutils is a collection of various utilities that make it easier
for you and your friends to interface with the Slurm workload manager, especially if you
are orchestrating deployments of new and current Slurm clusters. Gone are the days of
seething over incomplete Jinja2 templates. Current utilities shipped in the
slurmutils package include:
from slurmutils.editors import ...
slurmconfig: An editor for slurm.conf configuration files.
slurmdbdconfig: An editor for slurmdbd.conf configuration files.
cgroupconfig: An editor for cgroup.conf configuration files.
For more information on how to use or contribute to slurmutils,
check out the Getting Started and Development
sections below 👇
✨ Getting Started
Installation
Option 1: Install from PyPI
$ python3 -m pip install slurmutils
Option 2: Install from source
We use the Poetry packaging and dependency manager to
manage this project. It must be installed on your system if installing slurmutils
from source.
$ git clone https://github.com/canonical/slurmutils.git
$ cd slurmutils
$ poetry install
Usage
slurmutils.editors
This module provides an API for editing files, and creating new files if they do not
exist. Here's some operations you can perform on files using the editors in this module:
slurmconfig
Edit a pre-existing slurm.conf configuration file
from slurmutils.editors import slurmconfig
# Open, edit, and save the slurm.conf file located at _/etc/slurm/slurm.conf_.
with slurmconfig.edit("/etc/slurm/slurm.conf") as config:
del config.inactive_limit
config.max_job_count = 20000
config.proctrack_type = "proctrack/linuxproc"
Add a new node to the slurm.conf file
from slurmutils.editors import slurmconfig
from slurmutils.models import Node
with slurmconfig.edit("/etc/slurm/slurm.conf") as config:
node = Node(
NodeName="batch-[0-25]",
NodeAddr="12.34.56.78",
CPUs=1,
RealMemory=1000,
TmpDisk=10000,
)
config.nodes.update(node.dict())
slurmdbdconfig
Edit a pre-existing slurmdbd.conf configuration file
from slurmutils.editors import slurmdbdconfig
with slurmdbdconfig.edit("/etc/slurm/slurmdbd.conf") as config:
config.archive_usage = "yes"
config.log_file = "/var/spool/slurmdbd.log"
config.debug_flags = ["DB_EVENT", "DB_JOB", "DB_USAGE"]
del config.auth_alt_types
del config.auth_alt_parameters
cgroupconfig
from slurmutils.editors import cgroupconfig
with cgroupconfig.edit("/etc/slurm/cgroup.conf") as config:
config.constrain_cores = "yes"
config.constrain_devices = "yes"
config.constrain_ram_space = "yes"
config.constrain_swap_space = "yes"
🤔 What's next?
If you want to learn more about all the things you can do with slurmutils,
here are some further resources for you to explore:
Open an issue
Ask a question on Github
🛠️ Development
This project uses tox as its command runner, which provides
some useful commands that will help you while hacking on slurmutils:
tox run -e fmt # Apply formatting standards to code.
tox run -e lint # Check code against coding style standards.
tox run -e unit # Run unit tests.
If you're interested in contributing your work to slurmutils,
take a look at our contributing guidelines for further details.
🤝 Project and community
slurmutils is 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
📋 License
slurmutils is free software, distributed under the GNU Lesser General Public License, v3.0.
See the LGPL-3.0 LICENSE file for further details.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.