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.12.0-py3-none-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ i686

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

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

turm-0.12.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.12.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

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

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

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

Uploaded Python 3manylinux: glibc 2.17+ i686

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

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

turm-0.12.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.12.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for turm-0.12.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 91cb312518ecaa07a7ce16f2df0f7470ff203bde19f667631c8592fba3a3b2dd
MD5 b7066157a6f4431463377cc2b810e129
BLAKE2b-256 9f213b57f2a0b4e072a8503a73ff66adbefd36507b7e67e795913cd6ca5b3fd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.12.0-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1b0ca0e783b46b49fd32cc0d3db0efff4bd2275be7a252bf0f9ed5d2dafc1ae5
MD5 65c9d7640db42b31c11db913eebb4ba3
BLAKE2b-256 9d42e5780f922e521346015523ba0993df0c14680c240102f694819f40dafb20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.12.0-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 331919c963f58df9a97bc0a71fed79b3ec89cb6c6846c24b24c27f1f462ebfbe
MD5 97d92263315dd79de7474c1cf2133b92
BLAKE2b-256 3377b81164106c76ed28942dc2e5aea20e0896287595e1dfe211b231f6272241

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.12.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ea42de63e6e50858578a3f42efa9dda832e1ce40b368482b400c703e4fbdb856
MD5 e625c093cd11c4c27c9e6c8584a9f9ef
BLAKE2b-256 e93cc117cca4cfa71aef1102adbfffdb4074c7b9920afcf8764159f5a4957f7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.12.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc877b1597ae1bf6b85a725720ce1828e3ba29be98df221efb5adbb927891553
MD5 3914df2d320d0e2ca7268362bfecfce2
BLAKE2b-256 2fb7867dbec8db2e90b64d1ddb6362d9bc1f1664a4b7dbadcb86b320888e8396

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.12.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 11b28607a6d71fe697d335343ecd9201d6aed14f775002acca690f1d2a58f11b
MD5 321d87c1a624e460399a784a3ce0d664
BLAKE2b-256 e1120eb5545b1c465d8686ddbf6044e2f8d9c5acca61de82e5eb5cfbf64a5699

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.12.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 9a88d139504b269e77a3bc138a01914e42e9e0d218261e1caad40d00029dabe6
MD5 573cd87523cbb7e7a160d855837ea442
BLAKE2b-256 c38f3ed52c67029407084112fb223a7ff02d41596005d9c9e81af1139463d79c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.12.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2276c781ee6f6beeb5b6d5153a352b6d4dc25c072e8f976a774b9b1c20e08c89
MD5 8c9c740f0fdd4824818c63e0dd12bb5f
BLAKE2b-256 d96b2aeb6a480049af81fe1b100f1c0a2e508f21a275ad62e552da365792905a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.12.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ae427926482599ae710c4dcfd5db03ef6f2781e340064f6a7e539c1444888a1d
MD5 b8aa2ab43b8c0079bdd87e39bd65b051
BLAKE2b-256 381c1284fe7293e3d6e444d09e9de4ce94b9bb6393f4fa54fed256207fa700e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.12.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ad6a5375ecc55952893c4f19b508b90bffe97ad17ae7fd0232d0fb305bceb593
MD5 44703de11112ea440ffc2bab66d68531
BLAKE2b-256 7d2f70af1b4259885932f031eb98bb04b68405887bd3d3d55edbec3ca25f9d80

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