一般信息
问:什么是 Amazon Batch?
Amazon Batch 是一系列批处理管理功能,能够让开发人员、科学家和工程师轻松高效地在 亚马逊云科技上运行数十万个批处理计算作业。Amazon Batch 根据提交的批处理作业的数量和特定资源要求,动态预置计算资源的最佳数量和类型(例如,CPU 或内存优化型实例)。借助 Amazon Batch,您无需安装和管理批量计算软件或服务器集群,从而可以专注于分析结果和解决问题。Amazon Batch 使用 Amazon EC2 和 Spot 实例来规划、安排和执行批量计算工作负载。
问:什么是批量计算?
批量计算是指在一台或多台计算机上无需人工干预而执行一系列程序(“作业”)的流程。输入参数可通过脚本、命令行参数、控制文件或作业控制语言进行预定义。给定的批处理作业可能会取决于先前作业的完成情况或特定输入的可用性,从而使多项作业的排序和安排变得至关重要,并且与交互式处理不兼容。
- 可将处理作业的时间转换到有更大或更加实惠的可用容量的时段。
- 可避免计算资源闲置,而且无需频繁地进行人工干预和监管。
- 可提高计算资源的使用率,从而提高效率。
- 支持按优先级对作业排序,从而使资源分配与业务目标保持一致。
为什么选择 Amazon Batch
问:为什么应使用 Amazon Batch?
Amazon Batch 可执行作业和管理计算资源,从而让您能够集中精力开发应用程序或分析结果,而不是设置和管理基础设施。如果您正在考虑运行批处理工作负载或将其迁移到 亚马逊云科技,则应该考虑使用 Amazon Batch。
问:Amazon Batch 针对哪些使用案例进行了优化?
Amazon Batch 针对能够通过并行执行多项作业来进行扩展的批量计算和应用程序进行了优化。深度学习、基因组学分析、金融风险模型、蒙地卡罗模拟、动画渲染、媒体转码、图像处理和工程模拟都是批量计算应用程序的绝佳示例。
功能
问:Amazon Batch 有哪些主要功能?
Amazon Batch 可以管理计算环境和作业队列,从而使您能够使用 Amazon EC2 和 EC2 Spot 实例轻松运行数千项任意规模的作业。您只需定义批处理作业并将其提交到队列中即可。在作出响应时,AWAmazon S Batch 可选择在何处运行作业,从而在需要时启动其他 亚马逊云科技容量。Amazon Batch 会严密监控您的作业进度。当您不再需要容量时,Amazon Batch 会将其删除。借助 Amazon Batch,您还可以提交属于管道或工作流程一部分的作业,从而使您能够在提交作业时说明各项作业之间存在的依赖关系。
问:Amazon Batch 支持哪些类型的批处理作业?
Amazon Batch 支持可作为 Docker 容器执行的任何作业。作业会指定其内存要求和 vCPU 数量。
问:什么是计算资源?
Amazon Batch 计算资源是一种 EC2 实例。
问:什么是计算环境?
Amazon Batch 计算环境是一个计算资源集合,作业将在这些资源上执行。Amazon Batch 支持两类计算环境:由 亚马逊云科技预置和管理的托管计算环境和由客户管理的非托管计算环境。非托管计算环境可提供一个便于利用专用资源(如专用主机、更大的存储配置和 Amazon EFS)的机制。
问:什么是作业定义?
作业定义描述了需要执行的作业、参数、环境变量、计算要求以及用于优化作业执行的其他信息。作业定义是在提交作业之前定义的,并且您可以与他人共享该定义。
问:什么是 Amazon ECS 代理?Amazon Batch 如何使用它?
Amazon Batch 使用 Amazon ECS 来执行容器化作业,因此要求您的 Amazon Batch 计算环境中的计算资源上必须安装有 ECS 代理。托管计算环境中预安装了 ECS 代理。
问:Amazon Batch 如何让您能够更轻松地使用 EC2 Spot 实例?
Amazon Batch 计算环境由 EC2 Spot 实例组成。在创建托管计算环境时,只需指定您想使用 EC2 Spot 实例,并提供您愿意支付的按需定价百分比,Amazon Batch 将负责其余工作。非托管计算环境还可以包含您启动的 Spot 实例,其中包括 EC2 Spot 队列启动的实例。
定价
问:Amazon Batch 如何定价?
使用 Amazon Batch 无需支付额外费用。您只需为您创建的用于存储和运行批处理作业的 亚马逊云科技资源(例如 EC2 实例)付费。
GPU 安排
问:是否可以将加速器与 Amazon Batch 配合使用?
是的,您可以使用 Batch 指定作业所需的加速器数量和类型作为作业定义输入变量,还可以指定当前的 vCPU 和内存选项。Amazon Batch 将根据所需的加速器扩展适合您作业的实例,并根据每个作业的需求隔离加速器,因此只有合适的容器才能访问它们。
问:为什么应该将加速器与 Amazon Batch 配合使用?
通过将加速器与 Batch 配合使用,您可以根据加速器需求动态安排和预置作业,Batch 将确保为您的作业预留适量加速器。Batch 将在您需要 EC2 加速实例时对其进行扩展,并在您完成操作后缩减它们,使您可以专注于您的应用程序。Batch 与 EC2 Spot 进行了原生集成,这意味着使用加速实例时,加速作业的成本可以节省高达 90%。
问:哪些加速器可以与 Amazon Batch 配合使用?
您目前可以在 P 加速实例上使用 GPU。
问:如何将需要加速实例的作业提交到 Batch?
您可以在“作业定义”中指定加速器的数量和类型。您可以通过描述加速器类型(例如,GPU – 目前支持的唯一一种加速器)以及您的作业所需的那种加速器的数量来指定加速器。指定的加速器类型必须存在于计算环境中指定的某个实例类型上。例如,如果您的作业需要 2 个 GPU,您还要确保在计算环境中指定了 P 系列实例。
来自 API:
{
"containerProperties": {
"vcpus": 1,
"image": "nvidia/cuda:9.0-base",
"memory": 2048,
"resourceRequirements" : [
{
"type" : "GPU",
"value" : "1"
}
],
问:提交作业时是否可以覆盖作业定义中的加速器变量?
与 vCPU 和内存要求类似,您可以在提交作业时覆盖加速器的数量和类型。
问:加速实例可以用于不需要加速器的作业吗?
考虑到目前的行为,在可能的情况下,Batch 将避免安排不需要加速实例加速的作业。这是为了避免长时间运行的作业占用加速实例而不利用加速器,从而增加成本。在极少数情况下,使用 Spot 定价并将加速实例作为允许类型时,Batch 可能会确定加速实例是运行作业的最便宜方式,无论加速器需求如何。
如果您将作业提交给仅允许 Batch 启动加速实例的 CE,则 Batch 将在这些实例上运行作业,而不管其加速器需求如何。
问:Batch 如何使用经过 ECS GPU 优化的 AMI?
从现在开始, p 类型实例将默认启动经过 ECS GPU 优化的 AMI。此 AMI 包含运行基于 GPU 的应用程序所需的库和运行时。创建 CE 时,您始终可以根据需要指向自定义 AMI。
入门
问:如何开始使用?
请按照我们文档中的“入门指南”开始使用。
问:需要预置哪些内容才能开始使用?
您无需手动启动自己的计算资源即可开始使用。Amazon Batch Web 控制台将指导您完成首个计算环境和作业队列的创建流程,以便您可以提交第一项作业。计算环境中的资源将在其他作业可运行时进行扩展,并随着可运行作业数量的减少而缩减。
了解有关何时应该使用 Amazon Batch 的更多信息