マルチノードの並列ジョブ
マルチノードの並列ジョブでは、複数の Amazon EC2 インスタンスにまたがる単一のジョブを実行できます。AWS Batch のマルチノード並列ジョブ (ギャングスケジューリングとも呼ばれる) では、Amazon EC2 リソースを直接起動、設定、管理する必要なく、ラージスケールで密結合された高パフォーマンスのコンピューティングアプリケーションと分散された GPU モデルトレーニングを実行できます。1つの AWS Batch マルチノード並列ジョブは、IPベースのノード間通信をサポートするあらゆるフレームワークと互換性があります。例としては、アパッチMXネット(Apache MXNet)、TensorFlow、Caffe2、メッセージパッシングインターフェイス (MPI) などがあります。
マルチノードの並行ジョブは、単一のジョブとして送信されます。ただし、ジョブ定義 (あるいは、ジョブ送信ノードの上書き) は、ジョブに作成するノードの数および作成するノードグループを指定します。各マルチノードの並列ジョブには主要なノードが含まれ、まずこれが起動されます。主要なノードが確立したら、子ノードが起動されて開始します。ジョブは、メインノードが終了した場合にのみ終了します。その後、すべての子ノードが停止します。詳細については、ノードグループを参照してください。
マルチノードの並列ジョブは、シングルテナントです。つまり、各 Amazon EC2 インスタンスごとに、単一のジョブコンテナのみが実行されます。
最終的なジョブステータス (SUCCEEDED
あるいは FAILED
) は、主要なノードの最終的なジョブステータスによって決定されます。マルチノードの並列ジョブのステータスを取得するには、ジョブの送信時に返されるジョブ ID を使用して、ジョブを記述できます。子ノードの詳細が必要な場合には、各子ノードごとに個別に記述する必要があります。ノードは #
表記を使用して対処されます (0 から開始)。たとえば、ジョブの 2 番目のノードの詳細にアクセスするには、AWS Batch DescribeJobs API アクションを使用してN
aws_batch_job_id
#1 と記述する必要があります。マルチノードの並列ジョブの started
、stoppedAt
、statusReason
、exit
情報は、主要なノードから入力されます。
ジョブの再試行を指定した場合、メインノードに障害が発生すると、別の試行が行われます。子ノードに障害が発生しても、再試行回数は発生しません。マルチノードの並列ジョブの新しい試行ごとに、関連付けられた子ノードに対応する試行が更新されます。
AWS Batch でマルチノードの並列ジョブを実行するには、アプリケーションコードに分散された通信に必要なフレームワークとライブラリが含まれている必要があります。