これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド srun です。
プログラム:
NAME
srun - 並列ジョブを実行する
SYNOPSIS
走る [OPTIONS...] 実行ファイル [引数...]
DESCRIPTION
Slurm が管理するクラスターで並列ジョブを実行します。 必要に応じて、srun は最初に
並列ジョブを実行するリソース割り当て。
次の文書では、さまざまなオプションが割り当てに及ぼす影響について説明しています。
CPU をジョブとタスクに接続します。
http://slurm.schedmd.com/cpu_management.html
OPTIONS
--アクセルバインド=<オプション>
タイプ gpu、mic、および nic の汎用リソースにタスクをバインドする方法を制御します。
複数のオプションを指定できます。 サポートされているオプションは次のとおりです。
g 割り当てられた CPU に最も近い GPU に各タスクをバインドします。
m 割り当てられた CPU に最も近い MIC に各タスクをバインドします。
n 割り当てられた CPU に最も近い NIC に各タスクをバインドします。
v 詳細モード。 タスクが GPU および NIC デバイスにどのようにバインドされているかをログに記録します。
-A, - アカウント=<アカウント>
このジョブで使用されるリソースを指定されたアカウントに請求します。 の アカウント あります
任意の文字列。 アカウント名は、ジョブの送信後に、
コントロール
--acctg-freq
ジョブアカウンティングとプロファイリングのサンプリング間隔を定義します。 これは次の目的で使用できます。
上書きする ジョブの収集頻度 Slurm の設定ファイル内のパラメータ、
slurm.conf. サポートされている形式は次のとおりです。
--acctg-freq==
コラボレー = タスクのサンプリング間隔を指定します
jobacct_gather プラグインまたはプロファイリング タイプのサンプリング間隔
acct_gather_profile プラグインによる。 複数のカンマ区切り
= 間隔を指定することもできます。 サポートされているデータ型
以下の通り:
タスク=
コラボレー タスクのサンプリング間隔(秒)です。
jobacct_gather プラグインと、
acct_gather_profile プラグイン。 注: この周波数は次の目的で使用されます。
メモリ使用量を監視します。 メモリ制限が適用される場合、最高のメモリ制限が適用されます。
ユーザーがリクエストできる頻度は、
slurm.conf ファイル。 オフ(=0)にすることもできません。
エネルギー=
コラボレー エネルギーのサンプリング間隔 (秒)
acct_gather_energy プラグインを使用したプロファイリング
ネットワーク=
コラボレー は秒単位のサンプリング間隔です。
acct_gather_infiniband プラグインを使用した infiniband プロファイリング。
ファイルシステム=
コラボレー は秒単位のサンプリング間隔です。
acct_gather_filesystem プラグインを使用したファイルシステムのプロファイリング。
タスクのサンプリング間隔のデフォルト値
は 30 です。他のすべての間隔のデフォルト値は 0 です。間隔が 0 の場合、無効になります。
指定されたタイプのサンプリング。 タスクのサンプリング間隔が 0 の場合、アカウンティング
情報はジョブ終了時にのみ収集されます (Slurm による干渉が軽減されます)。
仕事)。
値が小さい (ゼロ以外) とジョブのパフォーマンスに大きな影響を与えますが、値は
30 秒未満のアプリケーションでは、この長さは目立たない可能性があります。
10,000 のタスク。
-B --追加ノード情報=<ソケット[:色[:スレッド]]>
リソースの数とタイプに関する詳細を指定して、リソースの特定の割り当てをリクエストします。
クラスター内の計算リソースの数: ソケットの数 (または物理的なリソース)
ノードあたりのプロセッサ数)、ソケットあたりのコア数、およびコアあたりのスレッド数。 合計金額
要求されているリソースは、すべての条件の結果です。 指定された各値
は最小限とみなされます。 アスタリスク (*) は、次のことを示すプレースホルダーとして使用できます。
そのタイプの利用可能なすべてのリソースが利用されること。 ノードと同様に、
必要に応じて、個別のレベルを個別のオプションで指定することもできます。
--ノードごとのソケット数=<ソケット>
--ソケットあたりのコア数=<色>
-- コアあたりのスレッド数=<スレッド>
タスク/アフィニティ プラグインが有効になっている場合は、この方法で割り当てを指定します
また、デフォルトを設定します --cpu_bind のオプション スレッド もし -B オプションで指定するのは、
スレッド数、それ以外の場合のオプション 色 コア数が指定されている場合、それ以外の場合
のオプション ソケット. SelectType が select/cons_res に設定されている場合は、
このための CR_Core、CR_Core_Memory、CR_Socket、または CR_Socket_Memory のパラメーター
尊重されるオプション。 このオプションは、BlueGene システムではサポートされていません
(select/bluegene プラグインが構成されています)。 指定しない場合、scontrol show ジョブ
「ReqS:C:T=*:*:*」と表示されます。
--bb=<スペック>
バーストバッファ仕様。 仕様の形式はシステムに依存します。
また見てください --bbf.
--bbf=<file_name>
バースト バッファ仕様を含むファイルのパス。 仕様書の形式
システムに依存します。 こちらもご覧ください --bb.
--bキャスト[=宛先パス>]
割り当てられた計算ノードに実行可能ファイルをコピーします。 ファイル名を指定した場合はコピー
実行可能ファイルを指定された宛先ファイル パスにコピーします。 パスが指定されていない場合は、
ファイルを「slurm_bcast_」という名前のファイルにコピーします. 「現在では
働く。 たとえば、「srun --bcast=/tmp/mine -N3 a.out」はファイルをコピーします
現在のディレクトリから「a.out」を XNUMX つのそれぞれのファイル「/tmp/mine」に
計算ノードを割り当て、そのファイルを実行します。
- 始める=<時間>
指定された時刻まで、このジョブの開始を延期します。 それはの時間を受け入れます
フォーム HH:MM:SS 特定の時刻にジョブを実行します (秒はオプションです)。 (もしも
その時刻がすでに過ぎている場合は、翌日と見なされます。)指定することもできます。
真夜中, 正午, ほかに (午後 3 時) または ティータイム (午後 4 時) 時間帯を指定できます
接尾辞 AM or PM 朝や夕方のランニングに。 あなたも言うことができます
フォームの日付を指定して、ジョブが実行される日 マディ or MM / DD / YY
YYYY-MM-DD。 次の形式を使用して日付と時刻を結合します
YYYY-MM-DD[THH:MM[:SS]]。 次のような時間を指定することもできます 今 + カウント 時間単位ここで、
時間単位は次のとおりです 秒 (デフォルト)、 分, 時, 日または 週間 そして、次のことができます
Slurm にキーワードを使用して今日ジョブを実行するように指示します 今日 そして明日そのジョブを実行するために
キーワードで 明日。 値は、ジョブの送信後に、
コントロール 指図。 例えば:
--開始=16:00
--begin=今+1時間
--begin=now+60 (デフォルトでは秒)
--begin=2010-01-20T12:34:00
日付/時刻指定に関する注意事項:
- HH:MM:SS 時間指定の「秒」フィールドは許可されていますが、
このコードでは、Slurm スケジューラのポーリング時間が十分に正確ではないことに注意してください。
正確な秒でのジョブのディスパッチを保証します。 その仕事の対象となるのは、
指定された時間の後の次のポーリングから開始します。 正確なポーリング間隔
Slurm スケジューラによって異なります (たとえば、デフォルトの sched/builtin では 60 秒)。
- 時刻 (HH:MM:SS) が指定されていない場合、デフォルトは (00:00:00) です。
- 日付が年なしで指定されている場合 (MM/DD など)、現在の年は次のようになります。
MM/DD と HH:MM:SS の組み合わせが既に合格していない限り、仮定されます。
この場合は翌年が使用されます。
-チェックポイント=<時間>
ジョブ ステップのチェックポイントを作成する間隔を指定します。 デフォルトでは、
ジョブ ステップにはチェックポイントは作成されません。 受け入れられる時刻形式には次のものがあります。
"分"、"分:秒"、"時:分:秒"、"日-時間"、
「日-時間:分」および「日-時間:分:秒」。
--チェックポイントディレクトリ=<ディレクトリにジョブを開始します。>
ジョブまたはジョブ ステップのチェックポイントが置かれるディレクトリを指定します
書かれています (checkpoint/blcr および checkpoint/xlch プラグインでのみ使用されます)。 の
デフォルト値は現在の作業ディレクトリです。 チェックポイント ファイルは
形状 " .ckpt" (ジョブの場合)、および " 。 ジョブ ステップの場合は .ckpt」。
- コメント=<string>
恣意的なコメント。
-C, --制約=<リスト>
ノードが持つことができるのは、 機能を使用 Slurm 管理者によって割り当てられます。 ユーザーは次のことができます
これらのうちどれかを指定してください 機能を使用 制約を使用する仕事で必要とされる
オプション。 ジョブの制約に一致する機能を持つノードのみが、
要求を満たします。 AND、OR、マッチングを使用して複数の制約を指定できます。
または、リソース数など。サポートされている制約オプションは次のとおりです。
単発講座 お名前
指定された機能を持つノードのみが使用されます。 例えば、
--constraint="インテル"
Node ワンランク上の
リクエストでは、ある機能で必要なノードの数を次のように指定できます。
機能名の後にアスタリスクとカウントを追加します。 例えば
"--ノード=16 --constraint=グラフィックス*4 ... " ジョブに 16 が必要であることを示します
ノードのうち少なくとも XNUMX つにはこの機能が必要であること
「グラフィック」。
そして 指定されたすべての機能を持つノードのみが使用される場合。 アンパサンドは
AND 演算子に使用されます。 例えば、 --constraint="インテル&GPU"
OR 指定された機能の少なくとも XNUMX つを持つノードのみが使用される場合。 の
垂直バーは OR 演算子に使用されます。 例えば、
--constraint="インテル|amd"
マッチング OR
可能なオプションのセットのうち XNUMX つだけを割り当てられたすべてのオプションに対して使用する必要がある場合
ノードを選択し、OR 演算子を使用してオプションを四角形で囲みます。
括弧。 例えば: "--constraint=[ラック1|ラック2|ラック3|ラック4]" かもしれません
すべてのノードを単一のラックに割り当てる必要があることを指定するために使用されます。
クラスタですが、これら XNUMX つのラックのいずれかを使用できます。
複数 カウント
複数のリソースの特定の数は、AND を使用して指定できます。
演算子を使用し、オプションを角括弧で囲みます。 例えば:
"--constraint=[ラック1*2&ラック2*4]" XNUMX つのノードを指定するために使用される可能性があります
「rack1」の機能を持つノードから割り当てる必要があり、XNUMX つのノードが必要です。
機能「rack2」を持つノードから割り当てられます。
警告: salloc または sbatch 内から srun を実行すると、
制約値には、単一の機能名のみを含めることができます。 他にはない
演算子は現在、ジョブ ステップでサポートされています。
-隣接
設定されている場合、割り当てられたノードは連続したセットを形成する必要があります。 賞を受賞していない
トポロジ/ツリー or トポロジー/3d_torus プラグイン。どちらもノードを変更できます
注文。 ジョブ ステップの割り当てが認められません。
--ソケットあたりのコア数=<色>
ノードの選択を、少なくとも指定された数のコアを持つノードに制限します。
ソケット。 以下の追加情報を参照してください。 -B タスク/アフィニティプラグインの場合の上記のオプション
有効になっています。
--cpu_bind=[{静かな、冗長な},]type
タスクを CPU にバインドします。 task/affinity または task/cgroup プラグインが
有効にします。 構成パラメーター TaskPluginParam これらのオプションをオーバーライドできます。
たとえば、 TaskPluginParam コアにバインドするように構成されている場合、ジョブは実行されません
タスクをソケットにバインドできます。 注: Slurm に常に報告させるには、
シェルで実行されるすべてのコマンドに対して CPU バインドを選択すると、詳細を有効にできます
SLURM_CPU_BIND 環境変数の値を「verbose」に設定することにより、モードを変更します。
次の情報環境変数は、次の場合に設定されます。 --cpu_bind である
使用します。
SLURM_CPU_BIND_VERBOSE
SLURM_CPU_BIND_TYPE
SLURM_CPU_BIND_LIST
ジョブの設定方法については、 ENVIRONMENT 変数 の詳細な説明については、セクションを参照してください。
個々の SLURM_CPU_BIND 変数。 これらの変数は、
task/affinity プラグインが構成されています。
使用時 --cpus-per-タスク マルチスレッド タスクを実行するには、CPU バインディングが
プロセスの親から継承されます。 これは、マルチスレッド タスクが
すべてのスレッドを持つことを避けるために、CPU バインディング自体を指定またはクリアする必要があります
マルチスレッド タスクの親と同じマスク/CPU を使用します。 あるいは脂肪
マスク (許可された複数の CPU を指定するマスク) をタスクに使用できます。
マルチスレッドタスクに複数のCPUを提供するため。
デフォルトでは、ジョブ ステップはジョブに割り当てられたすべての CPU にアクセスできます。 確実にするために
個別の CPU が各ジョブ ステップに割り当てられるようにするには、 - エクスクルーシブ オプションを選択します。
ジョブ ステップには、ノードごとに異なる数の CPU を割り当てることも、別の数の CPU を割り当てることもできます。
割り当てられた CPU がロケーション XNUMX から開始されていません。 したがって、オプションのXNUMXつ
タスクバインディングを自動的に生成することをお勧めします。 明示的に指定されたマスク
またはバインドは、ジョブ ステップが使用可能なすべての割り当てられている場合にのみ受け入れられます。
ノード上の CPU。
タスクを NUMA ローカリティ ドメインにバインドするということは、タスクを一連の CPU にバインドすることを意味します。
NUMA ローカリティ ドメインまたは「NUMA ノード」に属します。 NUMA ローカリティ ドメインの場合
オプションが NUMA をサポートしていないシステムで使用されている場合、各ソケットは
地域ドメイン。
自動応答オプション バインディング
タスク/アフィニティが有効な場合にのみ適用されます。 ジョブステップの割り当て
に等しい数のソケット、コア、またはスレッドの割り当てが含まれます
タスク数に cpus-per-task を掛けると、タスクはデフォルトで次のようになります。
適切なリソースにバインドされます (自動バインド)。 このモードを無効にする
「--cpu_bind=none」を明示的に設定することで動作します。 使用する
TaskPluginParam=autobind=[threads|cores|sockets] をデフォルトの CPU に設定する
「自動バインディング」で一致が見つからない場合のバインディング。
サポートされているオプションは次のとおりです。
静かな]
タスクの実行前に静かにバインドする (デフォルト)
詳細
タスクの実行前にバインドを詳細に報告する
なし] タスクを CPU にバインドしない (自動バインドが適用されていない場合のデフォルト)
ランク タスクのランクによって自動的にバインドします。 それぞれの番号が最も小さいタスク
ノードはソケット (またはコアまたはスレッド) ゼロなどにバインドされています。サポートされていません
ノード全体がジョブに割り当てられていない限り。
map_cpu:
指定されたタスクに CPU ID をマッピングしてバインドします。 は
、 、... . ノードのマッピングが指定されている
同一のマッピングがすべてのノードのタスクに適用されます (つまり、
各ノードの最小のタスク ID は、指定された最初の CPU ID にマップされます
リストなど)。 CPU ID は、次の場合を除いて XNUMX 進数として解釈されます。
'0x' で始まる場合、次のように解釈されます。
XNUMX 進値。 ノード全体が
仕事に割り当てられます。
mask_cpu:
指定されたタスクに CPU マスクを設定してバインドします。 は
、 、... . マッピングはノードに対して指定され、
すべてのノードのタスクに同一のマッピングが適用されます (つまり、
各ノードの最小タスク ID は、で指定された最初のマスクにマップされます。
リストなど)。 CPUマスクは 常に XNUMX 進数として解釈されます
値ですが、オプションの「0x」を前に付けることができます。 サポートされていません
ノード全体がジョブに割り当てられていない限り。
ランク_ldom
ランクによって NUMA ローカリティ ドメインにバインドします。 次の場合を除き、サポートされません。
ノード全体がジョブに割り当てられます。
map_ldom:
指定されたタスクに NUMA ローカリティ ドメイン ID をマッピングしてバインドします。
は、 、... . ローカリティ ドメイン ID は次のとおりです。
'0x' が前に付いていない限り、XNUMX 進数として解釈されます。
その場合、それらは XNUMX 進値として解釈されます。 サポートされていません
ノード全体がジョブに割り当てられていない限り。
mask_ldom:
指定されたタスクに NUMA ローカリティ ドメイン マスクを設定してバインドする
どこは、 、... . NUMA 地域ドメイン
マスクは 常に XNUMX 進値として解釈されますが、
オプションの「0x」が前に付いています。 ノード全体でない限り、サポートされていません
ジョブに割り当てられます。
ソケット
タスクをソケットにバインドするマスクを自動的に生成します。 CPUのみ
ジョブに割り当てられたソケットが使用されます。 もしも
タスクの数は、割り当てられたソケットの数とは異なります。
最適な結合が得られない可能性があります。
色 タスクをコアにバインドするマスクを自動的に生成します。 番号の場合
タスクの数が割り当てられたコアの数と異なるため、結果として生じる可能性があります
次善の結合で。
スレッド
タスクをスレッドにバインドするマスクを自動的に生成します。 番号の場合
タスクの数が割り当てられたスレッドの数と異なるため、結果として生じる可能性があります
次善の結合で。
戸籍 タスクを NUMA ローカリティ ドメインにバインドするマスクを自動的に生成します。
割り当てられたローカリティの数とタスクの数が異なる場合
これにより、次善のバインディングが発生する可能性があります。
ボード タスクをボードにバインドするマスクを自動的に生成します。 番号の場合
タスクの数が割り当てられたボードの数と異なるため、結果として生じる可能性があります
次善の結合で。 このオプションは task/cgroup でサポートされています
プラグインのみ。
助けます cpu_bind のヘルプ メッセージを表示
--cpu 周波数 =<p1[-p2[:p3]]>
この srun コマンドによって開始されたジョブ ステップが要求された時点で実行されるように要求します。
可能な場合は、計算ノードのステップ用に選択された CPU の頻度。
p1 [#### | 低い | 中 | 高い | highm1] 周波数を設定します
scaling_speed を対応する値に設定し、周波数 scaling_governor を次のように設定します。
ユーザースペース。 値の定義については、以下を参照してください。
p1 [保守的 | オンデマンド | パフォーマンス | PowerSave] を設定します。
scaling_governor を対応する値に設定します。 ガバナーはリストセットに含まれている必要があります
slurm.conf オプション CpuFreqGovernors によって。
日時 p2 が存在する場合、p1 は最小スケーリング周波数、p2 は最小スケーリング周波数になります。
最大スケーリング周波数。
p2 [#### | 中 | 高い | highm1] p2 は p1 より大きくなければなりません。
p3 [保守的 | オンデマンド | パフォーマンス | パワーセーブ | ユーザースペース]
ガバナーを対応する値に設定します。
If p3 UserSpace の場合、周波数 scaling_speed は電力またはエネルギーによって設定されます
認識されたスケジュール戦略を p1 と p2 の間の値に設定し、ジョブをその範囲内で実行できるようにします。
サイトのパワー目標。 p1 が次の周波数より高い場合、ジョブは遅延する可能性があります。
ジョブが目標内で実行できるようになります。
現在の周波数が min 未満の場合、min に設定されます。 同様に、現在の場合、
周波数が最大より大きい場合、最大に設定されます。
現在許容される値は次のとおりです。
#### 周波数(キロヘルツ)
ロー 利用可能な最低周波数
ハイ 利用可能な最高周波数
高M1 (高値マイナス XNUMX) は次に高い利用可能な周波数を選択します
M 使用可能な範囲の中央に周波数を設定しようとします
保守派 保守的な CPU ガバナーを使用しようとします
オンデマンド OnDemand CPU ガバナー (デフォルト値) の使用を試みます。
性能 パフォーマンス CPU ガバナーの使用を試みます
パワーセーブ PowerSave CPU ガバナーを使用しようとします
ユーザースペース UserSpace CPU ガバナーを使用しようとします
次の情報環境変数がジョブに設定されています
ステップいつ --cpu 周波数 オプションが要求されます。
SLURM_CPU_FREQ_REQ
この環境変数は、CPU の値を指定するためにも使用できます。
「srun」コマンドの発行時に周波数リクエストが設定されている場合。 の --cpu 周波数
コマンドラインで を実行すると、環境変数の値がオーバーライドされます。 上のフォームは、
環境変数はコマンドラインと同じです。 を参照してください。 ENVIRONMENT
変数 SLURM_CPU_FREQ_REQ 変数については、「SLURM_CPU_FREQ_REQ 変数の説明」セクションを参照してください。
注意: このパラメータは要件ではなくリクエストとして扱われます。 ジョブステップの場合、
ノードは CPU 周波数の設定をサポートしていないか、要求された値が範囲外です
有効な頻度の範囲に達しない場合、エラーがログに記録されますが、ジョブ ステップは
継続が許可されます。
注意: ジョブ ステップの CPU のみの周波数を設定すると、
タスクはそれらの CPU に限定されます。 タスクが限定されている場合 (つまり、
「ConstrainCores」を使用した TaskPlugin=task/affinity または TaskPlugin=task/cgroup
オプション) が設定されていない場合、このパラメータは無視されます。
注意: ステップが完了すると、選択した各 CPU の周波数とガバナーが設定されます。
設定された状態にリセットする Cpu周波数定義 OnDemand CPU のデフォルト値を使用した値
知事。
注意: でジョブを投入する場合 --cpu 周波数 linuxproc を指定したオプション
ProctrackType により、Accounting がポーリングできる前にジョブの実行が速すぎる可能性があります
求人情報については。 その結果、すべての会計情報が存在するわけではありません。
-c, --cpus-per-タスク=<ncpus>
それを要求する ncpus 割り当てられる 以下のために プロセス. これは、ジョブが
最適なパフォーマンスを得るには、タスクごとに複数の CPU が必要です。 の
デフォルトは、プロセスごとに XNUMX つの CPU です。 もしも -c なしで指定されます -n、多くのタスクが
を満たしながら、できるだけノードごとに割り当てます。 -c 制限。 例えば
ノードごとに 8 つの CPU を持つクラスターで、タスクごとに 4 つのノードと 3 つの CPU のジョブ リクエスト
ノードごとに 3 つまたは 6 つの CPU を割り当てることができます (ノードごとに 1 つまたは 2 つのタスク)。
他のジョブによるリソース消費。 このようなジョブは、XNUMX 回以上実行できない場合があります。
タスクは全部で4つ。 このオプションは、割り当てなしでタスクを生成するのにも役立ちます
複数のジョブ ステップを実行する場合のジョブの割り当てからジョブ ステップへのリソース
- エクスクルーシブ オプションを選択します。
警告: ジョブによって解釈が異なる構成とオプションがあります。
このオプションで不整合が発生する可能性があるジョブ ステップ リクエスト。 例えば
走る -c2 -- コアあたりのスレッド数 = 1 うろつく ジョブに XNUMX つのコアを割り当てることができますが、それぞれが
これらのコアのうち XNUMX つのスレッドが含まれている場合、ジョブの割り当てには XNUMX つの CPU が含まれます。 の
ジョブ ステップの割り当てにより、CPU ごとに XNUMX つのスレッドが起動され、合計 XNUMX つのタスクが実行されます。
警告: salloc または sbatch 内から srun を実行すると、
-c が
salloc または sbatch の -c より大きい値。
-d, - 依存=<依存関係リスト>
指定された依存関係が満たされるまで、このジョブの開始を延期します。
完了しました。 このオプションは、ジョブ ステップ (ジョブ内での srun の実行) には適用されません。
既存の salloc または sbatch の割り当て) は、ジョブの割り当てのみに適用されます。依存関係リスト>
の形式ですタイプ:ジョブID[:ジョブID][,タイプ:ジョブID[:ジョブID]]>または
<タイプ:ジョブID[:ジョブID][?タイプ:ジョブID[:ジョブID]]>。 すべての依存関係を満たさなければなりません
「,」区切り文字が使用されている場合。 「?」の場合、依存関係が満たされる可能性があります。 セパレーター
使用されている。 多くのジョブが同じ依存関係を共有でき、これらのジョブは
異なるユーザー。 値は、scontrol を使用してジョブの送信後に変更される可能性があります。
指示。 先行するジョブの終了状態によりジョブの依存関係が失敗すると、
ジョブの場合、前のジョブが再度キューに入れられても、依存ジョブは実行されません。
後続の実行では異なる終了状態になります。
後:ジョブID[:ジョブID...]
このジョブは、指定されたジョブの実行が開始された後に実行を開始できます。
afterany:job_id[:jobid...]
このジョブは、指定されたジョブが終了した後に実行を開始できます。
afternotok:job_id[:jobid...]
このジョブは、指定されたジョブが終了した後に実行を開始できます。
何らかの失敗した状態 (ゼロ以外の終了コード、ノード障害、タイムアウトなど)。
afterok:job_id[:jobid...]
このジョブは、指定されたジョブが正常に完了した後に実行を開始できます。
実行されました (終了コード XNUMX で完了まで実行されました)。
展開:ジョブID
このジョブに割り当てられたリソースは、指定されたジョブを拡張するために使用する必要があります。
拡張するジョブは、同じ QOS (サービス品質) を共有する必要があり、
パーティション。 パーティション内のリソースのギャング スケジュールも機能しません。
。
シングルトン
このジョブは、以前に起動されたジョブが共有された後に実行を開始できます。
同じジョブ名とユーザーが終了しました。
-D, --chdir=<path>
リモートプロセスにchdirを実行させます path 実行を開始する前に。 の
デフォルトは、現在の作業ディレクトリへの chdir です。 走る 処理する。 パス
コマンドを実行するディレクトリへのフル パスまたは相対パスとして指定できます。
実行されます。
-e, - エラー=<モード>
stderr のリダイレクト方法を指定します。 デフォルトでは、インタラクティブ モードでは、 走る
指定されている場合、stderr を stdout と同じファイルにリダイレクトします。 の - エラー
stdout と stderr を別の場所にリダイレクトできるようにするオプションが提供されています。
場所。 見る IO リダイレクション その他のオプションについては、以下をご覧ください。 指定したファイルの場合
既に存在する場合、上書きされます。
-E, --preserve-env
環境変数 SLURM_NNODES および SLURM_NTASKS の現在の値を渡す
を通して 実行ファイルコマンドライン パラメータから計算するのではなく、
- エピローグ=<実行ファイル>
走る will run 実行ファイル ジョブ ステップが完了した直後。 コマンドライン
の引数 実行ファイル ジョブ ステップのコマンドと引数になります。 もしも
実行ファイル 「なし」の場合、srun エピローグは実行されません。 このパラメーターは、
slurm.conf の SrunEpilog パラメータ。 このパラメーターは、から完全に独立しています。
slurm.conf の Epilog パラメータ。
--exclusive[=ユーザー]
このオプションは、ジョブとジョブ ステップの割り当てに対して、わずかに異なる XNUMX つの意味を持ちます。
ジョブの開始に使用される場合、ジョブの割り当ては他のノードとノードを共有できません
実行中のジョブ (または「=user」オプションを使用した他のユーザー)。 デフォルト
共有/排他動作は、システム構成とパーティションの
共有 オプションは、ジョブのオプションよりも優先されます。
このオプションは、ジョブ内で複数のジョブ ステップを開始する場合にも使用できます。
個別のプロセッサを専用にする既存のリソース割り当て
各ジョブステップ。 ジョブ ステップを開始するのに十分なプロセッサが利用できない場合、
それは延期されます。 これは、リソースのメカニズムを提供するものと考えることができます。
その割り当て内のジョブへの管理。
CPU の排他的割り当ては、明示的に呼び出されたジョブ ステップにのみ適用されます。
- エクスクルーシブ オプション。 たとえば、ジョブには XNUMX つのノードと XNUMX つのノードが割り当てられる場合があります。
割り当てられたノードで呼び出される CPU とリモート シェル。 そのシェルが呼び出されない場合
- エクスクルーシブ オプションを使用すると、XNUMX つのタスクを含むジョブ ステップを作成できます。
- エクスクルーシブ オプションであり、リモート シェルのリソースと競合しない
割り当て。 使用 - エクスクルーシブ すべてのジョブステップを呼び出して、明確な違いを保証するオプション
各ステップのリソース。
ジョブに割り当てられたすべての CPU は、各ジョブ ステップで使用できることに注意してください。
- エクスクルーシブ オプションが使用され、さらにタスク アフィニティが構成されます。 リソース以来
管理はプロセッサによって提供され、 --ntasks オプションを指定する必要がありますが、
次のオプションは指定しないでください - 相対的, - 分布=任意.
見る 実施例 を参照してください。
- 書き出す=<環境 variables | NONEを>
起動したアプリケーションに伝達される環境変数を特定します。
複数の環境変数名はコンマで区切る必要があります。 環境
変数名を指定して、それらの変数の現在の値を伝播することができます
(例: "--export=EDITOR") または変数の特定の値をエクスポートできます
(例: "--export=EDITOR=/bin/vi") 環境変数に加えて
それ以外の場合は設定されます。 デフォルトでは、すべての環境変数が伝播されます。
--gid=<グループヘッド>
If 走る root として実行され、 --gid オプションが使用されている場合は、次のコマンドを使用してジョブを送信します グループヘッド's
グループのアクセス権限。 グループヘッド グループ名または数値のグループ ID を指定できます。
--gres=<リスト>
一般的な消費可能なリソースのカンマ区切りリストを指定します。 の形式
リストの各エントリは「name[[:type]:count]」です。 その名前は、
消耗品のリソース。 カウントは、デフォルトのリソースの数です。
値は 1。指定されたリソースは、各ノード上のジョブに割り当てられます。
利用可能な一般的な消耗品リソースはシステムによって構成可能です
管理者。 利用可能な一般的な消耗品リソースのリストが印刷されます。
オプション引数が「help」の場合、コマンドは終了します。 使用例
「--gres=gpu:2,mic=1」、「--gres=gpu:kepler:2」、および「--gres=help」を含めます。 注:
デフォルトでは、割り当てられたすべての汎用リソースがジョブ ステップに割り当てられます。
仕事に。 各ジョブ ステップにジェネリックが割り当てられないように動作を変更するには
--gres の値を明示的に設定して、リソースごとにゼロカウントを指定します
汎用リソース、または「--gres=none」を設定、または SLURM_STEP_GRES 環境を設定
変数を「なし」にします。
-NS、 - 所有
ジョブが保留状態で送信されるように指定します (優先度 XNUMX)。 保留中のジョブ
scontrol を使用して優先度をリセットすることで解放できるようになりました (例: "コントロール リリース
")。
-h, - 助けて
ヘルプ情報を表示して終了します。
- ヒント=<type>
アプリケーションのヒントに従ってタスクをバインドします。
計算範囲
コンピューティングバウンドアプリケーションの設定を選択します: それぞれのすべてのコアを使用します
ソケット、コアごとに XNUMX つのスレッド。
メモリバウンド
メモリ バインド アプリケーションの設定を選択します。各アプリケーションで XNUMX つのコアのみを使用します。
ソケット、コアごとに XNUMX つのスレッド。
[いいえ]マルチスレッド
利点があるため、コア内マルチスレッドで余分なスレッドを使用しないでください。
通信量の多いアプリケーション。 タスク/アフィニティでのみサポートされます
プラグイン。
助けます このヘルプメッセージを表示する
-I, - すぐに[=秒>]
指定された期間内にリソースが利用できない場合は終了します。 いいえの場合
引数が指定されている場合、リソースはリクエストに対してすぐに利用可能でなければなりません。
成功する。 デフォルトでは、 - すぐに がオフの場合、コマンドは次のまでブロックされます。
リソースが利用可能になります。 このオプションの引数はオプションであるため、適切には
単一文字のオプションを解析する場合は、その直後に値を続ける必要があります。
間にスペースを入れないでください。 たとえば、「-I 60」ではなく「-I60」です。
-i, - 入力=<モード>
stdin のリダイレクト方法を指定します。 デフォルトでは、 走る から stdin をリダイレクトします。
すべてのタスクを終了します。 見る IO リダイレクション その他のオプションについては、以下をご覧ください。 OS X の場合、
poll() 関数は stdin をサポートしていないため、端末からの入力はできません。
-J, - 職種名=<職種名>
ジョブの名前を指定します。 指定した名前がジョブ ID とともに表示されます
システムで実行中のジョブを照会するときの番号。 デフォルトは、
実行ファイル プログラムの名前。 注: この情報は、
slurm_jobacct.log ファイル。 このファイルはスペースで区切られているため、
職種名 の内容を正しく表示する際に問題が発生します。
slurm_jobacct.log ファイル サクト コマンドが使用されます。
--ジョブビッド=<ジョブID>
ジョブ ID を持つ既に割り当てられているジョブの下でジョブ ステップを開始します id。 これを使う
オプションが発生します 走る SLURM_JOB_ID 環境の場合とまったく同じように動作する
変数が設定されました。
-K, --不正終了時に強制終了[=0|1]
いずれかのタスクがゼロ以外の終了で終了した場合に、ジョブを終了するかどうかを制御します
コード。 このオプションが指定されていない場合、デフォルトのアクションは
のスラーム構成パラメーター KillOnBadExit. このオプションを指定すると、
よりも優先されます KillOnBadExit. ゼロのオプション引数は
ジョブを終了します。 ゼロ以外の引数または引数がない場合、ジョブは終了します。
注: このオプションは、 -W, - 待つ ジョブを終了するオプション
タスクがゼロ以外の終了コードで終了した場合は、すぐに終了します。 このオプションの
引数はオプションです。適切に解析するには、XNUMX 文字のオプションに従う必要があります
間にスペースを入れないでください。 たとえば、「-K1」
「-K 1」ではありません。
-k, --ノーキル
ジョブが割り当てられているノードの XNUMX つがジョブを自動的に終了しない
失敗します。 このオプションは、提出ではなく、ジョブの割り当てでのみ認識されます
個々のジョブステップの。 仕事は、以下のすべての責任を負います。
耐障害性。 このオプションを使用したタスクの起動は、終了したとは見なされません
(例えば -K, --不正終了時に強制終了 と -W, - 待つ オプションは、
ジョブステップ)。 アクティブなジョブ ステップ (MPI ジョブ) で致命的なエラーが発生する可能性がありますが、
このオプションを指定すると、後続のジョブ ステップを実行できます。 デフォルトのアクションは
ノード障害時にジョブを終了します。
--launch-cmd
Slurm を介して通常どおりジョブを実行する代わりに、外部起動コマンドを出力します。 これ
オプションは、 打ち上げ/スラーム プラグイン。
--ランチャーオプション=<オプション>
以外のものを使用する場合の外部ランチャーのオプション 打ち上げ/スラーム
プラグイン。
-l, - ラベル
stdout/err の行にタスク番号を追加します。 の - ラベル オプションは行を前に追加します
リモート タスク ID を含む出力。
-L, --ライセンス=<ライセンス>
ライセンスの仕様 (または、すべてのノードで利用可能なその他のリソース)
クラスター) をこのジョブに割り当てる必要があります。 ライセンス名の後には、
コロンとカウント (デフォルトのカウントは XNUMX)。 複数のライセンス名はカンマで区切る必要があります
区切られています (例: "--licenses=foo:4,bar")。
-m, - 分布=
*|コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の|周期的|任意|平面= [:*|コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の|周期的|fサイクリック[:*|コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の|
周期的|fサイクリック]] [、パック|ノーパック]
リモート プロセスの代替配布方法を指定します。 このオプションは制御します
リソースが割り当てられたノードへのタスクの分散、および
これらのリソースをタスクに割り当ててバインドする (タスク アフィニティ)。 最初
分散方法 (最初の「:」の前) は、タスクの分散を制御します。
ノード。 XNUMX 番目の分散方法 (最初の「:」の後) は、
タスクにバインドするために割り当てられた CPU をソケット全体に分散します。 第XNUMX
配布方法 (XNUMX 番目の ":" の後) は、割り当てられたの配布を制御します。
タスクにバインドするためのコア全体の CPU。 XNUMX番目とXNUMX番目のディストリビューションが適用されます
タスク アフィニティが有効な場合のみ。 XNUMX 番目のディストリビューションは、
task/cgroup プラグインが構成されています。 各分布タイプのデフォルト値は
* で指定します。
select/cons_res では、各ソケットに割り当てられた CPU の数と
ノードは異なる場合があります。 参照する http://slurm.schedmd.com/mc_support.html 詳細については、
リソースの割り当て、ノードへのタスクの分散、およびバインドに関する情報
CPU へのタスク。
最初の分散方法 (ノード間でのタスクの分散):
* タスクをノード (ブロック) に分散するための既定の方法を使用します。
コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の ブロック分散メソッドは、次のようにタスクをノードに分散します。
連続したタスクはノードを共有します。 たとえば、XNUMX つの割り当てを考えてみましょう。
各ノードには XNUMX つの CPU が搭載されています。 XNUMX つのタスクのブロック配布リクエストは、
これらのタスクを最初のタスク XNUMX とタスク XNUMX でノードに分散します。
ノード、タスク XNUMX は XNUMX 番目のノード、タスク XNUMX は XNUMX 番目のノードにあります。 ブロック
タスクの数が
割り当てられたノードの数。
周期的 周期的分散方法では、次のようにタスクがノードに分散されます。
連続するタスクは連続するノードに分散されます (ラウンドロビン方式)
ファッション)。 たとえば、それぞれに XNUMX つのノードを持つ XNUMX つのノードの割り当てを考えてみましょう。
CPU。 XNUMX つのタスクの周期的分散リクエストは、これらのタスクを次のタスクに分散します。
最初のノードにタスク XNUMX と XNUMX があり、XNUMX 番目のノードにタスク XNUMX があるノード
ノード、およびタスク XNUMX は XNUMX 番目のノードにあります。 SelectType が
select/cons_res では、各ノードに同じ数の CPU が割り当てられない場合があります。
タスクの分散は、まだ CPU が搭載されていないすべてのノード間でラウンドロビンで行われます。
タスクに割り当てられる。 循環分散は、次の場合のデフォルトの動作です。
タスクの数は、割り当てられたノードの数を超えません。
飛行機 タスクは、指定されたサイズのブロックに分散されます。 オプション
タスク ブロックのサイズを表す数値が含まれます。 これに続く
ブロック内のタスク分散スキームのオプション仕様による
タスクのブロック間、およびタスクのブロック間。 配布されたタスクの数
各ノードへの送信は循環分散の場合と同じですが、タスク ID
各ノードに割り当てられる値はプレーンのサイズによって異なります。 詳細については(以下を含む)
例と図)を参照してください。
http://slurm.schedmd.com/mc_support.html
と
http://slurm.schedmd.com/dist_plane.html
任意
任意の分散方法では、プロセスを順番に割り当てます。
環境変数 SLURM_HOSTFILE で指定されたファイルにリストされます。 もし
この変数はリストされており、指定された他のメソッドをオーバーライドします。 もし
メソッドが設定されていない場合、デフォルトでブロックになります。 ホストファイル内には次のものが含まれている必要があります
少なくとも要求されるホストの数。XNUMX 行またはカンマごとに XNUMX つずつ指定します。
別れた。 タスク数を指定する場合(-n, --ntasks=<数>)、あなたのタスク
ファイルの順序でノード上に配置されます。
注: ジョブ割り当ての任意分散オプションは、制御のみを行います。
ジョブに割り当てられるノードではなく、それらのノードへの CPU の割り当てではありません。
ノード。 このオプションは主に、ジョブ ステップのタスク レイアウトを制御することを目的としています。
srun コマンドの既存のジョブ割り当て。
XNUMX 番目の分散方法 (バインディング用のソケット全体への CPU の分散):
* ソケット間で CPU を分散するためのデフォルトの方法を使用します (周期的)。
コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の ブロック分散方式は、割り当てられた CPU を連続して分散します。
タスクにバインドするために同じソケットから、次の連続するソケットを使用する前に
ソケット。
周期的 循環分散方式は、割り当てられた CPU をバインド用に分散します。
特定のタスクを連続して同じソケットから、および次のソケットから
ラウンドロビン方式で、次のタスクのための連続したソケット
ソケット。
fサイクリック
fcyclic 分散方式は、バインド用に割り当てられた CPU を分散します
連続するソケットからのタスクに、ラウンドロビン方式で
ソケット。
XNUMX 番目の分散方法 (バインディング用のコア間での CPU の分散):
* コア間で CPU を分散するためのデフォルトの方法を使用します (から継承されます)。
XNUMX 番目の配布方法)。
コロナ新型ウィルス(COVID-XNUMX)やメンタルヘルスの崩壊を避ける為の ブロック分散方式は、割り当てられた CPU を連続して分散します。
タスクにバインドするために同じコアから、次の連続したものを使用する前に
芯。
周期的 循環分散方式は、割り当てられた CPU をバインド用に分散します。
同じコアから連続して与えられたタスク、および次の連続するタスクから
コア間でラウンドロビン方式で、次のタスクのコア。
fサイクリック
fcyclic 分散方式は、バインド用に割り当てられた CPU を分散します
コア全体でラウンドロビン方式で連続するコアからタスクに送信します。
ノード上のタスク分散のオプション制御:
パック ジョブ ステップのタスクを全体に均等に分散するのではなく、
割り当てられたノードは、ノード上でできるだけ密にパックします。
ノーパック ジョブ ステップのタスクをノード上でできるだけ密にパックするのではなく、
それらを均等に分配します。 このユーザー オプションは、
SelectTypeParameters CR_Pack_Nodes 構成パラメーター。
--メールタイプ=<type>
特定の種類のイベントが発生したときにユーザーに電子メールで通知します。 有効 type 値は NONE、
BEGIN、END、FAIL、REQUEUE、ALL (BEGIN、END、FAIL、REQUEUE、および
STAGE_OUT)、STAGE_OUT (バースト バッファ ステージ アウト完了)、TIME_LIMIT、TIME_LIMIT_90
(制限時間の 90 パーセントに到達)、TIME_LIMIT_80 (制限時間の 80 パーセントに到達)
制限)、および TIME_LIMIT_50 (制限時間の 50% に到達)。 複数 type 値
カンマ区切りのリストで指定できます。 通知するユーザーが表示されます
--メールユーザー.
--メールユーザー=<user>
定義に従って状態変更の電子メール通知を受信するユーザー --メールタイプを選択します。
デフォルト値は送信ユーザーです。
--mem=<MB>
ノードごとに必要な実メモリをメガバイト単位で指定します。 デフォルト値は
DefMemPerNode そして最大値は MaxMemPerNode。 設定されている場合は、両方とも
パラメータは、 コントロール 表示する 設定 指示。 このパラメータ
通常、ノード全体がジョブに割り当てられる場合に使用されます。
(SelectType=選択/リニア)。 ジョブ ステップにゼロのメモリ制限を指定すると、
ジョブステップをジョブに割り当てられたメモリ量に制限しますが、削除はしません
ジョブのメモリ割り当てを他のジョブ ステップで使用できないようにします。 また
--CPU あたりのメモリ. --mem と --CPU あたりのメモリ 相互に排他的です。 注: メモリ
サイズ指定は特殊なケースとして扱われ、すべての
各ノードのメモリ。 注: メモリ制限の適用は現在、
task/cgroup プラグインまたはアカウンティングの有効化。
定期的 (データを保存する必要はなく、収集するだけ)。 どちらの場合もメモリ使用量
ジョブの Resident Set Size (RSS) に基づいています。 タスクがメモリ制限を超える可能性があります
次の定期会計サンプルまで。
--CPU あたりのメモリ=<MB>
割り当てられた CPU ごとに必要な最小メモリ (メガバイト単位)。 デフォルト値は
CPUあたりのDefMem そして最大値は CPU あたりの最大メモリ数 (以下の例外を参照)。 もし
設定されている場合は、両方のパラメータを使用して確認できます。 コントロール 表示する 設定
ジョブが --CPU あたりのメモリ 値が設定を超えています CPU あたりの最大メモリ数,
ユーザーの制限はタスクごとのメモリ制限として扱われます。 --CPU あたりのメモリ
以下の値まで減らされます CPU あたりの最大メモリ数; --cpus-per-タスク 設定されます
そしての価値 --cpus-per-タスク 新しいものを掛ける --CPU あたりのメモリ 価値観は
オリジナルと同等 --CPU あたりのメモリ ユーザーが指定した値。 このパラメータは、
通常、個々のプロセッサがジョブに割り当てられている場合に使用されます。
(SelectType=select/cons_res)。 リソースがコア、ソケット、または
ノード全体。 ジョブに割り当てられる CPU の数はタスクよりも多くなる可能性があります
カウントと値 --CPU あたりのメモリ それに応じて調整する必要があります。 を指定する
ジョブ ステップのメモリ制限を XNUMX にすると、ジョブ ステップが次の量に制限されます。
ジョブに割り当てられたメモリを削除しますが、ジョブのメモリ割り当てを削除しません
他のジョブステップで利用可能。 こちらもご覧ください --mem. --mem と --CPU あたりのメモリ
相互に排他的。
--mem_bind=[{静かな、冗長な},]type
タスクをメモリにバインドします。 タスク/アフィニティ プラグインが有効であり、
NUMAメモリ機能が利用可能です。 注意 それ 分解能 of CPU と メモリ
拘束 かもしれません 異なる on 一部 アーキテクチャ。 たとえば、CPU バインディングが実行される場合があります。
メモリバインディングが実行される間、プロセッサ内のコアのレベルで
ノードのレベルでは、「ノード」の定義はシステムによって異なる場合があります。
システム。 この つかいます of どれか type 他の より "なし" or "地元" is お勧めします。 If
より詳細な制御が必要な場合は、オプションを使用して簡単なテスト コードを実行してみてください。
「--cpu_bind=verbose,none --mem_bind=verbose,none」で特定の
構成。
注: Slurm がすべてのコマンドに対して選択されたメモリ バインディングを常にレポートするようにするには
シェルで実行される場合、SLURM_MEM_BIND を設定することで冗長モードを有効にできます。
環境変数の値を「verbose」に設定します。
次の情報環境変数は、次の場合に設定されます。 --mem_bind である
使用します。
SLURM_MEM_BIND_VERBOSE
SLURM_MEM_BIND_TYPE
SLURM_MEM_BIND_LIST
ジョブの設定方法については、 ENVIRONMENT 変数 の詳細な説明については、セクションを参照してください。
個々の SLURM_MEM_BIND* 変数。
サポートされているオプションは次のとおりです。
静かな]
タスクの実行前に静かにバインドします (デフォルト)
詳細
タスクの実行前にバインディングを詳細にレポートします
なし] タスクをメモリにバインドしません (デフォルト)
ランク タスクランクによるバインド(非推奨)
ローカル 使用中のプロセッサにローカルなメモリを使用する
マップメモリ:
指定されたとおりにノードのメモリをタスクにマッピングしてバインドします。 は
、 、... 。 CPU ID は 1 進数値として解釈されます
ただし、先頭に「0x」が付いている場合は次のように解釈されます。
XNUMX 進値 (非推奨)
マスクメモリ:
指定されたとおりにタスクにメモリマスクを設定してバインドします。 は
、 、... 。 メモリーマスクは 常に として解釈される
0 進値。 マスクを使用する場合は、マスクの前に「XNUMXx」を付ける必要があることに注意してください。
[0-9] で始まらないようにするため、srun では数値として認識されます。
助けます このヘルプメッセージを表示する
--mincpus=<n>
ノードごとの論理 CPU/プロセッサの最小数を指定します。
--msg-タイムアウト=<秒>
ジョブ起動メッセージのタイムアウトを変更します。 デフォルト値は メッセージタイムアウト 会場は
Slurm 構成ファイル slurm.conf。 これに対する変更は、通常、
推奨されますが、問題の診断に役立つ場合があります。
--mpi=<mpi_type>
使用する MPI のタイプを特定します。 独自の開始手順になる可能性があります。
リスト 選択可能な mpi タイプを一覧表示します。
ラム ノードごとに XNUMX つの「lamd」プロセスを開始し、必要な環境を確立します
LAM/MPI の変数。
mpich1_shmem
ノードごとに XNUMX つのプロセスを開始し、必要な環境を確立します
mpich1 共有メモリ モデルの変数。 これはビルドされたmvapichでも機能します
共有メモリ用。
mpichgm
Myrinet で使用します。
ムバピッチ
Infiniband で使用します。
オープンエムピ
OpenMPI で使用します。
pmi2 PMI2 サポートを有効にします。 Slurm での PMI2 サポートは、MPI が
実装はそれをサポートします。つまり、MPI に PMI2 インターフェイスがある場合
実装されました。 --mpi=pmi2 はライブラリ lib/slurm/mpi_pmi2.so をロードします
これはサーバー側の機能を提供しますが、クライアント側は
PMI2_Init() およびその他のインターフェース呼び出しを実装します。
なし 特別な MPI 処理はありません。 これはデフォルトであり、他の多くのもので動作します
MPI のバージョン。
--マルチプログラム
タスクごとに異なるプログラムと異なる引数を使用してジョブを実行します。 この中で
この場合、指定された実行可能プログラムは、実際には次を指定する構成ファイルです。
各タスクの実行可能ファイルと引数。 見る 複数 プログラム CONFIGURATION
構成ファイルの内容の詳細については、以下を参照してください。
-N, -ノード=<最小ノード[-マックスノード]>
最低限のことを要求してください 最小ノード ノードがこのジョブに割り当てられます。 最大ノード
count は次のように指定することもできます マックスノード。 数値が XNUMX つだけ指定されている場合、これは
最小ノード数と最大ノード数の両方として使用されます。 パーティションのノード制限
仕事の内容に取って代わられます。 ジョブのノード制限が範囲外の場合
関連するパーティションに許可されている場合、ジョブは PENDING 状態のままになります。
これにより、パーティションの制限が制限されている場合に、後で実行できるようになります。
かわった。 ジョブ ノードの制限が、
パーティションにある場合、ジョブは拒否されます。 環境変数に注意してください
SLURM_JOB_NUM_NODES (と SLURM_NNODES 下位互換性のため) に設定されます
ジョブに実際に割り当てられたノードの数。 を参照してください ENVIRONMENT 変数
詳細については、セクションを参照してください。 もし -N が指定されていない場合、デフォルトの動作は
の要件を満たすのに十分な数のノードを割り当てます。 -n と -c オプション。 NS
ジョブは、指定された範囲内でできるだけ多くのノードを割り当てられ、
仕事の開始を遅らせることなく。 ノード数の指定は
数値の後に "k" のサフィックスを付けます (数値に
1,024) または "m" (数値に 1,048,576 を掛けます)。
-n, --ntasks=<数>
実行するタスクの数を指定します。 リクエスト 走る にリソースを割り当てる nタスク
タスク。 デフォルトはノードごとに XNUMX つのタスクですが、 --cpus-per-タスク オプション
このデフォルトを変更します。
- 通信網=<type>
スイッチまたはネットワークに関する情報を指定します。 の解釈
type システムに依存します。 このオプションは、Cray で Slurm を実行する場合にサポートされます。
ネイティブ的に。 Network Performance Counter を使用してリクエストするために使用されます。 値は XNUMX つだけ
リクエストごとに有効です。 すべてのオプションでは大文字と小文字が区別されません。 この構成では
サポートされている値は次のとおりです。
システム全体のネットワーク パフォーマンス カウンターを使用します。 要求されたノードのみが実行されます。
ジョブ割り当てに使用中としてマークされます。 求人が埋まらない場合は、
システム全体、残りのノードは他のジョブで使用できません
NPC を使用すると、アイドル状態の場合、その状態が PerfCnts として表示されます。 これらのノードは、
NPCを使用しない他のジョブでも引き続き利用できます。
ブレード ブレード ネットワーク パフォーマンス カウンターを使用します。 要求されたノードのみが
ジョブ割り当てに使用中とマークされています。 ジョブがすべてを満たさない場合は、
ジョブに割り当てられたブレードは、他のブレードでは使用できません。
NPC を使用するジョブの場合、アイドル状態の場合、その状態は PerfCnts として表示されます。 これらのノードは、
NPCを使用しない他のジョブでも引き続き利用できます。
いずれの場合も、ジョブまたはステップの割り当てリクエスト しなければなりません 指定する
--exclusive オプション。 それ以外の場合、リクエストは拒否されます。
また、これらのオプションのいずれを使用しても、ステップでブレードを共有することはできないため、リソース
ブレード上で実行されているステップが実行されない場合、割り当て内ではアイドル状態のままになります。
ブレード上のすべてのノードを起動します。
この ネットワーク このオプションは、IBM の並列環境を備えたシステムでもサポートされています
(PE)。 キーワードについては、IBM の LoadLeveler ジョブ コマンド キーワードのドキュメントを参照してください。
詳細については、「ネットワーク」を参照してください。 複数の値をカンマで指定できます
区切られたリスト。 すべてのオプションでは大文字と小文字が区別されません。 サポートされている値は次のとおりです。
BULK_XFER[=リソース>]
リモート ダイレクト メモリ アクセス (RDMA) を使用したデータの一括転送を有効にします。
オプション リソース 仕様は数値です。
キロバイト、メガバイト、または
ギガバイト。 注: リソース 仕様はサポートされていません
並列環境バージョン 2.2 の基礎となる IBM インフラストラクチャー
この時点では値を指定しないでください。 割り当てられたデバイス
ジョブへのすべてが同じタイプである必要があります。 デフォルト値は以下に依存します
利用可能なハードウェアに依存し、好みの順序で
IPONLY (ユーザー空間モードでは考慮されません)、HFI、IB、HPCE、および
KMUX。
CAU=<カウント> 必要な集合加速ユニット (CAU) の数。 のみ適用
IBM Power7-IH プロセッサーに。 デフォルト値はゼロです。 独立したCAU
各プログラミング インターフェイス (MPI、LAPI など) に割り当てられます。
デバイス名=<名>
通信に使用するデバイス名を指定します (例: 「eth0」または
「mlx4_0」)。
デバイスタイプ=<type>
通信に使用するデバイスの種類を指定します。 サポートされている
の値 type : 「IB」 (InfiniBand)、「HFI」 (P7 ホスト ファブリック)
インターフェイス)、「IPONLY」(IP 専用インターフェイス)、「HPCE」(HPC イーサネット)、
「KMUX」(HPCEのカーネルエミュレーション)。 ジョブに割り当てられるデバイスは、
すべて同じタイプである必要があります。 デフォルト値は以下に依存します。
利用可能なハードウェアと優先順位は IPONLY (
ユーザー空間モードでは考慮されません)、HFI、IB、HPCE、および KMUX。
即時 =<カウント>
必要なウィンドウごとの即時送信スロットの数。 にのみ適用されます
IBM Power7-IH プロセッサー。 デフォルト値はゼロです。
インスタンス =<カウント>
各ネットワーク上の各タスクのネットワーク接続数を指定します
繋がり。 デフォルトのインスタンス数は 1 です。
IPV4 インターネット プロトコル (IP) バージョン 4 通信を使用します (デフォルト)。
IPV6 インターネット プロトコル (IP) バージョン 6 通信を使用します。
ラピ LAPI プログラミング インターフェイスを使用します。
のMPI MPI プログラミング インターフェイスを使用します。 MPI はデフォルトのインターフェースです。
パミ PAMI プログラミング インターフェイスを使用します。
シュメム OpenSHMEM プログラミング インターフェイスを使用します。
SN_ALL 利用可能なすべてのスイッチ ネットワークを使用します (デフォルト)。
SN_SINGLE 利用可能な XNUMX つのスイッチ ネットワークを使用します。
UPC UPC プログラミング インターフェイスを使用します。
US ユーザースペース通信を使用します。
ネットワーク仕様の例をいくつか示します。
インスタンス=2、US、MPI、SN_ALL
MPI 通信用に XNUMX つのユーザー空間接続を作成します。
タスクごとにネットワークを切り替えます。
US、MPI、インスタンス = 3、Devtype = IB
MPI 通信用に XNUMX つのユーザー空間接続を作成します。
各タスクの InfiniBand ネットワーク。
IPV4、LAPI、SN_シングル
4 つのスイッチ上で LAPI 通信用の IP バージョン XNUMX 接続を作成する
タスクごとにネットワークを構築します。
インスタンス=2、US、LAPI、MPI
LAPI 通信と MPI 通信用にそれぞれ XNUMX つのユーザー空間接続を作成します
各タスクのすべてのスイッチ ネットワーク上で。 SN_ALL がデフォルトであることに注意してください。
オプションを使用すると、すべてのスイッチ ネットワークが使用されます。 インスタンス = 2 であることにも注意してください。
各プロトコル (LAPI) に対して XNUMX つの接続が確立されることを指定します。
および MPI) と各タスク。 XNUMX つのネットワークと XNUMX つのタスクがある場合
ノードに接続すると、合計 32 の接続が確立されます (2 つのインスタンス x
2 プロトコル x 2 ネットワーク x 4 タスク)。
- 良い[=調整]
Slurm 内で調整されたスケジュール優先度を使用してジョブを実行します。 調整なしで
値を指定すると、スケジュール優先度が 100 減ります。調整範囲は次のとおりです。
-10000 (優先度が最も高い) ~ 10000 (優先度が最も低い)。 特権ユーザーのみが実行できる
マイナスの調整を指定します。 注: このオプションは現在無視されます。
SchedulerType=sched/wiki or SchedulerType=sched/wiki2.
--ntasks-per-コア=<nタスク>
最大限のリクエストをする nタスク 各コアで呼び出されます。 このオプションはジョブに適用されます
ただし、ステップ割り当てではありません。 で使用することを意味します --ntasks
オプション。 関連 --node ごとの ntasks ノードではなくコアレベルを除く
レベル。 タスクを特定のコアにバインドするためのマスクが自動的に生成されます
ない限り、 --cpu_bind=なし が指定されています。 注: このオプションは、次の場合を除きサポートされていません。
SelectTypeParameters=CR_Core or SelectTypeParameters=CR_Core_Memory 設定されています。
--node ごとの ntasks=<nタスク>
それを要求する nタスク 各ノードで呼び出されます。 と一緒に使用すると、 --ntasks オプション、
--ntasks オプションが優先され、 --node ごとの ntasks として扱われます
ノードごとのタスクの数。 と一緒に使用することを目的としています。 -ノード オプション。 この
に関係している --cpus-per-タスク=ncpusただし、実際の知識は必要ありません。
各ノードの CPU の数。 場合によっては、できるほうが便利です。
各ノードで特定の数を超えないタスクを呼び出すように要求します。
この例には、MPI が XNUMX つだけ含まれるハイブリッド MPI/OpenMP アプリの送信が含まれます。
「タスク/ランク」は、OpenMP 部分を許可しながら各ノードに割り当てる必要があります。
ノード内に存在するすべての並列処理を利用するか、単一の並列処理を送信します。
既存の割り当ての各ノードに対するセットアップ/クリーンアップ/監視ジョブを XNUMX つのステップとして実行
より大きなジョブ スクリプトで。
--ソケットごとのntasks=<nタスク>
最大限のリクエストをする nタスク 各ソケットで呼び出されます。 このオプションは、
ジョブの割り当てですが、ステップ割り当てには使用できません。 で使用することを意味します --ntasks
オプション。 関連 --node ごとの ntasks 代わりにソケットレベルを除いて
ノードレベル。 タスクを特定のタスクにバインドするために、マスクが自動的に生成されます。
ソケット --cpu_bind=なし が指定されています。 注: このオプションはサポートされていません
ない限り、 SelectTypeParameters=CR_Socket or SelectTypeParameters=CR_Socket_Memory is
構成されました。
-O, --オーバーコミット
リソースをオーバーコミットします。 ジョブ割り当てに適用すると、CPU は XNUMX つだけ割り当てられます。
ノードごとのジョブと、ノード、ソケット、
コアなどは無視されます。 ジョブ ステップの割り当てに適用される場合 ( 走る command
既存のジョブ割り当て内で実行される場合)、このオプションを使用して起動できます。
CPU ごとに複数のタスク。 通常は、 走る 複数のプロセスを割り当てません
CPUごとに。 指定することで --オーバーコミット 複数を明示的に許可しています
CPUごとのプロセス。 ただし、それ以上ではありません MAX_TASKS_PER_NODE タスクには次のことが許可されています
ノードごとに実行します。 注記: MAX_TASKS_PER_NODE ファイルで定義されています スラーム.h とです。
変数ではなく、Slurm のビルド時に設定されます。
-o, - 出力=<モード>
stdout リダイレクトのモードを指定します。 デフォルトでは、インタラクティブ モードでは、 走る
すべてのタスクから stdout を収集し、この出力を TCP/IP 経由で接続先に送信します。
ターミナル。 と - 出力 stdout はファイルに、タスクごとに XNUMX つのファイルにリダイレクトできます。
または/dev/nullに。 セクションを参照 IO リダイレクション のさまざまな形式については、以下を参照してください。 モード.
指定したファイルが既に存在する場合は、上書きされます。
If - エラー コマンドラインでも指定されていない場合、stdout と stderr の両方が
によって指定されたファイルに送信されます - 出力.
--オープンモード=<追加|切り捨てる>
指定された追加モードまたは切り捨てモードを使用して、出力ファイルとエラー ファイルを開きます。 の
デフォルト値はシステム構成パラメータによって指定されます ジョブファイル追加.
-p, - パーティション=<パーティション名>
リソース割り当てのために特定のパーティションを要求します。 指定しない場合、
デフォルトの動作では、slurm コントローラーがデフォルトのパーティションを選択できるようになります。
システム管理者の指定に従ってください。 ジョブで複数を使用できる場合
パーティションの場合は、その名前をカンマ区切りのリストで指定し、提供するパーティションを指定します。
パーティション名に関係なく、最も早い開始が使用されます。
順序付け (ただし、優先度の高いパーティションが最初に考慮されます)。 とき
ジョブが開始されると、使用されるパーティションの名前がジョブの最初に配置されます。
レコードパーティション文字列。
- パワー=<フラグ>
電源管理プラグイン オプションのカンマ区切りリスト。 現在利用可能なフラグ
include: レベル (ジョブに割り当てられたすべてのノードは同一の電力上限を持つ必要があります。
Slurm 構成オプション PowerParameters=job_no_level) によって無効にすることができます。
- 優先順位=
特定のジョブの優先順位を要求します。 構成固有の影響を受ける可能性があります
制約。 Slurm のオペレーターと管理者のみが優先順位を設定できます。
仕事。
- プロフィール=
acct_gather_profile プラグインによる詳細なデータ収集を有効にします。 詳細データ
通常、時系列はジョブの HDF5 ファイルに保存されます。
すべて すべての種類のデータが収集されます。 (他の値と組み合わせることはできません。)
なし データタイプは収集されません。 これがデフォルトです。
(他の値と組み合わせることはできません。)
エネルギー エネルギーデータが収集されます。
仕事 タスク (I/O、メモリなど) データが収集されます。
ファイルシステム
ファイルシステム データが収集されます。
ネットワーク ネットワーク (InfiniBand) データが収集されます。
-プロローグ=<実行ファイル>
走る will run 実行ファイル ジョブステップを起動する直前。 コマンドライン
の引数 実行ファイル ジョブ ステップのコマンドと引数になります。 もしも
実行ファイル "none" の場合、srun プロローグは実行されません。 このパラメーターは、
slurm.conf の SrunProlog パラメータ。 このパラメーターは、から完全に独立しています。
slurm.conf の Prolog パラメータ。
--伝播する[=限界]
ユーザーは、どの変更可能な (ソフト) リソース制限を反映するかを指定できます。
を計算ノードに追加し、そのジョブに適用します。 もし 限界 指定されていない場合
すべてのリソース制限が伝播されます。 次の rlimit 名がサポートされています
Slurm による (ただし、一部のシステムでは一部のオプションがサポートされていない場合があります):
全て 以下にリストされているすべての制限
AS プロセスの最大アドレス空間
CORE コアファイルの最大サイズ
CPU CPU 時間の最大量
DATA プロセスのデータセグメントの最大サイズ
FSIZE 作成されるファイルの最大サイズ。 ユーザーが FSIZE を次のように設定すると、
slurmd.log の現在のサイズより小さい場合、ジョブの起動は失敗します。
「ファイルサイズ制限を超えました」エラー。
メモリロック メモリにロックされる可能性のある最大サイズ
ファイルがない 開いているファイルの最大数
NPROC 使用可能なプロセスの最大数
RSS 常駐セットの最大サイズ
スタック 最大スタックサイズ
--pty 疑似端末モードでタスク XNUMX を実行します。 暗黙的に設定する -バッファなし.
暗黙的に設定する - エラー と - 出力 タスク XNUMX を除くすべてのタスクの /dev/null に、
これにより、これらのタスクがすぐに終了する可能性があります (たとえば、シェルは通常終了します
その状況ですぐに)。 AIX プラットフォームでは現在サポートされていません。
-Q, - 静かな
srun からの情報メッセージを抑制します。 エラーは引き続き表示されます。
-q, -- 中断時に終了
単一の SIGINT (Ctrl-C) ですぐに終了します。 このオプションを使用すると、ステータスが無効になります
通常利用可能な機能 走る 単一の Ctrl-C を受け取り、 走る 〜へ
代わりに、実行中のジョブをすぐに終了します。
--qos=<コス>
ジョブのサービス品質を要求します。 QOS値はそれぞれに定義できます。
Slurm データベース内のユーザー/クラスター/アカウントの関連付け。 ユーザーは以下に限定されます
Slurm 設定パラメータの場合、それらの関連付けで定義された一連の QoS、
AccountingStorageEnforce の定義に「qos」が含まれています。
-r, - 相対的=<n>
ノードに相対的なジョブ ステップを実行する n 現在の割り当ての。 このオプションは
現在のジョブのノード間でいくつかのジョブ ステップを分散するために使用されます。 もしも -r is
使用されている場合、現在のジョブ ステップはノードで開始されます n 割り当てられたノードリストの
最初のノードはノード 0 と見なされます。 -r オプションは許可されていません -w or -x
オプションであり、以前の割り当て内で実行されていない場合、致命的なエラーが発生します
(つまり、SLURM_JOB_ID が設定されていない場合)。 のデフォルト n は 0 です。
-ノード で識別されるノードの数を超えています - 相対的 オプション、
警告メッセージが出力され、 - 相対的 オプションが優先されます。
- リブート
ジョブを開始する前に、割り当てられたノードを強制的に再起動します。 これだけです
一部のシステム構成ではサポートされていますが、それ以外の場合は黙って無視されます。
--resv-ports
このジョブ用に通信ポートを予約します。 ユーザーはポート番号を指定できます
予約したい。 パラメータ MpiParams=ports=12000-12999 を指定する必要があります
slurm.conf. 指定されていない場合、ポートのデフォルトの予約数は
タスクの数。 予約済みポートの数がゼロの場合、ポートは予約されていません。
OpenMPI に使用されます。
- 予約=<名>
指定された予約からジョブのリソースを割り当てます。
--再起動ディレクトリ=<ディレクトリにジョブを開始します。>
ジョブまたはジョブ ステップのチェックポイントを読み取るディレクトリを指定します
(checkpoint/blcrm および checkpoint/xlch プラグインでのみ使用されます)。
-s, - 共有
ジョブ割り当てでは、実行中の他のジョブとリソースを共有できます。 リソース
共有できるのは、ノード、ソケット、コア、またはハイパースレッドです。
構成。 デフォルトの共有動作は、システム構成と
パーティションの 共有 オプションはジョブのオプションより優先されます。 このオプションにより、
--share オプションを使用しなかった場合よりも早く割り当てが許可されることになります。
システム使用率を高く設定して許可しますが、アプリケーションのパフォーマンスは低下する可能性があります
資源の奪い合いで苦しむ。 --exclusive オプションも参照してください。
-S, --コアスペック=<NUM>
システム操作およびジョブによって予約されたノードごとの特殊コアの数。
アプリケーションでは使用されません。 アプリケーションはこれらのコアを使用しませんが、
割り当てに対して請求されます。 デフォルト値はノードによって異なります。
構成された CoreSpecCount 値。 値 XNUMX を指定すると、Slurm
構成オプションAllowSpecResourcesUsageが有効になっている場合、ジョブは次のことを許可されます。
CoreSpecCount をオーバーライドし、割り当てられたノード上の特殊なリソースを使用します。
このオプションは、 --スレッドスペック オプションを選択します。
--sicp 他のクラスターに送信されたジョブが依存できるジョブとして識別します。
- 信号=<sig_num>[@sig_time>]
仕事が入っているとき sig_time 終了時刻の秒数が経過したら、シグナルを送信します sig_num.
Slurm によるイベント処理の解像度により、信号は最大 60 個まで送信される場合があります。
指定した秒数よりも早くなります。 sig_num 信号番号または信号名のいずれかになります
(例:「10」または「USR1」)。 sig_time 0 ~ 65535 の整数値を指定する必要があります。
デフォルトでは、ジョブの終了時刻前にシグナルは送信されません。 もし sig_num 指定されています
任意のなし sig_timeの場合、デフォルトの時間は 60 秒になります。
--slurmd-debug=<レベル>
のデバッグ レベルを指定する スラーム(8) の レベル 整数のいずれかを指定できます
0 [静か、エラーのみが表示される] と 4 [冗長な操作] の間の値、または
Slurmdデバッグ タグ。
静かな 何も記録しない
致命的な 致命的なエラーのみをログに記録する
エラー エラーのみをログに記録する
info ログ エラーと一般的な情報メッセージ
詳細 エラーと詳細な情報メッセージをログに記録する
slurmd のデバッグ情報は、の stderr にコピーされます。
仕事。 デフォルトでは、エラーのみが表示されます。
--ノードごとのソケット数=<ソケット>
ノードの選択を、少なくとも指定された数のソケットを持つノードに制限します。
以下の追加情報を参照してください。 -B タスク/アフィニティ プラグインが有効な場合の上記のオプション
有効になりました。
--スイッチ=<カウント>[@最大時間>]
ツリー トポロジが使用される場合、これにより必要なスイッチの最大数が定義されます。
ジョブの割り当てと、オプションでその数を待機する最大時間。
スイッチ。 Slurm がカウントよりも多くのスイッチを含む割り当てを見つけた場合
指定されている場合、ジョブは、希望する割り当てが見つかるまで保留状態のままになります。
切り替え回数が制限されるか、制限時間が経過します。 スイッチ数の制限はありません。
仕事の開始に遅れはありません。 受け入れられる時間形式には「分」が含まれます。
「分:秒」、「時:分:秒」、「日-時」、「日-時:分」および
「日-時:分:秒」。 ジョブの最大遅延時間は、
システム管理者が使用する スケジューラ パラメータ 設定パラメータを使用して、
max_switch_wait パラメータオプション。 デフォルトの最大時間は max_switch_wait です。
スケジューラパラメータ。
-T, -スレッド=<nスレッド>
ジョブ要求を送信するために使用される同時スレッドの数を制限できます
割り当てられたノードの slurmd プロセスへの srun プロセス。 デフォルトは使用することです
割り当てられたノードごとに 60 つのスレッド、最大 XNUMX の同時スレッド。 指定する
このオプションは、同時スレッド数を nスレッド (以下
60まで)。 これは、非常に多くのテスト用に低いスレッド数を設定する場合にのみ使用してください。
スモールメモリコンピュータ。
-t, - 時間=<時間>
ジョブ割り当ての合計実行時間に制限を設定します。 ご希望の時間であれば
制限がパーティションの時間制限を超えると、ジョブは保留状態のままになります。
(おそらく無期限)。 デフォルトの時間制限はパーティションのデフォルト時間です
限界。 制限時間に達すると、各ジョブ ステップの各タスクが SIGTERM に送信されます。
続いてシギキル。 信号間の間隔は Slurm によって指定されます。
構成パラメーター キルウェイトを選択します。 オーバータイムリミット 設定パラメータは、
ジョブがスケジュールより長く実行されることを許可します。 時間分解能は XNUMX 分で、
秒の値は次の分に切り上げられます。
制限時間をゼロにすると、時間制限を課さないことが要求されます。 許容時間
形式には「分」、「分:秒」、「時:分:秒」が含まれます。
「日-時間」、「日-時:分」、および「日-時間:分:秒」。
--タスクエピローグ=<実行ファイル>
この スラームステップド デーモンが実行されます 実行ファイル 各タスクが終了した直後。 これ
slurm.conf の TaskEpilog パラメータが実行される前に実行されます。 これは
非常に短期間のプログラムであることを意味します。 数時間以内に終了しない場合
秒後に、すべての子孫プロセスと共に強制終了されます。
--タスクプロローグ=<実行ファイル>
この スラームステップド デーモンが実行されます 実行ファイル 各タスクを起動する直前。 これ
slurm.conf の TaskProlog パラメータが実行された後に実行されます。 その上
通常の環境変数、これには SLURM_TASK_PID があり、
開始されるタスクのプロセス ID。 のこのプログラムからの標準出力
フォーム "export NAME=value" は、タスクの環境変数を設定するために使用されます
産卵中。
-テストのみ
現在のジョブを指定して、ジョブの実行がスケジュールされる時期の推定値を返します
キューとその他すべて 走る ジョブを指定する引数。 この制限 スランの
情報を返すだけの動作。 実際に送信されるジョブはありません。 例外: オン
Bluegene/Q システムが既存のジョブ割り当て内で実行されている場合、これにより無効になります
タスクを起動するための「runjob」の使用。 プログラムは、
slurmd デーモン。
--スレッドスペック=<NUM>
システム操作およびジョブによって予約されたノードごとの特殊スレッドの数。
アプリケーションでは使用されません。 アプリケーションはこれらのスレッドを使用しませんが、
その割り当てに対して料金が請求されます。 このオプションは、 --コアスペック
オプションを選択します。
-- コアあたりのスレッド数=<スレッド>
ノードの選択を、少なくとも指定された数のスレッドを持つノードに制限します。
芯。 注: 「スレッド」とは、各コア上の処理ユニットの数を指します。
コアごとに起動されるアプリケーション タスクの数よりも多くなります。 追加情報を参照
下の情報 -B タスク/アフィニティ プラグインが有効な場合は、上記のオプションを使用します。
--時間-分=<時間>
ジョブ割り当ての最小時間制限を設定します。 指定されている場合、ジョブには次のものがある可能性があります。
それはだ - 時間 制限を下回らない値に下げる --時間-分 そうすることで許されるなら
ジョブが可能な限り早く実行を開始するようにします。 ジョブの制限時間
ジョブにリソースが割り当てられた後は変更されません。 これを実行するのは、
バックフィル スケジューリング アルゴリズムにより、より高い目的のために予約されているリソースを割り当てます。
優先的な仕事。 使用できる時間形式には、「分」、「分:秒」、
「時:分:秒」、「日-時間」、「日-時間:分」および
「日-時:分:秒」。
--tmp=<MB>
一時ディスク容量の最小量を指定します。
-u, -バッファなし
デフォルトでは、slurmstepd とユーザーが起動したアプリケーションの間の接続は次のとおりです。
パイプの上。 アプリケーションによって書き込まれた stdio 出力は、glibc によってバッファリングされます
フラッシュされるか、出力がバッファなしとして設定されるまで。 見る セットバッファ(3)。 これなら
オプションが指定されている場合、タスクは疑似端末で実行されるため、
アプリケーション出力はバッファリングされません。
- 利用方法
簡単なヘルプ メッセージを表示して終了します。
--uid=<user>
としてジョブを送信および/または実行しようとします。 user 呼び出し元のユーザー ID の代わりに。 の
呼び出し元のユーザーの資格情報は、ターゲットのアクセス許可をチェックするために使用されます。
パーティション。 ユーザー root は、このオプションを使用して、RootOnly で通常のユーザーとしてジョブを実行できます。
たとえばパーティション。 root として実行すると、 走る uid へのアクセス許可を削除します
ノードの割り当てが成功した後に指定されます。 user ユーザー名または
数値のユーザーID。
-V, - バージョン
バージョン情報を表示して終了します。
-v, -詳細
srun の情報メッセージの詳細度を上げます。 多数 -vの意志
srun の冗長性をさらに高めます。 デフォルトでは、エラーのみが表示されます。
-W, - 待つ=<秒>
最初のタスクが終了してからすべてのタスクを終了するまでの待機時間を指定します
残りのタスク。 値 0 は無制限の待機を示します (警告が発行されます)
60秒後)。 デフォルト値は、slurm の WaitTime パラメータによって設定されます
構成ファイル (を参照) slurm.conf(5))。 このオプションは、
XNUMX つまたは複数のタスクが終了した場合、ジョブはタイムリーに終了します。
時期尚早。 注: -K, --不正終了時に強制終了 オプションが優先されます -W,
- 待つ ゼロ以外の終了コードでタスクが終了した場合、ジョブをすぐに終了します。
-w, --nodelist=<ホスト1、ホスト2、... or ファイル名>
ホストの特定のリストを要求します。 ジョブには以下が含まれます を これらのホストのうち、
リソース要件を満たすために必要に応じてホストを追加する可能性があります。 リストは、
ホストのカンマ区切りのリスト、ホストの範囲 (host[1-5,7,...]) として指定できます。
例)、またはファイル名。 次の場合、ホスト リストはファイル名であるとみなされます。
「/」文字が含まれています。 最小ノード数またはプロセッサ数をより大きく指定した場合
提供されたホスト リストでは満たせない場合は、追加のリソースが追加されます。
必要に応じて他のノードに割り当てられます。 ホスト名を複数繰り返すのではなく
回、アスタリスクと繰り返し回数をホスト名に追加できます。 為に
例 "host1,host1" と "host1*2" は同等です。
--wckey=<ウィッキー>
ジョブで使用する wckey を指定します。 slurm.conf で TrackWCKey=no (デフォルト) の場合
この値は無視されます。
-X, --無効化ステータス
srun が単一の SIGINT (Ctrl-C) を受信したときのタスク ステータスの表示を無効にします。
代わりに、SIGINT を実行中のジョブにすぐに転送します。 このオプションがないと
ジョブを強制終了するには、XNUMX 秒間に XNUMX 回目の Ctrl-C が必要です。 走る 意志
すぐに終了します。 環境変数を介して設定することもできます
SLURM_DISABLE_STATUS。
-x, -除外する=<ホスト1、ホスト2、... or ファイル名>
ホストの特定のリストが割り当てられたリソースに含まれないように要求する
この仕事。 ホストリストに含まれている場合、ホストリストはファイル名であると見なされます。
"/"キャラクター。
-Z, --割り当てなし
Slurm「ジョブ」を作成せずに、一連のノードで指定されたタスクを実行します
通常のリソース割り当てステップをバイパスするスラーム キュー構造。 のリスト
ノードは -w, --nodelist オプション。 これは特権です
ユーザー「SlurmUser」および「root」のみが使用できるオプション。
次のオプションは Blue Gene システムをサポートしていますが、他のシステムにも適用できる場合があります。
よく。
--blrts-画像=<path>
bluegene ブロックの blrts イメージへのパス。 BGLのみ。 デフォルトから ブルージーン.conf if
設定されていません。
--cnload-image=<path>
bluegene ブロックのノード イメージを計算するパス。 BGPのみ。 デフォルトから
ブルージーン.conf 設定されていない場合。
--conn タイプ=<type>
ブロック接続タイプが特定のタイプである必要があります。 ブルージーンについては、
許容できる type MESH、TORUS、NAV です。 NAV の場合、または設定されていない場合、Slurm は
そうでない場合は、Bluegene.conf で DefaultConnType が設定されているものに合わせてみてください。
デフォルトはTORUSに設定します。 通常、このオプションは設定しないでください。 実行中の場合
BGP システムであり、HTC モードで実行したい場合 (1 ミッドプレーン以下のみ)。 あなた
SMP には HTC_S、デュアルには HTC_D、仮想ノード モードには HTC_V、および
Linuxモード。 次元ごとに異なる接続タイプを許可するシステムの場合、
指定できる接続タイプのカンマ区切りリストを指定できます。
各次元 (つまり、M、T、T、T はすべての次元のトーラス接続を提供します)
最初のものを期待してください)。
-g, -ジオメトリ=<XxYxZ> |AxXxYxZ>
ジョブのジオメトリ要件を指定します。 BlueGene/L および BlueGene/P システムの場合
X、Y、Z 方向の寸法を表す XNUMX つの数字があります。
BlueGene/Q システムには、A、X、Y、Z の寸法を表す XNUMX つの数字があります。
方向を指定するため、サブブロックの割り当てには使用できません。 例えば
「--geometry=1x2x3x4」は、1 x 2 x 3 x 4 = 24 ノードを持つノードのブロックを指定します。
(実際には BlueGene 上のミッドプレーン)。
--ioload-image=<path>
bluegene ブロックの io イメージへのパス。 BGPのみ。 デフォルトから ブルージーン.conf そうでなければ
設定します。
--linux-image=<path>
Bluegene ブロックの Linux イメージへのパス。 BGLのみ。 デフォルトから ブルージーン.conf if
設定されていません。
--mloader-image=<path>
Bluegene ブロックの mloader イメージへのパス。 デフォルトから ブルージーン.conf 設定されていない場合。
-R, -回転なし
適切な形状に合わせるために、ジョブの要求されたジオメトリの回転を無効にします。
ブロック。 デフォルトでは、指定されたジオメトリは XNUMX 次元で回転できます。
--ramdisk-image=<path>
Bluegene ブロックの RAM ディスク イメージへのパス。 BGLのみ。 デフォルトから ブルージーン.conf if
設定されていません。
走る ジョブリクエストを slurm ジョブコントローラーに送信し、すべてのプロセスを開始します
リモートノード上。 ご要望にすぐに応えられない場合、 走る までブロックします
リソースは自由にジョブを実行できます。 もし -I (- すぐに)オプションを指定 走る 意志
リソースがすぐに利用できない場合は終了します。
リモートプロセスの開始時 走る でない限り、現在の作業ディレクトリを伝播します
--chdir=<path> が指定されている場合 path の作業ディレクトリになります
リモートプロセス。
この -NS、 -c, -N オプションは、CPU とノードがジョブにどのように割り当てられるかを制御します。 いつ
実行するプロセスの数のみを指定する -n、プロセスごとに XNUMX つの CPU のデフォルト
割り当てられます。 タスクごとに必要な CPU の数を指定することにより (-c)、複数の CPU
プロセスごとに割り当てることができます。 でノード数を指定した場合 -N, 走る 意志
割り当てようとする at 最低 指定されたノードの数。
上記の XNUMX つのオプションの組み合わせを使用して、プロセスの方法を変更できます。
ノードと CPU に分散されます。 たとえば、両方の数を指定することにより、
プロセスと実行するノードの数、ノードあたりのプロセスの数は
暗示。 ただし、プロセスごとの CPU の数がより重要な場合は、
プロセス (-n) およびプロセスあたりの CPU の数 (-c) を指定する必要があります。
走る 場合を除き、CPU ごとに複数のプロセスを割り当てることを拒否します。 --オーバーコミット (-O)であり、
も指定。
走る 上記の仕様を「最低限」満たそうとします。 つまり、16 ノードの場合
32 プロセスの要求があり、一部のノードには 2 つの CPU がないため、ノードの割り当て
CPUの需要を満たすために増加します。 言い換えれば、 最小 / 16
ノードがリクエストされています。 ただし、16 プロセスに対して 15 ノードが要求された場合、 走る 意志
15 個のノードで 16 個のプロセスを実行することはできないため、これはエラーと考えてください。
IO リダイレクション
デフォルトでは、stdout と stderr はすべてのタスクから stdout と stderr にリダイレクトされます。
of 走る、およびstdinはの標準入力からリダイレクトされます 走る すべてのリモート タスクに。
生成されたタスクのサブセットのみが stdin を読み取る場合は、読み取るファイルを指定します。
から stdin を転送するのではなく、 走る コマンドは避けるので好ましいかもしれません
読み取られることのないデータを移動および保存します。
OS X の場合、poll() 関数は stdin をサポートしていないため、端末からの入力はサポートされていません。
可能。
BGQ の場合、srun は、システムで実行されている 1 つのタスクへの stdin のみをサポートします。 デフォルトでは taskid です
0 ですが、-i で変更できます以下で説明するように、または
--launcher-opts="--stdinrank= "。
この動作は、 - 出力, - エラー, - 入力 (-o, -e, -i)オプション。
これらのオプションの有効なフォーマット仕様は次のとおりです。
を stdout stderr は、すべてのタスクから srun にリダイレクトされます。 stdin はすべてにブロードキャストされます
リモートタスク。 (これはデフォルトの動作です)
なし stdout および stderr は、どのタスクからも受信されません。 stdin はどのタスクにも送信されません
(標準入力は閉じられています)。
タスク ID stdout および/または stderr は、相対 ID が等しいタスクからのみリダイレクトされます。
タスク ID、ここで 0 <= タスク ID <= nタスクここで、 nタスク はタスクの総数です
現在のジョブ ステップで。 stdin は の stdin からリダイレクトされます 走る これに
同じタスク。 このファイルは、タスクを実行するノードに書き込まれます。
ファイル名 走る すべてのタスクから stdout および/または stderr を指定されたファイルにリダイレクトします。 標準入力
指定されたファイルからリダイレクトされ、ジョブ内のすべてのタスクにブロードキャストされます。
ファイル名 実行するホスト上のパスを指します 走る。 に応じて
クラスタのファイル システム レイアウトに依存しているため、出力が次のように表示される場合があります。
ジョブがバッチ モードで実行されるかどうかによって、場所が異なります。
形式でアーカイブしたプロジェクトを保存します. string
走る 指定された IO ファイルを生成するためにフォーマット文字列を使用できるようにします
上で説明した。 次のフォーマット指定子のリストは、
特定のジョブ ID に固有のファイル名を生成するフォーマット文字列
stepid、ノード、またはタスク。 いずれの場合も、適切な数のファイルが開かれます
対応するタスクに関連付けられています。 任意のフォーマット文字列に注意してください
%t、%n、および/または %N を含むファイルは、タスクを実行しているノードに書き込まれます
ノードではなく 走る これらのフォーマット指定子は実行されません。
BGQ システムでサポートされています。
%A ジョブ配列のマスター ジョブ割り当て番号。
%a ジョブ配列 ID (インデックス) 番号。
%J 実行中のジョブの jobid.stepid。 (例: "128.0")
%j 実行中のジョブのジョブ ID。
%s 実行中のジョブのステップ ID。
%N 短いホスト名。 これにより、ノードごとに個別の IO ファイルが作成されます。
%n 現在のジョブに関連するノード識別子 (たとえば、「0」はジョブの最初のノードです)
これにより、ノードごとに個別の IO ファイルが作成されます。
%t 現在のジョブに対するタスク識別子 (ランク)。 これにより、
タスクごとに個別の IO ファイル。
%u ユーザー名。
パーセント文字と書式指定子の間に数値を使用できます
IO ファイル名の結果をゼロで埋めます。 フォーマットが
指定子は、数値以外のデータ (%N など) に対応します。
フォーマット文字列が 4 つのタスクのジョブ ステップでどのように使用されるかの例をいくつか示します。
128 のジョブ ID と 0 のステップ ID が以下に含まれます。
job%J.out job128.0.out
job%4j.out job0128.out
job%j-%2t.out job128-00.out、job128-01.out、...
入力 ENVIRONMENT 変数
一部の srun オプションは、環境変数を介して設定できます。 これらの環境変数、
対応するオプションとともに、以下にリストされています。 注: コマンド ライン オプションは、
これらの設定は常に上書きされます。
PMI_FANOUT これは、PMI (MPICH2 および MVAPICH2) およびコントロールでのみ使用されます。
データ通信のファンアウト。 srun コマンドはメッセージを送信します
アプリケーション プログラム (PMI ライブラリ経由) およびそれらのアプリケーションへ
この数までのデータを転送するように要求される場合があります。
追加のタスク。 値を大きくすると、srun コマンドの負荷が軽減されます
アプリケーションへの脆弱性を高める可能性があります
失敗。 デフォルト値は 32 です。
PMI_FANOUT_OFF_HOST これは、PMI (MPICH2 および MVAPICH2) およびコントロールでのみ使用されます。
データ通信のファンアウト。 srun コマンドはメッセージを送信します
アプリケーション プログラム (PMI ライブラリ経由) およびそれらのアプリケーションへ
そのデータを追加のタスクに転送するように要求される場合があります。 に
デフォルトでは、srun はホストごとに XNUMX つのメッセージを送信し、そのホストで XNUMX つのタスクを送信します。
そのホスト上の他のタスクにデータを転送します PMI_FANOUT。 場合
PMI_FANOUT_OFF_HOST が定義されている場合、ユーザー タスクが必要になる場合があります。
他のホスト上のタスクにデータを転送します。 設定
PMI_FANOUT_OFF_HOST パフォーマンスが向上する場合があります。 仕事が増えるので、
ユーザー アプリケーションによってロードされた PMI ライブラリによって実行されます。
また、障害はより一般的であり、診断がより困難になる可能性があります。
PMI_TIME これは、PMI (MPICH2 および MVAPICH2) およびコントロールでのみ使用されます。
タスクから srun への通信がどれだけ分散されているか
で srun コマンドを圧倒するのを避けるために
仕事。 デフォルト値は、タスクごとに 500 (マイクロ秒) です。 の上
比較的遅いプロセッサまたは非常に大きなプロセッサを搭載したシステム
カウント (および大規模な PMI データ セット) の場合、より高い値が必要になる場合があります。
SLURM_CONF Slurm構成ファイルの場所。
SLURM_アカウント と同じ -NS、 - アカウント
SLURM_ACCTG_FREQ と同じ --acctg-freq
SLURM_BCAST と同じ --bキャスト
SLURM_BLRTS_IMAGE と同じ --blrts-画像
SLURM_BURST_BUFFER と同じ --bb
SLURM_チェックポイント と同じ -チェックポイント
SLURM_CHECKPOINT_DIR と同じ --チェックポイントディレクトリ
SLURM_CNLOAD_IMAGE と同じ --cnload-image
SLURM_CONN_TYPE と同じ --conn タイプ
SLURM_CORE_SPEC と同じ --コアスペック
SLURM_CPU_BIND と同じ --cpu_bind
SLURM_CPU_FREQ_REQ と同じ --cpu 周波数.
SLURM_CPUS_PER_TASK と同じ -NS、 --cpus-per-タスク
SLURM_DEBUG と同じ -v、 -詳細
SlurmD_DEBUG と同じ -NS、 --slurmd-debug
SLURM_DEPENDENCY -NS、 - 依存=<ジョブID>
SLURM_DISABLE_STATUS と同じ -NS、 --無効化ステータス
SLURM_DIST_PLANESIZE と同じ -m 飛行機
SLURM_DISTRIBUTION と同じ -NS、 - 分布
SLURM_EPILOG と同じ - エピローグ
SLURM_EXCLUSIVE と同じ - エクスクルーシブ
SLURM_EXIT_ERROR Slurm エラーが発生したときに生成される終了コードを指定します (例:
無効なオプション)。 これをスクリプトで区別するために使用できます。
さまざまな Slurm エラー状態からのアプリケーション終了コード。 また
SLURM_EXIT_IMMEDIATE.
SLURM_EXIT_IMMEDIATE 実行時に生成される終了コードを指定します。 - すぐに オプションがある
使用されており、リソースは現在利用できません。 これを使用できるのは、
アプリケーションの終了コードをさまざまな Slurm から区別するためのスクリプト
エラー状態。 こちらもご覧ください SLURM_EXIT_ERROR.
SLURM_GEOMETRY と同じ -NS、 -ジオメトリ
SLURM_HINT と同じ - ヒント
SLURM_GRES と同じ --gres。 また見てください SLURM_STEP_GRES
SLURM_IMMEDIATE と同じ -私、 - すぐに
SLURM_IOLOAD_IMAGE と同じ --ioload-image
SLURM_JOB_ID (と SLURM_JOBID 下位互換性のため)
と同じ --ジョブビッド
SLURM_JOB_NAME と同じ -NS、 - 職種名 既存の割り当て内を除き、
この場合、バッチ ジョブの名前を
各ジョブステップの名前。
SLURM_JOB_NUM_NODES (と SLURM_NNODES 下位互換性のため)
ジョブのリソース割り当てにおけるノードの総数。
SLURM_KILL_BAD_EXIT と同じ -K、 --不正終了時に強制終了
SLURM_LABELIO と同じ -l、 - ラベル
SLURM_LINUX_IMAGE と同じ --linux-image
SLURM_MEM_BIND と同じ --mem_bind
SLURM_MEM_PER_CPU と同じ --CPU あたりのメモリ
SLURM_MEM_PER_NODE と同じ --mem
SLURM_MLOADER_IMAGE と同じ --mloader-image
SLURM_MPI_TYPE と同じ --mpi
SLURM_NETWORK と同じ - 通信網
SLURM_NNODES と同じ -NS、 -ノード
SLURM_NO_ROTATE と同じ -NS、 -回転なし
SLURM_NTASKS (と SLURM_NPROCS 下位互換性のため)
と同じ -NS、 --ntasks
SLURM_NTASKS_PER_CORE と同じ --ntasks-per-コア
SLURM_NTASKS_PER_NODE と同じ --node ごとの ntasks
SLURM_NTASKS_PER_SOCKET
と同じ --ソケットごとのntasks
SLURM_OPEN_MODE と同じ --オープンモード
SLURM_オーバーコミット と同じ -O、 --オーバーコミット
SLURM_PARTITION と同じ -NS、 - パーティション
SLURM_PMI_KVS_NO_DUP_KEYS
設定されている場合、PMI 鍵ペアには重複する鍵が含まれません。 MPIはできる
この変数を使用して、使用しないことを PMI ライブラリに通知します。
これにより、PMI は重複キーのチェックをスキップできます。 これ
これは MPICH2 の場合であり、テストのオーバーヘッドを削減します。
パフォーマンス向上のための複製
SLURM_POWER と同じ - パワー
SLURM_PROFILE と同じ - プロフィール
SLURM_PROLOG と同じ -プロローグ
SLURM_QOS と同じ --qos
SLURM_RAMDISK_IMAGE と同じ --ramdisk-image
SLURM_REMOTE_CWD と同じ -NS、 --chdir=
SLURM_REQ_SWITCH ツリー トポロジが使用される場合、これにより、最大数が定義されます。
ジョブ割り当てに必要なスイッチ、およびオプションで最大値
その数のスイッチを待つ時間。 見る --スイッチ
SLURM_RESERVATION と同じ - 予約
SLURM_RESTART_DIR と同じ --再起動ディレクトリ
SLURM_RESV_PORTS と同じ --resv-ports
SLURM_SICP と同じ --sicp
SLURM_SIGNAL と同じ - 信号
SLURM_STDERRMODE と同じ -e、 - エラー
SLURM_STDINMODE と同じ -私、 - 入力
SLURM_SRUN_REDUCE_TASK_EXIT_MSG
設定されていてゼロ以外の場合、連続するタスク終了メッセージは同じ
終了コードは一度だけ出力されます。
SLURM_STEP_GRES と同じ --gres (ジョブの割り当てではなく、ジョブ ステップにのみ適用されます)。
また見てください SLURM_GRES
SLURM_STEP_KILLED_MSG_NODE_ID=ID
設定すると、ジョブまたはステップが実行されたときに、指定されたノードのみがログに記録されます。
信号で殺された。
SLURM_STDOUTMODE と同じ -o、 - 出力
SLURM_TASK_EPILOG と同じ --タスクエピローグ
SLURM_TASK_PROLOG と同じ --タスクプロローグ
SLURM_TEST_EXEC 定義されている場合は、実行可能プログラムの存在を確認します
計算ノードで起動する前に、ローカル コンピューターにアクセスしてください。
SLURM_THREAD_SPEC と同じ --スレッドスペック
SLURM_THREADS と同じ -NS、 -スレッド
SLURM_TIMELIMIT と同じ -NS、 - 時間
SLURM_UNBUFFEREDIO と同じ -u、 -バッファなし
SLURM_WAIT と同じ -W、 - 待つ
SLURM_WAIT4SWITCH 要求されたスイッチを待機する最大時間。 見る --スイッチ
SLURM_WCKEY と同じ -W、 --wckey
SLURM_WORKING_DIR -NS、 --chdir
出力 ENVIRONMENT 変数
srun は、実行中のタスクの環境にいくつかの環境変数を設定します。
リモート計算ノード。 これらの環境変数は次のとおりです。
SLURM_CHECKPOINT_IMAGE_DIR
次の場合にチェックポイント イメージを書き込むディレクトリ
実行行で指定します。
SLURM_CLUSTER_NAME ジョブが実行されているクラスターの名前。
SLURM_CPU_BIND_VERBOSE
--cpu_bind verbosity (quiet,verbose)。
SLURM_CPU_BIND_TYPE --cpu_bind タイプ (none,rank,map_cpu:,mask_cpu:)。
SLURM_CPU_BIND_LIST --cpu_bind マップまたはマスク リスト (このための Slurm CPU ID またはマスクのリスト
ノード、CPU_ID = Board_ID x threads_per_board + Socket_ID x
ソケットあたりのスレッド数 + コア ID x コアあたりのスレッド数 + スレッド ID)。
SLURM_CPU_FREQ_REQ srun コマンドで要求された CPU 周波数の値が含まれています
キロヘルツ単位の数値周波数、またはコード化された値として
のリクエスト 低いです, ミディアム,ハイム1 or 高いです 頻度のために。 を参照してください
の説明 --cpu 周波数 オプションまたは SLURM_CPU_FREQ_REQ
環境変数。
SLURM_CPUS_ON_NODE このノードのジョブで使用できるプロセッサの数。 注意してください
select/linear プラグインはノード全体をジョブに割り当てるため、値
ノード上の CPU の総数を示します。 のために
select/cons_res プラグイン、この数字は上のコアの数を示します
ジョブに割り当てられたこのノード。
SLURM_CPUS_PER_TASK タスクごとに要求される CPU の数。 の場合にのみ設定します。 --cpus-per-タスク
オプションが指定されています。
SLURM_DISTRIBUTION 割り当てられたジョブの分散タイプ。 で分布を設定します
-m, -- 分布。
SLURM_GTIDS このノードで実行されているグローバル タスク ID。 ゼロ原点とコンマ
分離。
SLURM_JOB_CPUS_PER_NODE
ノードあたりの CPU の数。
SLURM_JOB_DEPENDENCY --dependency オプションの値に設定します。
SLURM_JOB_ID (と SLURM_JOBID 下位互換性のため)
実行中のジョブのジョブ ID。
SLURM_JOB_NAME --job-name オプションの値またはコマンド名に設定します。
srun は、新しいジョブ割り当てを作成するために使用されます。 srun の場合は設定されません
ジョブステップを作成するためにのみ使用されます (つまり、既存のジョブ内で)
割り当て)。
SLURM_JOB_PARTITION ジョブが実行されているパーティションの名前。
SLURM_LAUNCH_NODE_IPADDR
タスクの起動が開始されたノードの IP アドレス
(srun コマンドの実行元)。
SLURM_LOCALID ジョブ内のプロセスのノード ローカル タスク ID。
SLURM_MEM_BIND_VERBOSE
--mem_bind verbosity (quiet,verbose)。
SLURM_MEM_BIND_TYPE --mem_bind タイプ (none,rank,map_mem:,mask_mem:)。
SLURM_MEM_BIND_LIST --mem_bind マップまたはマスク リスト ( )。
SLURM_NNODES ジョブのリソース割り当て内のノードの合計数。
SLURM_NODE_ALIASES ノードのノード名、通信アドレス、ホスト名のセット
クラウドからジョブに割り当てられます。 セット内の各要素
コロンで区切られ、各セットはカンマで区切られています。 例えば:
SLURM_NODE_ALIASES=ec0:1.2.3.4:foo,ec1:1.2.3.5:bar
SLURM_NODEID 現在のノードの相対ノード ID。
SLURM_NODELIST ジョブに割り当てられたノードのリスト。
SLURM_NTASKS (と SLURM_NPROCS 下位互換性のため)
現在のジョブのプロセスの総数。
SLURM_PRIO_PROCESS ジョブ投入時のスケジューリング優先度 (適切な値)。
この値は、生成されたプロセスに伝播されます。
SLURM_PROCID 現在のプロセスの MPI ランク (または相対プロセス ID)。
SLURM_SRUN_COMM_HOST srun 通信ホストの IP アドレス。
SLURM_SRUN_COMM_PORT srun 通信ポート。
SLURM_STEP_LAUNCHER_PORT
ステップランチャーポート。
SLURM_STEP_NODELIST ステップに割り当てられたノードのリスト。
SLURM_STEP_NUM_NODES ステップに割り当てられたノードの数。
SLURM_STEP_NUM_TASKS ステップ内のプロセス数。
SLURM_STEP_TASKS_PER_NODE
ステップ内のノードあたりのプロセス数。
SLURM_STEP_ID (と SLURM_STEPID 下位互換性のため)
現在のジョブのステップ ID。
SLURM_SUBMIT_DIR ディレクトリ 走る 呼び出されました。
SLURM_SUBMIT_HOST 送信元のコンピュータのホスト名 サロック 呼び出されました。
SLURM_TASK_PID 開始されるタスクのプロセス ID。
SLURM_TASKS_PER_NODE 各ノードで開始されるタスクの数。 値はコンマです
分離され、SLURM_NODELIST と同じ順序になります。 XNUMXつ以上の場合
連続するノードは同じタスク数を持つ必要があり、その数は
「(x#)」が続きます。ここで、「#」は繰り返し回数です。 例えば、
「SLURM_TASKS_PER_NODE=2(x3),1」は、最初の XNUMX つのノードが
それぞれが XNUMX つのタスクを実行し、XNUMX 番目のノードが XNUMX つを実行します
タスク。
SLURM_TOPOLOGY_ADDR これは、システムにトポロジー/ツリー プラグインがある場合にのみ設定されます。
構成されています。 値は名前のネットワーク スイッチに設定されます
システムからのジョブの通信に関与する可能性がある
最上位スイッチからリーフ スイッチまで、ノード名で終わります。
各ハードウェア コンポーネント名を区切るためにピリオドが使用されます。
SLURM_TOPOLOGY_ADDR_PATTERN
これは、システムにトポロジー/ツリー プラグインがある場合にのみ設定されます。
構成されています。 値は、にリストされているコンポーネント タイプに設定されます。
SLURM_TOPOLOGY_ADDR. 各コンポーネントは、次のいずれかとして識別されます。
「スイッチ」または「ノード」。 各ハードウェアを区切るためにピリオドが使用されます
コンポーネントタイプ。
SRUN_DEBUG のログ レベルに設定します。 走る 指図。 デフォルト値は 3 です
(情報レベル)。 値は、に基づいて増加または減少します。
--verbose および --quiet オプション。
MPIRUN_NOALLOCATE Blue Gene システムのみにブロックを割り当てないでください。
MPIRUN_NOFREE Blue Gene システムのみでブロックを解放しないでください。
MPIRUN_PARTITION Blue Gene システムのみのブロック名。
信号 そして エスケープ シーケンス
に送信される信号 走る コマンドがタスクに自動的に転送されます。
いくつかの例外を除いて制御します。 エスケープシーケンス 状態を報告します
に関連付けられているすべてのタスクの 走る 指図。 もしも XNUMX回の内にXNUMX回入力されます
次に、関連する SIGINT シグナルがすべてのタスクに送信され、終了します。
生成されたすべてのタスクに SIGCONT、SIGTERM、および SIGKILL を送信するシーケンスに入ります。 もし
三番 を受信すると、srun プログラムは待機せずに終了します。
リモート タスクを終了するか、その I/O を完了します。
エスケープシーケンス は現在無視されています。 私たちの意図は、これを置くことです 走る
コマンドを実行して、さまざまな特別なアクションを実行できるモードにします。
のMPI サポート
MPI の使用は、使用されている MPI のタイプによって異なります。 根本的に違うのはXNUMXつ
これらのさまざまな MPI 実装で使用される操作モード。
1. Slurm がタスクを直接起動し、通信の初期化を実行します。
(Quadrics MPI、MPICH2、MPICH-GM、MVAPICH、MVAPICH2、および一部の MPICH1 モード)。 例えば:
「srun -n16 a.out」。
2. Slurm がジョブのリソース割り当てを作成し、mpirun が以下を使用してタスクを起動します。
Slurm のインフラストラクチャ (OpenMPI、LAM/MPI、HP-MPI、および一部の MPICH1 モード)。
3. Slurm がジョブのリソース割り当てを作成し、mpirun が以下を使用してタスクを起動します。
SSH や RSH (BlueGene MPI および一部の MPICH1 モード) など、Slurm 以外のメカニズム。
これらのタスクは、Slurm の監視または制御の外部で開始されました。 Slurm のエピローグは
ジョブの割り当てが放棄されたときにこれらのタスクをパージするように構成されています。
見る http://slurm.schedmd.com/mpi_guide.html これらのさまざまな使用方法の詳細については、
Slurm を使用した MPI の実装。
複数 プログラム CONFIGURATION
構成ファイル内のコメントには、XNUMX 列目に「#」が必要です。 構成ファイル
空白で区切られた次のフィールドが含まれます。
タスクランク
この構成を使用するための XNUMX つ以上のタスク ランク。 複数の値にはコンマを使用できます
分離した。 範囲は、「-」で区切られた XNUMX つの数字で示されます。
小さい方の数字が最初に表示されます (たとえば、「0-4」ではなく「4-0」)。 ないすべてのタスクを示すには
それ以外の場合は、ファイルの最後の行として「*」のランクを指定します。 もし
実行可能プログラムが定義されていないタスクを開始しようとすると、
次のエラー メッセージが生成されます。
仕事"。
実行可能ファイル
実行するプログラムの名前。 必要に応じて、完全修飾パス名にすることもできます。
Arguments
プログラムの引数。 式「%t」はタスクの番号に置き換えられます。
式 "%o" は、この範囲内のタスクのオフセットに置き換えられます (例:
「1-5」の構成されたタスクランク値は、「0-4」のオフセット値を持ちます)。 独身
囲まれた値が解釈されないようにするために、引用符を使用できます。 このフィールドは
オプション。 コマンドラインに入力されたプログラムの引数はすべて追加されます
構成ファイルで指定された引数に。
例:
################################################ ##################################
# srun 複数プログラム設定ファイル
#
# srun -n8 -l --multi-prog sick.conf
################################################ ##################################
4-6 ホスト名
1,7 エコー タスク:%t
0,2-3 エコー オフセット:%o
> srun -n8 -l --multi-prog silly.conf
0: オフセット:0
1: タスク:1
2: オフセット:1
3: オフセット:2
4: linux15.llnl.gov
5: linux16.llnl.gov
6: linux17.llnl.gov
7: タスク:7
例
この簡単な例は、コマンドの実行を示しています hostname XNUMXつのタスクで。 で
少なくとも XNUMX つのプロセッサが (タスク数と同じ) ジョブに割り当てられます。
ただし、要求を満たすには多くのノードが必要です。 各タスクの出力は次のようになります。
タスク番号を続行しました。 (以下の例のマシン「dev」には合計
ノードごとに XNUMX つの CPU)
> srun -n8 -l ホスト名
0: dev0
1: dev0
2: dev1
3: dev1
4: dev2
5: dev2
6: dev3
7: dev3
スラン -r オプションは、ジョブ スクリプト内で使用され、ばらばらのノードで XNUMX つのジョブ ステップを実行します。
次の例。 スクリプトは、バッチ ジョブとしてではなく、割り当てモードを使用して実行されます。
この場合。
> 猫のテスト.sh
#!/bin/sh
エコー $SLURM_NODELIST
srun -lN2 -r2 ホスト名
srun -lN2 ホスト名
> salloc -N4 test.sh
開発[7-10]
0: dev9
1: dev10
0: dev7
1: dev8
次のスクリプトは、割り当てられた一連のノード内で XNUMX つのジョブ ステップを並行して実行します。
> 猫のテスト.sh
#!/bin/bash
srun -lN2 -n4 -r 2 スリープ 60 &
srun -lN2 -r 0 スリープ 60 &
スリープ1
スキュー
スクー -s
wait
> salloc -N4 test.sh
JOBID パーティション名 ユーザー ST 時間 ノード ノードリスト
65641 バッチ test.sh グロンド R 0:01 4 dev[7-10]
STEPID パーティション ユーザー時間 ノードリスト
65641.0 バッチ グロンド 0:01 dev[7-8]
65641.1 バッチ グロンド 0:01 dev[9-10]
この例は、単純な MPICH ジョブを実行する方法を示しています。 を使用しております 走る を構築する
使用するマシン (ノード) のリスト ムピルン 必要な形式で。 サンプルコマンド
行と実行するスクリプトが続きます。
> 猫のテスト.sh
#!/bin/sh
MACHINEFILE="nodes.$SLURM_JOB_ID"
# ホストが同じ場所にあるような mpich の Machinefile を生成します
# srun 経由で実行されているかのように注文する
#
srun -l /bin/ホスト名 | | 並べ替え -n | awk '{print $2}' > $MACHINEFILE
# 生成された Machine ファイルを使用して実行:
mpirun -np $SLURM_NTASKS -machinefile $MACHINEFILE mpi-app
rm $MACHINEFILE
> salloc -N2 -n4 test.sh
この簡単な例は、異なるノードでの異なるジョブの実行を示しています。
同じスラン。 これは、任意の数のノードまたは任意の数のジョブに対して行うことができます。 の
実行可能ファイルは、SLURM_NODEID 環境変数によって配置されたノードに配置されます。 0から始まり、
srun コマンドラインで指定された番号に移動します。
> 猫のテスト.sh
$SLURM_NODEID の場合
0) echo "実行中です"
ホスト名;;
1) ホスト名
echo "私が走っているところです" ;;
ESAC
> srun -N2 test.sh
dev0
私が走っているところです
私は走っています
dev1
この例では、マルチコア オプションを使用してタスクのレイアウトを制御する方法を示します。 私達
ノードごとに XNUMX つのソケットとソケットごとに XNUMX つのコアをジョブ専用にするように要求します。
> srun -N2 -B 4-4:2-2 a.out
この例は、Slurm を使用してリソース管理を提供するスクリプトを示しています。
プロセッサが専用に使用できるようになると、さまざまなジョブ ステップを実行してジョブを実行します。
使用しています。
> cat my.script
#!/bin/bash
srun --exclusive -n4 prog1 &
srun --exclusive -n3 prog2 &
srun --exclusive -n1 prog3 &
srun --exclusive -n1 prog4 &
wait
コピー
Copyright(C)2006-2007カリフォルニア大学の摂政。 ローレンスで制作
リバモア国立研究所(免責事項を参照)。
Copyright(C)2008-2010 Lawrence Livermore NationalSecurity。
Copyright(C)2010-2015 SchedMDLLC。
このファイルは、リソース管理プログラムであるSlurmの一部です。 詳細については、を参照してください。
<http://slurm.schedmd.com/>.
Slurmはフリーソフトウェアです。 あなたはそれを再配布および/またはそれを変更することができます
Free SoftwareFoundationによって発行されたGNUGeneral Public License; いずれかのバージョン2
ライセンスの、または(オプションで)それ以降のバージョン。
Slurmは、それが役立つことを期待して配布されていますが、いかなる保証もありません。 それなし
商品性または特定の目的への適合性の黙示の保証ですら。 を参照してください
詳細については、GNU General Public License。
onworks.net サービスを使用して srun online を使用する