turm
v0.7.3
SLURM Workload Manager的基于文本的用户界面(TUI),它提供了一种管理集群作业的方便方法。
turm
接受与squeue
相同的选择(请参阅Man Squeue)。使用turm --help
获取所有可用选项的列表。
turm
可在PYPI和Crates.io上使用:
# With pip.
pip install turm
# With pipx.
pipx install turm
# With uv.
uv tool 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/
发布页面还包含用于Linux的预编译二进制文件。
在您的.bashrc
中,添加以下行:
eval " $( turm completion bash ) "
在您的.zshrc
中,添加以下行:
eval " $( turm completion zsh ) "
在您的config.fish
或单独的completions/turm.fish
文件中,添加以下行:
turm completion fish | source
turm
通过解析squeue
的输出来获取有关工作的信息。这样做的原因是所有slurm簇都可以使用squeue
,并且对于Slurm Controller(尤其是用户过滤时),定期运行它并不太贵。相比之下,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)的插图通知,因此turm
还会每两秒钟对新附加字节的文件进行轮询。