5个不稳定版本

0.7.3 2024年7月28日
0.7.2 2024年7月28日
0.6.0 2023年9月23日
0.4.0 2023年4月24日

#140GUI

Download history 9/week @ 2024-07-11 4/week @ 2024-07-18 349/week @ 2024-07-25 66/week @ 2024-08-01

每月422次下载

MIT许可证

51KB
1K SLoC

turm

turm是一个基于文本的用户界面(TUI),用于Slurm工作负载管理器,它提供了一种方便管理集群作业的方法。

turm demo

turm接受与squeue相同的选项(见man squeue)。使用turm --help获取所有可用选项的列表。

安装

turm可在PyPIcrates.io上使用

# With pip.
pip install turm

# With pipx.
pipx install turm

# With cargo.
cargo install turm

发布页面也包含Linux的预编译二进制文件

Shell自动完成(可选)

Bash

在您的.bashrc中,添加以下行

eval "$(turm completion bash)"

Zsh

在您的.zshrc中,添加以下行

eval "$(turm completion zsh)"

Fish

在您的config.fish或单独的completions/turm.fish文件中,添加以下行

turm completion fish | source

工作原理

turm通过解析squeue的输出来获取作业信息。这是因为squeue在所有Slurm集群上都是可用的,并且定期运行它对Slurm控制器来说并不太昂贵(尤其是当按用户过滤时)。相比之下,Slurm的C API是不稳定的,而Slurm的REST API并不总是可用,并且对Slurm控制器来说可能是昂贵的。另一个优点是,我们获得了对与squeue相同的CLI标志的支持,这是用户已经熟悉的,用于过滤和排序作业。

资源使用情况

TL;DR: turmwatch -n2 squeue + tail -f slurm-log.out

为了确保 turm 对 Slurm 控制器和其文件 I/O 操作的影响尽可能轻量,已经特别留意。通过运行 squeue,每两秒钟更新一次作业队列。当队列中有许多作业时,建议指定单个用户以减少对 Slurm 控制器的负载(见 squeue --user)。turm 在每次 inotify 修改通知时更新当前显示的日志文件,并且它只在初始读取后读取新追加的行。然而,由于不支持远程文件系统(如 NFS)的 inotify 通知,因此 turm 每 two 秒钟也会轮询文件以查找新追加的字节。

依赖项

~10–19MB
~244K SLoC