Benchmark
使用沒有功能的 SLURM
假設我的超級電腦具有以下具有包含功能的節點列表:
NODELIST FEATURES NodeA (none) NodeB specialfeature
我正在嘗試使用或不使用該
specialfeature
功能對性能進行基準測試。使用來衡量執行的性能specialfeature
很容易。我只是打電話sbatch --constraint="specialfeature" mybenchmarktest.exe
以上確保我的執行發生在包含該
specialfeature
功能的節點(即節點 B)上。但是,如果我想在沒有遇到問題的情況下執行基準測試specialfeature
。打電話sbatch mybenchmarktest.exe
意味著 SLURM 可能會在 NodeA 或 NodeB 上執行我的任務。這意味著我的基準測試可能無法衡量我想要的。
**有沒有辦法確保程序在沒有功能的情況下執行?**我正在想像一個類似的電話:
sbatch --contraint="!specialfeature" mybenchmarktest.exe
注意:在這個微不足道的情況下,我知道我可以請求它在 NodeA(沒有該功能的節點)上執行,但我正在尋找一種更通用的方法來告訴 SLURM“不要使用這樣那樣”。
目前(從 15.8 版開始)無法以這種方式否定功能。唯一的方法是通過以下方式定義互補特徵:
NODELIST FEATURES NodeA nospecialfeature NodeB specialfeature
然後用 送出一份工作,然後用 送出一份
--constraint=specialfeatures
工作--constraint=nospecialfeature
。如果您無法更改配置,另一種選擇是手動建構允許主機列表,其結構如下:
sinfo -h --format "%N %f" | grep specialfeature |\ awk '{print $1}' | paste -d, -s | xargs scontrol show hostlist
並將結果與
--nodelist
選項一起使用。隨意組合grep
’s 來建構您的列表。