多节点并行作业 - Amazon Batch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

多节点并行作业

利用多节点并行作业,您能够跨多个 Amazon EC2 实例运行单个作业。借助 Amazon Batch 多节点并行作业(也称为分组调度),您可以运行大规模、高性能计算应用程序和分布式 GPU 模型训练,而无需直接启动、配置和管理 Amazon EC2 资源。Amazon Batch 多节点并行作业与任何支持基于 IP 的节点间通信的框架兼容。示例包括 Apache MxNet、TensorFlow、Caffe2 或消息传递接口 (MPI)。

多节点并行作业可作为单个作业提交。不过,作业定义(或作业提交节点覆盖)指定了要为作业创建的节点数量,以及要创建的节点组。每个多节点并行作业都包含一个主节点,这是最先启动的节点。主节点启动之后,子节点会启动并开始运行。只有当主节点退出时,作业才会完成。然后停止所有子节点。有关更多信息,请参阅 节点组

多节点并行作业节点为单租户。这意味着,在每个 Amazon ECS 实例上只运行一个作业容器。

最终的作业状态(SUCCEEDEDFAILED)由主节点的最终作业状态决定。要获取多节点并行作业的状态,可以使用提交作业时返回的作业 ID 来描述作业。如果需要子节点的详细信息,则必须分别描述每个子节点。您可以使用 #N 表示法(从 0 开头)对节点进行寻址。例如,要访问作业的第二个节点的详细信息,请使用Amazon Batch DescribeJobs API 操作描述 aws_batch_job_id#1。多节点并行作业的 startedstoppedAtstatusReasonexit 信息从主节点进行填充。

如果指定作业重试次数,则主节点故障会导致再次尝试重试。子节点故障不会导致更多的尝试发生。多节点并行作业每次新的尝试都将更新其关联子节点的相应尝试。

要在 Amazon Batch 上运行多节点并行作业,应用程序代码必须包含进行分布式通信所需的框架和库。