Benchmark

使用沒有功能的 SLURM

  • January 27, 2016

假設我的超級電腦具有以下具有包含功能的節點列表:

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 來建構您的列表。

引用自:https://unix.stackexchange.com/questions/177599