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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ i686

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

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ s390x

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

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

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

Uploaded Python 3manylinux: glibc 2.17+ i686

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

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

turm-0.13.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.13.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for turm-0.13.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 410c6dd1bd22632b0488f341aceb93b6c83782e347e7a53103f652f399338213
MD5 b9a685b8dc69a5b987910451df28dd10
BLAKE2b-256 7ce6b5bd855c7b2d615a5907c1711e934d169e557e97ce5e9a452039376fa0b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.13.0-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c73bd552160a75a1101bc0f100643dc40f20f52fe827464b5bc9dd68af7c98e1
MD5 676525e14682b4614e9df491b48911df
BLAKE2b-256 4c268853b005b29e04c93e1a4cbd169e8f9f2edd3445ba374c1b7d2edea3435d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.13.0-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 85f05a007cead5606b8f3aefc1d77c91e8bd3e80785b037649159e7d59d3f712
MD5 3c9d19fa7802386daf5997382393649f
BLAKE2b-256 9acce65aae4a63d66402b05e52ae2244b8ade2e2b34ab2cd7ba7924e7cde3f86

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.13.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d4fd05409ff116984f135f532c8d11e39c2310b08fc2697a74c452d40e44cb3c
MD5 8d2839a8a5827d24c564821cf5e0620a
BLAKE2b-256 4571ca6e045c62de7d0660b255036d7bb16be678ec902e102abc3240b902b5c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.13.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b98df06a667735ae00e58c0295d203272a654e1a9fb99c5cce228ef6c2115ad
MD5 515d4644272a8cc02860caae1a4ae043
BLAKE2b-256 2412ba768bb05a840cbd7e6026ffdb3c108b46d870cc0f6b8425d4815e9a2257

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.13.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a667e27b51a202bc2f2738782ae5e7a85c612f88e7f0e8c6ccbafcfce2c451b3
MD5 d5de116cf010cce13dbaa64cccd0a7bc
BLAKE2b-256 19b57cf51d3042fb86406c5052cd83786e8563811c78798e21fcf9c343c9f13b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.13.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 43a22415f02a339e64f36c6408546d847e9d09c8217c5a71aaf4ef94026e63e9
MD5 d22ac3a5e5ca5206eb4b84a3b29ec20f
BLAKE2b-256 f6a721ac8b85cc9b87a91dbdc79003be1f9fab3f885f47681bbc768c4d292dde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.13.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 adf8fd89e3c8aa46819b258aa11e2ee96ee448cfc773ff6d2f1809f001c88737
MD5 c51058fa5b17f8d603e6c33f27b88352
BLAKE2b-256 79444abd71c6048ba9cf757752f0452f4371d442a21703faf3cf65be2806d2f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.13.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e3c2c0f205c7f670a45a83e14177e7818aa4b1fc2128d131d874baba87d238de
MD5 53d53a6a15789e83fc50faadd3d014c4
BLAKE2b-256 893334755c8759bb9ebd4aff95db6c4b530d34c49dc5f469c2e7555f73f75636

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.13.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8db6acacf8a10c9911ca08a959c017431e2519d66f2f0d443d5fceed70649583
MD5 ea7552b45faa2ce8c2c1f162d0645509
BLAKE2b-256 f5481aa86b182d1aa7edf56157ec6ff87fcfd733db23560e04df81c067eadc65

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