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日 |
#140 在 GUI
每月422次下载
51KB
1K SLoC
turm
turm是一个基于文本的用户界面(TUI),用于Slurm工作负载管理器,它提供了一种方便管理集群作业的方法。
turm
接受与squeue
相同的选项(见man squeue)。使用turm --help
获取所有可用选项的列表。
安装
# 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: turm
≈ watch -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