Skip to main content

A TUI for the Slurm Workload Manager.

Project description

turm

image image Conda Version

A TUI for Slurm, which provides a convenient way to manage your cluster jobs.

turm demo

turm accepts the same options as squeue (see man squeue). Use turm --help to get a list of all available options. For example, to show only your own jobs, sorted by descending job ID, including all job states (i.e., including completed and failed jobs):

turm --me --sort=-id --states=ALL

Installation

turm is available on PyPI, crates.io, and conda-forge:

# With uv.
uv tool install turm

# With pip.
pip install turm

# With cargo.
cargo install turm

# With pixi.
pixi global install turm

# With conda.
conda install --channel conda-forge turm

# With wget. Make sure ~/.local/bin is in your $PATH.
wget https://github.com/karimknaebel/turm/releases/latest/download/turm-x86_64-unknown-linux-musl.tar.gz -O - | tar -xz -C ~/.local/bin/

The release page also contains precompiled binaries for Linux.

Shell Completion (optional)

Bash

In your .bashrc, add the following line:

eval "$(turm completion bash)"

Zsh

In your .zshrc, add the following line:

eval "$(turm completion zsh)"

Fish

In your config.fish or in a separate completions/turm.fish file, add the following line:

turm completion fish | source

How it works

turm obtains information about jobs by parsing the output of squeue. The reason for this is that squeue is available on all Slurm clusters, and running it periodically is not too expensive for the Slurm controller ( particularly when filtering by user). In contrast, Slurm's C API is unstable, and Slurm's REST API is not always available and can be costly for the Slurm controller. Another advantage is that we get free support for the exact same CLI flags as squeue, which users are already familiar with, for filtering and sorting the jobs.

Ressource usage

TL;DR: turmwatch -n2 squeue + tail -f slurm-log.out

Special care has been taken to ensure that turm is as lightweight as possible in terms of its impact on the Slurm controller and its file I/O operations. The job queue is updated every two seconds by running squeue. When there are many jobs in the queue, it is advisable to specify a single user to reduce the load on the Slurm controller (see squeue --user). turm updates the currently displayed log file on every inotify modify notification, and it only reads the newly appended lines after the initial read. However, since inotify notifications are not supported for remote file systems, such as NFS, turm also polls the file for newly appended bytes every two seconds.

Star History

Star History Chart

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

turm-0.13.1-py3-none-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

turm-0.13.1-py3-none-musllinux_1_2_i686.whl (1.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

turm-0.13.1-py3-none-musllinux_1_2_armv7l.whl (1.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

turm-0.13.1-py3-none-musllinux_1_2_aarch64.whl (1.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

turm-0.13.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

turm-0.13.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

turm-0.13.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

turm-0.13.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

turm-0.13.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

turm-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

File details

Details for the file turm-0.13.1-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for turm-0.13.1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 750b0ba406cb2a2b7a4a9dc49f79a29b8f8989e287336f2b1aafe7bd530f987f
MD5 49e5c0b62851549309cc9046b6d823c0
BLAKE2b-256 2e0c9aa994ff46e366c97feb0f193813b3420789703e941e3617dc919dd00105

See more details on using hashes here.

File details

Details for the file turm-0.13.1-py3-none-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for turm-0.13.1-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8494b6946acc1ef4aec9a5c0c04b0321049cf0b587430ac627d80f31cdafd141
MD5 25120a7aae28467ab0e0ef984fb0aeba
BLAKE2b-256 86d961f9ff1a1210a853a4c1315981766a5762dc4c9d0d56073dc18d9bab4cd1

See more details on using hashes here.

File details

Details for the file turm-0.13.1-py3-none-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for turm-0.13.1-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 faa3bcd407a285fdd5b88e4fc941110c8e641dee11d17d8a8525c562f790c84c
MD5 a09e911b1b21bbae9edd1d5c43f1e22e
BLAKE2b-256 47c20e9b4afca6e71f71f037ea666232b582e9b2b36b174b2aa27371e18b36d1

See more details on using hashes here.

File details

Details for the file turm-0.13.1-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for turm-0.13.1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 401bec4e7186f23a764329b3830749ad8e57159f000cf69a3479349ada5af6aa
MD5 37de2f242194b3d4bd1c842211a650f4
BLAKE2b-256 a93e315e518c321ec0c50b912640a70c847d7d96f6cea8478c5737570eeef072

See more details on using hashes here.

File details

Details for the file turm-0.13.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for turm-0.13.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dbd461b92a81a33ff23c0389b2b02ea24cceff07cb4da0b7c59e6b11d6f37fb5
MD5 759baba7fc03d636725fb94fd6e79ff3
BLAKE2b-256 73302c8d664014c9c6fe5328db076b16332b404995314bf07615a5db4add8aab

See more details on using hashes here.

File details

Details for the file turm-0.13.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for turm-0.13.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 34c62bbc53723b472051419f04ee09366add6c827c1cc7956522cf7e1204b643
MD5 23794df0365fbc8921d5908335712942
BLAKE2b-256 e8494c01d6fc45d9e3d18f2ad42ca769e37f78439f98ff81710629e79b56e020

See more details on using hashes here.

File details

Details for the file turm-0.13.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for turm-0.13.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 46774c0c79c7784fa1c9593a16361d16714e0ae82dc082aa4b70950e210f63f5
MD5 063690f046caf31d4d45cdd107f7a4c6
BLAKE2b-256 b21603f77be6fdcc5a2393f0b0a86d7fb08c7cd8299bc9934bad588eb3d72896

See more details on using hashes here.

File details

Details for the file turm-0.13.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for turm-0.13.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f592f021dac0da10f625b379db5c7171508136523544974d6bc257f73e1b11cb
MD5 b2239788bc54dbbae21143e4322a0d55
BLAKE2b-256 1f453b51dc5b89047b8aff95bcaa13ccf7fd38e0f64ad2e784a42ddc83659f8b

See more details on using hashes here.

File details

Details for the file turm-0.13.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for turm-0.13.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3b768cb67c2607f5f8031d98d749e16e5159091b85fb0362a29f9f5f6d4b735d
MD5 921bbbfede767184bce8157edfa5b521
BLAKE2b-256 18bedff0a7f688e9fee14783d4be97563d0c223da451c1183a115f73ccfb7d04

See more details on using hashes here.

File details

Details for the file turm-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for turm-0.13.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 65f37cb0b5f82857233870bc32d4d61068894266f54d8ea34106931ce596caed
MD5 c57fea2d0ff17223ea5c9ad484329702
BLAKE2b-256 e7cbdf8bb38c6e28076a5dfa895e6e886f1c45f77159a3b6be32c3fa937a0681

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page