多节点并行作业
利用多节点并行作业,您能够跨多个 Amazon EC2 实例运行单个作业。借助 Amazon Batch 多节点并行作业(也称为分组调度),您可以运行大规模、高性能计算应用程序和分布式 GPU 模型训练,而无需直接启动、配置和管理 Amazon EC2 资源。Amazon Batch 多节点并行作业与任何支持基于 IP 的节点间通信的框架兼容。示例包括 Apache MxNet、TensorFlow、Caffe2 或消息传递接口 (MPI)。
多节点并行作业可作为单个作业提交。不过,作业定义(或作业提交节点覆盖)指定了要为作业创建的节点数量,以及要创建的节点组。每个多节点并行作业都包含一个主节点,这是最先启动的节点。主节点启动之后,子节点会启动并开始运行。只有当主节点退出时,作业才会完成。然后停止所有子节点。有关更多信息,请参阅 节点组。
多节点并行作业节点为单租户。这意味着,在每个 Amazon ECS 实例上只运行一个作业容器。
最终的作业状态(SUCCEEDED
或 FAILED
)由主节点的最终作业状态决定。要获取多节点并行作业的状态,可以使用提交作业时返回的作业 ID 来描述作业。如果需要子节点的详细信息,则必须分别描述每个子节点。您可以使用 #
表示法(从 0 开头)对节点进行寻址。例如,要访问作业的第二个节点的详细信息,请使用Amazon Batch DescribeJobs API 操作描述 N
aws_batch_job_id
#1。多节点并行作业的 started
、stoppedAt
、statusReason
和 exit
信息从主节点进行填充。
如果指定作业重试次数,则主节点故障会导致再次尝试重试。子节点故障不会导致更多的尝试发生。多节点并行作业每次新的尝试都将更新其关联子节点的相应尝试。
要在 Amazon Batch 上运行多节点并行作业,应用程序代码必须包含进行分布式通信所需的框架和库。