

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# MNP 作业的作业生命周期
<a name="job-lifecycle"></a>

当您提交多节点并行作业时，该作业会进入 `SUBMITTED` 状态。然后，该作业会等待任何作业依赖关系完成。作业也会变为 `RUNNABLE` 状态。最后 AWS Batch ，配置运行任务所需的实例容量并启动这些实例。

每个多节点并行作业都包含一个**主节点**。主节点是单个子任务， AWS Batch 用于监控以确定已提交的多节点作业的结果。主节点将第一个启动，并进入 `STARTING` 状态。`attemptDurationSeconds` 参数中指定的超时值适用于整个作业，而不适用于节点。

当主节点达到 `RUNNING` 状态时（节点的容器运行之后），子节点将启动，也进入 `STARTING` 状态。子节点的启动顺序是随机的。子节点启动的时机或顺序无法保证。要确保作业的所有节点都处于 `RUNNING` 状态（节点的容器运行之后），应用程序代码可以查询 AWS Batch API 来获取主节点和子节点信息。或者，应用程序代码可以等到所有节点都联机后再开始任何分布式处理任务。主节点的私有 IP 地址可作为 `AWS_BATCH_JOB_MAIN_NODE_PRIVATE_IPV4_ADDRESS` 环境变量，用在每个子节点中。应用程序代码可以使用此信息，在每个任务之间协调和传输数据。

各个节点在退出后，将进入 `SUCCEEDED` 或 `FAILED` 状态，具体取决于其退出代码。如果主节点退出，则作业将视为已完成，并且所有子节点将停止。如果子节点死亡，则 AWS Batch 不会对任务中的其他节点执行任何操作。如果节点数量减少后不希望作业继续，那么必须在应用程序代码中考虑此因素。这样做会终止或取消作业。