อินเทอร์เฟซผู้ใช้ที่ใช้ข้อความ (TUI) สำหรับ Slurm Workload Manager ซึ่งเป็นวิธีที่สะดวกในการจัดการงานคลัสเตอร์ของคุณ
turm
ยอมรับตัวเลือกเดียวกันกับ squeue
(ดู Man Squeue) ใช้ turm --help
เพื่อรับรายการตัวเลือกที่มีอยู่ทั้งหมด
turm
มีอยู่ใน pypi และ cute.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
เหตุผลนี้คือ squeue
มีอยู่ในกลุ่ม Slurm ทั้งหมดและการเรียกใช้มันเป็นระยะไม่แพงเกินไปสำหรับตัวควบคุม Slurm (โดยเฉพาะอย่างยิ่งเมื่อผู้ใช้กรอง) ในทางตรงกันข้าม C API ของ Slurm นั้นไม่เสถียรและ REST API ของ Slurm นั้นไม่สามารถใช้ได้เสมอไปและอาจมีค่าใช้จ่ายสูงสำหรับคอนโทรลเลอร์ Slurm ข้อดีอีกประการหนึ่งคือเราได้รับการสนับสนุนฟรีสำหรับธง CLI ที่แน่นอนเช่น squeue
ซึ่งผู้ใช้คุ้นเคยกับการกรองและเรียงลำดับงาน
tl; dr: turm
≈ watch -n2 squeue
+ tail -f slurm-log.out
ได้รับการดูแลเป็นพิเศษเพื่อให้แน่ใจว่า turm
นั้นมีน้ำหนักเบาที่สุดเท่าที่จะเป็นไปได้ในแง่ของผลกระทบต่อคอนโทรลเลอร์ Slurm และการดำเนินงาน I/O ไฟล์ คิวงานจะได้รับการอัปเดตทุกสองวินาทีโดยเรียกใช้ squeue
เมื่อมีงานจำนวนมากในคิวขอแนะนำให้ระบุผู้ใช้รายเดียวเพื่อลดการโหลดบนคอนโทรลเลอร์ Slurm (ดู SQUEUE -USER) turm
อัปเดตไฟล์บันทึกที่แสดงในปัจจุบันในทุกการแจ้งเตือนการแก้ไข Inotify และจะอ่านเฉพาะบรรทัดที่ต่อท้ายใหม่หลังจากการอ่านครั้งแรก อย่างไรก็ตามเนื่องจากการแจ้งเตือนแบบ inotify ไม่ได้รับการสนับสนุนสำหรับระบบไฟล์ระยะไกลเช่น NFS turm
จึงโพลไฟล์สำหรับไบต์ต่อท้ายใหม่ทุกสองวินาที