Skip to main content

A TUI for the Slurm Workload Manager.

Project description

turm

image image

A text-based user interface (TUI) for the Slurm Workload Manager, 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.

Installation

turm is available on PyPI and crates.io:

# With uv.
uv tool install turm

# With pip.
pip install turm

# With cargo.
cargo install turm

# With wget. Make sure ~/.local/bin is in your $PATH.
wget https://github.com/kabouzeid/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.11.0-py3-none-musllinux_1_2_x86_64.whl (1.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

turm-0.11.0-py3-none-musllinux_1_2_i686.whl (1.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

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

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

turm-0.11.0-py3-none-musllinux_1_2_aarch64.whl (1.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

turm-0.11.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

turm-0.11.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

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

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

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

Uploaded Python 3manylinux: glibc 2.17+ i686

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

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

turm-0.11.0-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.11.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for turm-0.11.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9ef25272ee19acf6e39debe01edd6e0ddcbf51e9f1662cf6b2f252542366b198
MD5 382ecbca85b2acef1de379356b2506e8
BLAKE2b-256 7c01980bf9c9b0c90fef223abc46693af66628211bd414fcec72bdeac810fd2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.11.0-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 7450f526ae6c514da8c49112c75fed389dcb7c91637bb81b007a6eac80c88fa6
MD5 1d982d46ee0d98a1d325f6f7e6ad84e0
BLAKE2b-256 382d03990a11b2181103d0b825daf0052d56dd9df273585907bf5e6adacfb294

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.11.0-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 2b3ff3ea9d08b085e90475a7c72f2f40aee8711dee393bad53295757c19f6455
MD5 6175f8042c51e8ea61e31dde07cec011
BLAKE2b-256 d60b64bc67597e27ad09d5bfd65965085f336d6644a4dfa8a780683eb2f1354c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.11.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ca1711d155e2ca8c0d61709a58448b445639dbd87ba231a040d476340a57b7bd
MD5 911401d606dd5b92c97978581eb1ebc3
BLAKE2b-256 c7642a5a30a00b4eccc75d36c1e76f4603280f43c8967fd451d4a6ab4b9b6b7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.11.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d226fa6ecfcffaa6aec970196db3243445b7fd46c7d19c37e9e5af2be2525c6d
MD5 cea402d28dbb186e2c3e5be4274199fb
BLAKE2b-256 e998739ede7457de13490330f27f115d0cdd54cd5ff475c9ad5c41df370169cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.11.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a75d57b7a9c79d3d3d47612c9b7999de2531d99993b1487abb1309319924496e
MD5 9606ef1ba110da4f81e558956f99284c
BLAKE2b-256 c649096444e09e595394be1695df4d9d1705c88bab41a9365c82afa511992a0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.11.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c52b912d90e207178c2417ac150cf8f5cea40620635beb5f9d1f5d1f368012f9
MD5 de54e301241118e755b549c3def782df
BLAKE2b-256 08b483306d025a6cccf788fbf11fa6b3cd12df9ccab495beba3f40bf481be29f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.11.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e22fccc187caaab96fa04a8b057aa15cd96c5b81c1cce447bd6354b9bc584b45
MD5 855bf4494c8084899f2d21462df6ddff
BLAKE2b-256 9e446d3141327900dfca014f6007273ce286000a6545eabc542c3fea8352c85d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.11.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f5c1e2086953760101e058e3f86d41554b0caf270a53dc68ffe8bd0f370fde44
MD5 dc246b04887999fe6a4f80604954d121
BLAKE2b-256 f57f905f72ff053891bdaae32688a394fefa1ff573aa5ff37027f36bf2abcea5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.11.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 42dfab2a0be26c4db92909c29607387762667640ca9da5b559b79b6912579ef7
MD5 c9dc08189e1fbd7d8095f3359533c03c
BLAKE2b-256 6b9ba773e88a35c95c7c0f88ca8fed96811b81fe2d87962cd529e42b46620332

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