查看计算实例和集群配置

本文档介绍了在创建 Compute Engine 实例和集群之前需要考虑的 AI Hypercomputer 配置。查看可用配置有助于优化工作负载的性能,并最大限度地减少停机时间和性能问题。

计算实例和集群创建的配置因素

在创建计算实例和集群来运行工作负载之前,请考虑要使用哪种配置:

  1. 预配模型

  2. 集群部署工具

  3. 如果您使用受预留约束的预配模型,则还必须考虑以下因素:

预配模型

根据您为创建计算实例或集群而选择的使用选项,您可以使用以下预配模型之一来获取创建实例所需的资源:

  • 受预留约束:您可以按折扣价预留未来日期和时长的资源。在预留期开始时,您可以使用预留的资源创建实例或集群。在预留期内,您对预留的资源享有独占访问权限。

  • 灵活启动:您可以请求最多七天的折扣资源。 Compute Engine 会尽力尝试在您请求的资源可用时立即安排预配。在您请求的时间段内,您对获得的资源拥有独占访问权限。

  • Spot:您可以根据可用性立即获得大幅折扣的资源。不过,Compute Engine 可能会随时停止或删除实例以回收容量。

受预留约束的预配模型

受预留约束的预配模型会将您创建的计算实例与您之前预留的容量相关联。当您预留容量时,Compute Engine 会创建一个空预留。然后,在预留开始时间,会发生以下情况:

  • Compute Engine 会将预留的实例数量添加到预留中。在预留结束时间之前,您对预留容量拥有独占访问权限。

  • 无论您是否使用预留的容量,Google Cloud 都会向您收取该容量的费用,直到预留期结束为止。

然后,您可以使用预留的资源创建实例,而无需支付额外的费用。您只需为未预留的资源(例如磁盘或 IP 地址)付费。

如需在创建计算实例或 MIG 时指定预留绑定预配模型,请执行以下操作:

  • 在 Google Cloud 控制台的预配模型列表中,选择预留绑定。

  • 在 Google Cloud CLI 中,在命令中添加 --provisioning-model=RESERVATION_BOUND 标志。

  • 在 Compute Engine API 中,在请求正文中添加 "provisioningModel": "RESERVATION_BOUND" 字段。

如需详细了解如何在预留容量后创建实例或 MIG 时设置这些参数,请参阅计算实例和集群创建概览。如果您使用 Cluster Toolkit 部署集群,则集群蓝图会为您设置预配模式。

灵活启动预配模型

借助灵活启动预配模型,您可以在请求的容量可用时创建独立的灵活启动型虚拟机,或将灵活启动型虚拟机添加到托管式实例组 (MIG)。当您使用规模调整请求将灵活启动型虚拟机添加到 MIG 时,MIG 会一次性创建所有实例。这种方法有助于您避免因 Compute Engine 在您等待启动工作负载所需的全部容量时可能提供的部分容量而产生不必要的费用。灵活启动预配模型从安全容量池预配资源,这有助于增加您获得 GPU 等高需求资源的可能性。

如需在为 MIG 创建独立实例或实例模板时指定灵活启动预配模型,请执行以下操作:

  • 在 Google Cloud 控制台的预配模型列表中,选择灵活启动。

  • 在 gcloud CLI 中,在命令中添加 --provisioning-model=FLEX_START 标志。

  • 在 Compute Engine API 中,在请求正文中添加 "provisioningModel": "FLEX_START" 字段。

如需详细了解如何创建使用灵活启动预配模型的实例或集群,请参阅以下文档:

Spot 预配模型

借助 Spot 预配模式,您可以根据可用性创建大幅折扣的计算实例。不过,Compute Engine 可能会随时停止或删除创建的实例以回收容量。此过程称为抢占。

如需在创建实例或 MIG 时指定 Spot 预配模型,请执行以下操作:

  • 在 Google Cloud 控制台的预配模型列表中,选择 Spot。

  • 在 gcloud CLI 中,在命令中添加 --provisioning-model=SPOT 标志。

  • 在 Compute Engine API 中,在请求正文中添加 "provisioningModel": "SPOT" 字段。

如需详细了解如何在创建实例或 MIG 时设置这些参数,请参阅计算实例和集群创建概览。

集群部署工具

Cluster Toolkit 是一种开源部署工具,建议用于创建 GPU 加速集群。Cluster Toolkit 可以部署 Google Kubernetes Engine (GKE) 或 Slurm 集群。

或者,您也可以选择使用以下方法之一预配计算实例组,然后根据需要整合自己的工作负载调度器:

预留块部署类型

如果您在创建集群化 GPU 计算实例或集群时使用受预留约束的预配模型,则您收到的机器会自动部署在密集分配的主机块中。此部署具有以下优势:

  • 使用 Google 的动态机器学习 (ML) 网络结构,实现非阻塞式网络组建和管理,从而实现一致的高带宽、低延迟实例连接性。

  • 访问网络拓扑,该拓扑提供实例之间相对邻近性的分层视图。此功能适用于高级作业调度用例。

  • 使用编排器时,可实现拓扑感知的精细布置。

  • 对维护时间表的精细用户控制,可最大限度地提高作业调度和正常运行时间,并最大限度地减少停机时间。

预留运行模式

如果您使用受预留约束的预配模型,则您预留的机器类型决定了预留容量的预留操作模式。每种模式都定义了如何响应主机错误或故障主机报告,以及您对预留基础架构的可见性和控制级别。

每种预留操作模式都定义了以下内容:

  • 谁负责管理恢复:您或 Google Cloud。

  • 您用于恢复的容量:仅限预留容量,或预留容量和非预留容量。

  • 您的放置控制级别:您是否可以在计划时间之前查看和开始维护特定预留子块,以实现精细控制。

在预留容量以创建计算实例或集群时,您必须在以下预留操作模式中选择一种:代管模式或全容量模式。

受管模式

在代管模式下, Google Cloud 会在出现主机错误或主机故障报告后自动管理计算实例的维护和恢复流程。如果您的工作负载需要高稳定性,并且您希望通过自动化流程来最大限度地减少停机时间,那么这种方法非常适合。

受管模式具有以下特征:

  • 仅使用预留容量进行恢复:Compute Engine 仅使用预留容量来重启实例。如果预留中没有可用容量,则 Compute Engine 仅在您获得更多容量后才会重启实例。

  • 自动重启实例: Google Cloud 处理实例的整个恢复过程。当需要进行主机维护时,Compute Engine 会自动将预留中的实例迁移到其他可用机器上,然后重新启动这些实例。

  • 块管理和可见性:您可以查看各个预留和预留块的拓扑、运行状况和维护状态。您还可以接收这些资源的维护通知,并选择在预定维护时间之前开始维护。

  • 潜在的 API 速率限制:对报告故障主机 API 的调用可能会受到每个预留的速率限制。

全容量模式

在所有容量模式下,您都需要负责管理计算实例恢复流程。您必须在出现主机错误或主机故障报告后手动启动维护。与代管模式不同,您还可以查看和启动预留子块的维护。这些功能可让您对实例的维护和恢复过程进行全面、精细的控制。

全容量模式具有以下特征:

  • 使用预留和未预留容量进行恢复:您可以使用预留资源以及预留之外的任何可用资源,在实例的主机发生故障时帮助您迁移和重启实例。

  • 手动实例重启:您负责实例的恢复过程。如果因主机错误或主机故障报告而需要进行主机维护,Compute Engine 会停止您的实例。您只能在维护完成后重启实例。

  • 块和子块管理和可见性:您可以查看各个预留、预留块和预留子块的拓扑、运行状况和维护状态。您还可以接收这些资源的维护通知,并选择在预定维护时间之前开始维护。

  • 无 API 速率限制:调用报告故障主机 API 时没有速率限制。

维护调度类型

如果您使用预留绑定预配模型,Cluster Director 会提供一些选项,用于为集群中正在运行的计算实例安排主机维护。预留容量时,您可以指定是否对实例进行分组并同步维护调度 (grouped),也可以使实例松散耦合并进行独立的维护调度 (independent)。

分组维护安排

分组维护调度类型有助于将运行相同工作负载的所有实例调整为相同的计划维护频率,无论 Compute Engine 何时预配计算实例。这种紧密耦合的维护可让您完全控制已用和未用容量,从而优化作业的性能。

在以下情况下,组维护调度类型非常有用:

  • 您的环境使用作业调度器,例如 Slurm 或 GKE。

  • 您希望运行训练或其他高度并行化的计算工作负载。

独立维护调度

这种独立维护安排类型可为实例提供不同的维护安排。如果您想运行推理或有限规模的训练,并且工作负载在具有单独的维护时间表时运行效率更高,则此配置非常适合。

接下来怎么做?