"AWSBatch" (批处理计算服务商)
详细信息
AWS Batch 根据每个作业的 vCPU 计数要求将作业打包到实例中. 多个作业可以在单个 EC2 实例上同时执行,每个作业在专用 Docker 容器中运行.
作业设置
"GPUCount" | Inherited | GPU 的整数数量 » | |
"Memory" | Automatic | "InformationUnit" 数量或整数兆字节 » | |
"VCPUCount" | Inherited | vCPU 的整数数量 » |
"GPUCount"、"Memory" 和 "VCPUCount" 设置的 Inherited 值对应由提供的 RemoteBatchSubmissionEnvironment 对象指定的 AWS Batch 作业定义中的值.
在使用 RemoteBatchSubmit 提交的 "Single" 类型作业中,ParallelEvaluate 和 ParallelMap 等函数将自动启动与 "VCPUCount" 设置值等效的多个子内核. 可以通过使用明确数量的内核调用 LaunchKernels 来覆盖此行为.
使用 "AWSBatch" 提供程序时,RemoteBatchSubmit 和 RemoteBatchMapSubmit 的 TimeConstraint 选项的值必须至少为 60 秒. TimeConstraint 选项默认为正在使用的作业定义中的 "Execution timeout"(执行超时)值.
作业状态
"Submitted" | 已提交的 AWS Batch 调度程序尚未评估的作业 | |
"Pending" | 作业正在等待依赖关系得到满足 | |
"Runnable" | 作业正在等待可用的计算资源 | |
"Starting" | 该作业已安排到一个实例,并且正在下载其容器映像 | |
"Running" | 作业的容器已启动 | |
"Succeeded" | 作业执行成功,其输出已上传 | |
"Failed" | 作业执行失败 |
AWS Batch 文档中提供了有关作业状态的更多信息.
作业属性
"JobExitCode" | 作业容器中内核返回的退出代码 | |
"JobLog" | 来自作业容器的控制台日志 | |
"JobStatusReason" | 描述作业处于当前状态的原因的字符串 | |
"ProviderJobID" | AWS 为作业提供的唯一标识符 |
"ChildJobExitCodes" | 每个阵列子作业的 "JobExitCode" 属性 | |
"ChildJobStatusReasons" | 每个阵列子作业的 "JobStatusReason" 属性 | |
"JobStatusReason" | 描述阵列作业处于其当前状态的原因的字符串 | |
"ProviderJobID" | AWS 为阵列作业提供的唯一标识符 |
"JobExitCode" | 作业容器中内核返回的退出代码 | |
"JobLog" | 来自子作业容器的控制台日志 | |
"JobStatusReason" | 描述子作业处于当前状态的原因的字符串 | |
"ProviderJobID" | AWS-provided unique identifier for the child job |
表示已过期作业的 RemoteBatchJobObject 表达式无法查询状态,并且不会被 RemoteBatchJobs 列出. 过期作业的输出数据将保留在 Amazon S3 中,并可从 RemoteBatchJobObject 访问,直到被存储桶的生命周期策略手动删除或过期.
范例
打开所有单元关闭所有单元基本范例 (2)
在按照设置 AWS Batch 计算提供程序工作流程中所述配置 "AWSBatch" 批处理计算提供程序后,创建一个 "AWSBatch" RemoteBatchSubmissionEnvironment 对象:
使用明确指定的 "AWS" 服务对象创建环境对象:
作业设置 (4)
作业属性 (2)
"Single" 作业 (1)
"Array" 和 "ArrayChild" 作业 (1)
使用 RemoteBatchMapSubmit 将阵列作业提交到 AWS Batch:
获取代表第一个子作业的 RemoteBatchJobObject 表达式:
属性和关系 (1)
如果作业被 RemoteBatchJobAbort 终止,"JobStatusReason" 属性的值将指示终止请求源自 Wolfram 语言: