本文档介绍了在创建 Compute Engine 实例和集群之前需要考虑的 AI Hypercomputer 配置。查看可用配置有助于确保工作负载获得最佳性能,并最大限度减少停机时间和性能问题。
计算实例和集群创建的配置因素
在创建计算实例和集群以运行工作负载之前,请考虑使用哪种配置:
预配模型
根据您为创建计算实例或集群选择的消费选项,您可以使用以下预配模型之一来获取创建实例所需的资源:
受预留约束:您可以按折扣价预留未来日期和时长的资源。在预留期开始时,您可以使用预留的资源创建实例或集群。在预留期内,您对预留的资源享有独占访问权限。
灵活启动:您可以请求最多七天的折扣资源。 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"字段包含在请求正文中。
如需详细了解如何创建使用灵活启动预配模型的实例或集群,请参阅以下文档:
创建 GKE 集群:
Spot 预配模型
借助抢占式预配模型,您可以根据可用性创建大幅折扣的计算实例。不过,Compute Engine 可能会随时停止或删除创建的实例以收回容量。此过程称为抢占。
如需在创建实例或 MIG 时指定抢占式预配模型,请执行以下操作:
在 Google Cloud 控制台中,从预配模型列表中选择 Spot。
在 gcloud CLI 中,在命令中添加
--provisioning-model=SPOT标志。在 Compute Engine API 中,请在请求正文中添加
"provisioningModel": "SPOT"字段。
如需详细了解如何在创建实例或 MIG 时设置这些参数,请参阅 Compute 实例和集群创建概览。
集群部署工具
Cluster Toolkit 是一种开源部署工具,建议用于创建 GPU 加速集群。Cluster Toolkit 可以部署 Google Kubernetes Engine (GKE) 集群和 Slurm 集群。
或者,您也可以选择使用以下方法之一来预配计算实例组,然后根据需要纳入您自己的工作负载调度程序:
预留块部署类型
如果您在创建 A4X Max、A4X、A4、A3 Ultra、A3 Mega 和 A3 High(8 个 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。
您希望运行训练或其他高度并行化的计算工作负载。
独立维护调度
这种独立维护安排类型可为实例提供不同的维护安排。如果您想运行推理或有限规模的训练,并且工作负载在具有单独的维护时间表时运行效率更高,则此配置非常适合。