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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ i686

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

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.17+ s390x

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

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

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

Uploaded Python 3manylinux: glibc 2.17+ i686

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

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

turm-0.10.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.10.0-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for turm-0.10.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0bf90e66eeaaed07eb92b0b472fcd0fd73cb26215305d560fa5d9ff0ac7dec43
MD5 660ff44262f6c0135d9b52e13de5311e
BLAKE2b-256 514b2ca7a49794dc988011b3d223b3f2e16970ad94665a1a7bec97d82bf7dd6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.10.0-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 6ef5feb4e64401d3d80e8cddebb31e9f8476b594dbdf531e64dbfcb6302f7a94
MD5 04bb05fca4c455678b308303f1701085
BLAKE2b-256 d917d75598ac4bfec78b0a1070e70e5b36ba34206041482832f80de6a771128b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.10.0-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 77ff6ef3f3803fc3d4ab4675767cc41061efd1f2010f43e5778e1a7614afcc0b
MD5 0dbffe6e810954faf10508f60c42cc64
BLAKE2b-256 4bfe0e0b199eea51ffc1340ce5e6cd30b44211485b4603410cf0a063283a4ebd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.10.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 47a3d5defd6cb1c1d43598aae4608e9095754705c2231dd3af946ea6a2abfe64
MD5 17ba355b1d73f86b9245656d18b34e9e
BLAKE2b-256 fdf3e81a79d9d9ca7930dfea898a1087e51f2d4977501fef89cec5fdf36dd347

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b28f33bdf80c23a439782ed78e5d3675fbd191b5a0e169288d6deef4e006101a
MD5 7345ec87b47d23afed1627970234290e
BLAKE2b-256 63246d1c8b76603af4e5a7d17ff8b90f93934f90dd18ecd62698a3da2f7761df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.10.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 355d27a5c2e56359bbfc29ebe59c142d5c895126414bae66df26de776dc3e65a
MD5 cc62264cc16ba0f50a6371ed330dd41c
BLAKE2b-256 4483e42a24a78734a6350bb6c74af612625935a6ef26446dc4ba37307fe75718

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.10.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5df68cab56ec47f189ae12a2c1efe45f39e4cce74ccb67f54ce3ca74b99e86eb
MD5 8ac65569bd9a15a8c6b175bb7e8595dd
BLAKE2b-256 b9161145710260183c271ac9ce9a4de9ea091ab7e452d64d83a786595a25c08e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.10.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c3872695189b4ae2710cb523651c83f0e4e7eaee68668846315efe824fe5589b
MD5 7ef7e5cc5a040f942f44ed5760139795
BLAKE2b-256 1a02002a19266b8fa96ec65b405875c78f2049297560f29e0bc131bbce7d4bfb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.10.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 185b927c3d843ad76941206a8440debac540a33938abd46ad881126c47f7d358
MD5 93c5eaa8681ae8c45dc72b39207b54e2
BLAKE2b-256 1326ba03c4dd15282ebfe6ad97c34c20a555ccd2a8d06d07a876a2ed2c08ff8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for turm-0.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 16bc609464049a64d66c3a7b2e5ae627672b6f14ec2d64be9af16a760be8a20d
MD5 623d71a20ba23f073b48adcde52583b6
BLAKE2b-256 d9aed6308047322df0a9863d2f09fbb5af648b55f42f40eff005cbfc37f61219

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