翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
PCS でのカスタム GRES AWS 設定の構成
Slurm は gres.conf を使用して、コンピューティングノード上の GPUs、マルチプロセスサービス (MPS)、マルチインスタンス GPU (MIG) デバイスなどの汎用リソース (GRES) を管理します。 AWS PCS では、コンピューティングノードグループの作成または更新slurmConfiguration中に の gresCustomSettingsプロパティgres.confを使用してカスタマイズできます。
パラメータと値のペアのフラットリストである他のカスタム設定とは異なり、 gresCustomSettingsはレコードのリストです。各レコードは、1 つの GRES デバイスまたはリソースを記述する一連のgres.conf属性です。たとえば、レコードは 8 つの A100 GPU をName=gpu Type=a100 File=/dev/nvidia[0-7]宣言します。 GPUs
Slurm では、NodeName=プレフィックスを指定しない限り、gres.confレコードはクラスター内のすべてのノードに適用されます。 AWS PCS は常にコンピューティングノードグループのNodeName=プレフィックスを追加するため、指定せず、指定したすべてのレコードはそのコンピューティングノードグループにのみ適用されます。 AWS PCS はクラスター全体のgres.confレコードをサポートしていません。
gres.conf の設定
gres.conf カスタム設定は、コンピューティングノードグループの作成時に AWS コンソール、CLI、または SDKs を使用して設定することも、更新オペレーションを通じて後で変更することもできます。
コンピューティングノードグループでサポートされている gres.conf 設定
コンピューティングノードグループレベルの各レコードでは、次のgres.conf属性がサポートされています。
-
注記
AWS PCS は Slurm バージョン 25.11 以降
AutoDetectで をサポートします。
各属性の意味と許容される値については、Slurm gres.confAutoDetectを検出MultipleFilesしない限り、各レコードは NameまたはアクティブなAutoDetect値を宣言し、GPU レコード (Name=gpu) は Fileまたは を指定する必要があります。
アクティブなAutoDetect値は、 nvmlや など、検出をオンにする任意の値ですfull。 はAutoDetect=off検出をオフにするため、アクティブな値ではなく、レコード内で単独で立つことはできません。
PCS AWS が gres.conf レコードを適用する方法
GRES 設定は Slurm 設定の 2 つの場所に表示され、PCS AWS は両方を書き込みます。
-
で指定する
gres.confレコードは、ノードに存在するデバイスをgresCustomSettings記述します。 -
の
Gres設定は、スケジューラが割り当てることができるものを 形式でslurm.conf宣言しますname[:type]:count。で、コンピューティングノードグループのカスタム Slurm 設定として指定しますslurmCustomSettings。詳細については、「PCS コンピューティングノードグループのカスタム Slurm AWS 設定」を参照してください。
AWS PCS はレコードを にレンダリングgres.confし、管理する GRES 設定と照合します。
-
宣言した GPU レコードは、PCS がコンピューティングノードグループに対して生成するデフォルトの GPU AWS レコードを置き換えます。GPU レコードは、
Name=gpuまたはAutoDetect属性を指定するレコードです。 -
mps、、shardまたは独自のリソース名などの他のリソースのレコードは、PCS AWS のデフォルトとともに追加されます。 -
AWS PCS は、
GresTypes設定とAccountingStorageTRESの設定のgres/*エントリをGres設定slurm.confから取得します。
Slurm バージョン 26.05 以降では、 AWS コンピューティングノードグループに Socketsを設定した、または PCS が CPU トポロジを自動的に検出したために、ノードslurmCustomSettingsのソケットレイアウトがわかっている場合、PCS は GPU AWS コンピューティングノードグループにAutoDetect=fullデフォルトで を設定します。ソケットレイアウトが使用できない場合、 AWS PCS はAutoDetect代わりに なしで GPU レコードを出力します。
gres.conf と Gres 設定の間の制約
Slurm はリソースをスケジュールするために GRES 設定の両側を必要とし、そのうちの 1 つだけに表示されるリソースは機能しません。の Gres設定にgres.confレコードslurm.confがないエントリがあると、ノードレポートは設定されているリソースよりも少なくなり、ノードはドレインします。Gres エントリのないレコードは、デバイスをノードに残しますが、スケジュールできません。
AWS PCS は、コンピューティングノードグループを作成または更新するときに 2 つを相互に検証し、次の場合にリクエストを拒否します。
-
slurm.confGresエントリは、gres.confレコードが宣言しないリソースに名前を付けます。これには が含まれますgpu。gpuエントリには、カウントが であってもgresCustomSettings、 に GPU レコードが必要です0。 -
slurm.confGresエントリは、gres.confレコードが宣言する数よりも多くのリソースを宣言します。低いカウントは まで許可されます0。gres.confレコードはノードに存在するデバイスを記述し、 はスケジューラが割り当てることができるデバイスの数をGres宣言します。 -
slurm.confGresエントリは、 で GPU レコードがgres.conf宣言されない GPU タイプを指定します。
最後の 2 つのチェックは、レコードの宣言内容によって異なります。 AWS PCS は、ノードの起動時に Slurm が検出したデバイスをカウントできないため、 のみを有効にするレコードは、Gresエントリの任意のgpuカウントとタイプAutoDetectを受け入れます。これは、MIG プロファイルが検証に合格する方法です。 AWS PCS は、共有 GRES (mps および shard) のカウントチェックもスキップし、GPU レコードが を宣言しない場合にタイプチェックをスキップしますType。
AWS PCS は、一致するGresエントリがないレコードを受け入れます。リソースはノードに存在しますが、ジョブはリクエストできません。Gres エントリを追加して、スケジュール可能にします。
重要
AWS PCS は、レコードの構文と Gres設定との整合性を検証します。ハードウェアに対して検証されません。File、Cores、または Linksレイアウトがブートノードのデバイスと一致しないレコードは、ノードをドレインします。MIG にも同じことが当てはまります。 で宣言するプロファイルは、ノードで設定されたプロファイルと一致するGres必要があります。ドレインされたノードの診断の詳細については、「」を参照してくださいPCS での無効なノード登録 (INVALID_REG) AWS のトラブルシューティング。