私のスーパーコンピュータに次の機能を含むNODELISTがあるとしましょう。
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に「これらの機能を使用しないでください」と知らせるより一般的な方法を探しています。 」。
ベストアンサー1
現在(バージョン15.8に基づく)この方法で機能を拒否する方法はありません。唯一の方法は、次の方法で補足機能を定義することです。
NODELIST FEATURES
NodeA nospecialfeature
NodeB specialfeature
次に、を使用して1つのジョブを送信し、次にを使用して別--constraint=specialfeatures
のジョブを送信します--constraint=nospecialfeature
。
構成を変更できない場合、別のオプションは、次の構造を使用して許可されているホストのリストを手動で作成することです。
sinfo -h --format "%N %f" | grep specialfeature |\
awk '{print $1}' | paste -d, -s | xargs scontrol show hostlist
--nodelist
オプションで結果を使用してください。自由に組み合わせてgrep
リストを作成します。