Skip to main content

A TUI for the Slurm Workload Manager.

Project description

turm

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 pip.
pip install turm

# With pipx.
pipx install turm

# With cargo.
cargo install turm

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.

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

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

Uploaded Python 3 musllinux: musl 1.2+ x86-64

turm-0.7.3-py3-none-musllinux_1_2_i686.whl (1.6 MB view details)

Uploaded Python 3 musllinux: musl 1.2+ i686

turm-0.7.3-py3-none-musllinux_1_2_armv7l.whl (1.5 MB view details)

Uploaded Python 3 musllinux: musl 1.2+ ARMv7l

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

Uploaded Python 3 musllinux: musl 1.2+ ARM64

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

Uploaded Python 3 manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3 manylinux: glibc 2.17+ s390x

turm-0.7.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.7 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ppc64le

turm-0.7.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (1.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ i686

turm-0.7.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.5 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

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

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

File details

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

File metadata

File hashes

Hashes for turm-0.7.3-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 46673fcb1330b1d9c419ae0deeb8e6233ad2b870cb3c77d127f0e53b8c97e77a
MD5 e331e54e754b9960697575107ba4ae28
BLAKE2b-256 71686cdd51aac9b4fa625d8cc7e4f798fecf641eb801de5b95af5475a84d080a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.7.3-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 ba41cfae72d92b8524e89409dde473090b093ca8b7d91c56cecbf07c7aadff0f
MD5 8f4481b6ed46b37757da6cb215a8372a
BLAKE2b-256 62e4614e80f608d04abcbb1014424416122ea9fe0e30ea9279bebaf4f39802ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.7.3-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 08b0fcd355b42074ea7b357822ba741ede62de6b40165b0df18c687f3bdfa957
MD5 3861ee0352d08a388d580a7c365ba97e
BLAKE2b-256 75026933b4448b76f5abc866c9230aefd1f7f1bb2bef4cf5b9d0053917188e42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.7.3-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 150e341d8c07f762c231db7f2d92e442a059343d07e349fe07ea03648337c353
MD5 5dac4255ad61ad3dffd6d4389937ebae
BLAKE2b-256 323b5a278b940ace89902b22e3ff30609ddd72bcdf30a47a93f62d107748ecbc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.7.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 56559e2265b6a927ea0fa5109e4f2db649d41eeb12a965c569c81b4fbaf1477f
MD5 5231fbba73cb85327c0b53b453e11d73
BLAKE2b-256 e893e7eeb6dc748266fbcd0b5df86ff0bd71284aa8042f232075a372f5b0c159

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.7.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0b88c7cd5a5a59215dffddd0066447fdfea8d78f220eb793c4a1409c16421c2f
MD5 3ef297129c50d7beb96dee58d8cdebf3
BLAKE2b-256 182fae4c1f1f78d75388fabd929bdfb431588f52b9d12e335f1f684c8094841b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.7.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 87ae98205dc2c82e735a9024ab13a134cfc2e05660d1c4830a1a83aafde5ecf5
MD5 f3c675c3d8309ebce269bb05df7d6ae2
BLAKE2b-256 caf78b4b4ac973ec609abaa4ca7185324942cb33fc7876da886ca284a5ece2fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.7.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 48ea2869066360507df2e81a344dfaa96ac92b983fd0c0e6865951b8fdbd0df0
MD5 4f5469dc257c119d845d106c4b4ca241
BLAKE2b-256 a606aa2a0b309d25cecef16042dda52bc83452e898013cc15e5b8026990cba30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.7.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 30f3f8fe9a129a798ab99519ab64be1e141c547aa8194864a12dc5b79d9ac6d1
MD5 3588fc92388ab24482b3e761c1524182
BLAKE2b-256 9baa9f853b9e51aa5ae2ed3dc1dc4c64890d74d646d4aed0fa16e19beb2af7c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.7.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7c96e62f738850e0be0a81443df4ca67b9e2dd2381802af3dcfb2e0a2fe866e1
MD5 8ee8eeb1bfb3e297234fdd6a55dda50a
BLAKE2b-256 25eb2123cb828397dc0ff357e3fda8ffb9d2671e75efa80787e07919310cea1d

See more details on using hashes here.

Supported by

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