本文档概述了配置和部署使用 A4X Max、A4X、A4、A3 Ultra、A3 Mega 或 A3 High 机器类型的 Slurm 集群的步骤。如需详细了解这些加速器优化机器类型,请参阅 GPU 机器类型。
如需了解在 Google Cloud中创建 AI 优化型 Slurm 集群的其他方法,请参阅以下内容:
如需使用可简化集群设置和管理的全托管式 Slurm 环境,请参阅 Cluster Director。
如需在 Slurm 上部署两个 A4 虚拟机 (VM) 实例,请参阅有关创建 AI 优化型 Slurm 集群的快速入门。
限制
根据 Slurm 集群中虚拟机使用的机器系列,存在以下限制:
A4X Max
- 使用此机器类型的实例不会获得持续使用折扣或灵活承诺使用折扣。
- 您只能在某些区域和可用区中创建实例。
- 您无法使用 Persistent Disk(区域级或可用区级)。您只能使用 Google Cloud Hyperdisk。
- 此机器类型仅在 NVIDIA Grace 平台上提供。
- A4X Max 不支持更改机器类型。如需切换到或切换自此机器类型,您必须创建新实例。
- 您无法在此机器类型上运行 Windows 操作系统。如需查看支持的 Linux 操作系统列表,请参阅支持的 GPU 实例操作系统。
- A4X Max 实例不支持以下各项:
- 您无法将 2026 年 2 月 4 日之前创建的 Hyperdisk ML 磁盘挂接到 A4X Max 机器类型。
A4X
- 使用此机器类型的实例不会获得持续使用折扣或灵活承诺使用折扣。
- 您只能在某些区域和可用区中创建实例。
- 您无法使用 Persistent Disk(区域级或可用区级)。您只能使用 Google Cloud Hyperdisk。
- 此机器类型仅在 NVIDIA Grace 平台上提供。
- A4X 不支持更改机器类型。如需改用或停用此机器类型,您必须创建新的实例。
- 您无法在此机器类型上运行 Windows 操作系统。如需查看支持的 Linux 操作系统列表,请参阅支持的 GPU 实例操作系统。
- 对于 A4X 实例,当您使用
ethtool -S监控 GPU 网络时,以_phy结尾的物理端口计数器不会更新。对于使用 MRDMA 虚拟功能 (VF) 架构的实例,这是预期行为。如需了解详情,请参阅 MRDMA 函数和网络监控工具。 - A4X 实例不支持以下各项:
- 您无法将 2026 年 2 月 4 日之前创建的 Hyperdisk ML 磁盘挂接到 A4X 机器类型。
A4
- 使用 A4 机器类型的实例不会获得持续使用折扣和灵活承诺使用折扣。
- 只能在某些区域和可用区中使用 A4 机器类型。
- 您无法使用 Persistent Disk(区域级或可用区级)。您只能使用 Google Cloud Hyperdisk。
- A4 机器类型仅在 Emerald Rapids CPU 平台上提供。
- 您不能将实例的机器类型更改为 A4 机器类型,也不能从 A4 机器类型更改为其他机器类型。您必须使用此机器类型创建新实例。
- A4 机器类型不支持单租户。
- 不能在 A4 机器类型上运行 Windows 操作系统。
- 对于 A4 实例,当您使用
ethtool -S监控 GPU 网络时,以_phy结尾的物理端口计数器不会更新。对于使用 MRDMA 虚拟功能 (VF) 架构的实例,这是预期行为。如需了解详情,请参阅 MRDMA 函数和网络监控工具。 - 您无法将 2026 年 2 月 4 日之前创建的 Hyperdisk ML 磁盘挂接到 A4 机器类型。
A3 Ultra
- 使用 A3 Ultra 机器类型的实例不会获得持续使用折扣和灵活承诺使用折扣。
- 只能在某些区域和可用区中使用 A3 Ultra 机器类型。
- 您无法使用 Persistent Disk(区域级或可用区级)。您只能使用 Google Cloud Hyperdisk。
- A3 Ultra 机器类型仅在 Emerald Rapids CPU 平台上提供。
- A3 Ultra 机器类型不支持更改机器类型。如需改用或停用此机器类型,您必须创建新的实例。
- 不能在 A3 Ultra 机器类型上运行 Windows 操作系统。
- A3 Ultra 机器类型不支持单租户。
- 对于 A3 Ultra 实例,当您使用
ethtool -S监控 GPU 网络时,以_phy结尾的物理端口计数器不会更新。对于使用 MRDMA 虚拟功能 (VF) 架构的实例,这是预期行为。如需了解详情,请参阅 MRDMA 函数和网络监控工具。
A3 Mega
- 使用 A3 Mega 机器类型的实例不会获得持续使用折扣和灵活承诺使用折扣。
- 只能在某些区域和可用区中使用 A3 Mega 机器类型。
- 不能在使用 A3 Mega 机器类型的实例上使用区域级永久性磁盘。
- A3 Mega 机器类型仅在 Sapphire Rapids CPU 平台上提供。
- A3 Mega 机器类型不支持更改机器类型。如需改用或停用此机器类型,您必须创建新的实例。
- 不能在 A3 Mega 机器类型上运行 Windows 操作系统。
A3 High
- 使用 A3 High 机器类型的实例不会获得持续使用折扣和灵活承诺使用折扣。
- 只能在某些区域和可用区中使用 A3 High 机器类型。
- 不能在使用 A3 High 机器类型的实例上使用区域级永久性磁盘。
- A3 High 机器类型仅在 Sapphire Rapids CPU 平台上提供。
- A3 High 机器类型不支持更改机器类型。如需改用或停用此机器类型,您必须创建新的实例。
- 不能在 A3 High 机器类型上运行 Windows 操作系统。
- 对于
a3-highgpu-1g、a3-highgpu-2g和a3-highgpu-4g机器类型,您必须使用 Spot 虚拟机或灵活启动虚拟机来创建实例。如需详细了解这些选项,请查看以下内容:- 如需创建 Spot 虚拟机,请在创建加速器优化虚拟机时将预配模型设置为
SPOT。 - 如需创建灵活启动虚拟机,您可以使用以下方法之一:
- 创建独立虚拟机,并在创建加速器优化虚拟机时将预配模型设置为
FLEX_START。 - 在托管式实例组 (MIG) 中创建调整大小请求。如需查看相关说明,请参阅创建具有 GPU 虚拟机的 MIG。
- 创建独立虚拟机,并在创建加速器优化虚拟机时将预配模型设置为
- 如需创建 Spot 虚拟机,请在创建加速器优化虚拟机时将预配模型设置为
- 您只能在有限的区域和可用区中使用具有
a3-highgpu-1g机器类型的机密虚拟机,并且适用于在 A3 High 机器类型上运行的机密虚拟机的所有限制也适用。
准备工作
在创建 Slurm 集群之前,如果您尚未完成以下步骤,请先完成这些步骤:
- 选择使用选项:您选择的使用选项决定了您如何获取和使用 GPU 资源。
如需了解详情,请参阅选择消费选项。
- 获取容量:每种使用选项的容量获取流程各不相同。
如需了解所选使用选项的容量获取流程,请参阅容量概览。
- 确保您有足够的 Filestore 容量配额:在部署之前,您需要在目标区域中拥有足够的 Filestore 配额。所需的最低容量取决于集群中的机器类型:
- A4X Max、A4X、A4、A3 Ultra 和 A3 Mega:需要至少 10 TiB (10,240 GiB) 的 HIGH_SCALE_SSD(可用区级)容量。
- A3 High:需要至少 2.5 TiB (2,560 GiB) 的 BASIC_SSD(标准)容量。
如需查看配额或申请增加配额,请参阅以下内容:
- 如需查看配额,请参阅查看 API 特定的配额。
- 如果配额不足,请申请增加配额。
- 安装 Cluster Toolkit:如需配置 Slurm 集群,您必须使用 Cluster Toolkit 版本
v1.62.0或更高版本。如需安装 Cluster Toolkit,请参阅设置 Cluster Toolkit。
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
所需的角色
如需完成本教程,您需要为 Compute Engine 默认服务账号和用户账号授予 IAM 角色。
获取 Compute Engine 默认服务账号所需的角色
如需获得部署 Slurm 集群所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
项目的 Storage Object Viewer (
roles/storage.objectViewer) -
针对项目的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) -
服务账号本身的 Service Account User (
roles/iam.serviceAccountUser)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
为您的用户账号获取所需的角色
如需获得创建 Cloud Storage 存储桶所需的权限,请让您的管理员为您授予项目的 Storage Admin (roles/storage.admin) IAM 角色。
设置存储桶
集群蓝图使用 Terraform 模块来预配云基础设施。使用 Terraform 时,最佳实践是在已启用版本的文件中远程存储状态。在 Google Cloud上,您可以创建已启用版本控制的 Cloud Storage 存储桶。
如需通过 CLI 创建此存储桶并启用版本控制,请运行以下命令:
gcloud storage buckets create gs://BUCKET_NAME \
--project=PROJECT_ID \
--default-storage-class=STANDARD --location=BUCKET_REGION \
--uniform-bucket-level-access
gcloud storage buckets update gs://BUCKET_NAME --versioning
替换以下内容:
安装 Cluster Toolkit
如需将 Slurm 与 Google Cloud搭配使用,您必须安装 Cluster Toolkit。对于 Linux 和 macOS,我们建议您安装预构建的软件包。
安装 Cluster Toolkit 后,前往包含 gcluster 二进制文件的目录:
如果您安装了预构建的软件包,请切换到
gcluster-bundle目录:cd gcluster-bundle
如果您是从源代码构建的二进制文件,请切换到
cluster-toolkit:cd cluster-toolkit
此集群部署需要 Cluster Toolkit
v1.62.0或更高版本。 检查当前安装的版本:./gcluster --version
创建部署文件
创建一个部署文件,您可以使用该文件指定 Cloud Storage 存储桶,为网络和子网设置名称,并设置部署变量,例如项目 ID、区域和可用区。
如需创建部署文件,请按照所需机器类型和消费选项的步骤操作。
A4X Max
如需创建部署文件,请使用文本编辑器创建一个名为 a4xmax-bm-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4x_max_cluster_size: NUMBER_OF_INSTANCES
a4x_max_reservation_name: RESERVATION_NAME
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。REGION:具有预留机器的区域。ZONE:您要在其中预配集群的可用区。如果您使用的是基于预留的使用选项,则区域和可用区信息是在交付容量时由您的客户支持团队提供的。NUMBER_OF_INSTANCES:集群中 A4X Max 裸金属实例的数量。您可以指定任意数量的实例。不过,A4X Max 实例通过多节点 NVLink 系统以 18 个实例(72 个 GPU)为一组进行物理互连,从而形成一个 NVLink 网域。为获得最佳网络性能,我们建议您指定一个 18 的倍数的值(例如 18、36 或 54)。创建 A4X Max 集群时,A4X Max 蓝图会自动创建并应用紧凑布置政策,其中每个 18 个实例组的 GPU 拓扑为
1x72。RESERVATION_NAME:预留的名称。
A4X
如需创建部署文件,请使用文本编辑器创建一个名为 a4xhigh-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4x_cluster_size: NUMBER_OF_VMS
a4x_reservation_name: RESERVATION_NAME
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。REGION:具有预留机器的区域。ZONE:您要在其中预配集群的可用区。如果您使用的是基于预留的使用选项,则区域和可用区信息是在交付容量时由您的客户支持团队提供的。NUMBER_OF_VMS:集群中的 A4X 虚拟机的数量。您可以指定任意数量的虚拟机。不过,A4X 虚拟机通过多节点 NVLink 系统以 18 个虚拟机(72 个 GPU)为一组进行物理互连,从而形成一个 NVLink 网域。为获得最佳网络性能,我们建议您指定一个 18 的倍数的值(例如 18、36 或 54)。创建 A4X 集群时,A4X 蓝图会自动创建并应用紧凑布置政策,其中每个 18 个虚拟机的组的 GPU 拓扑为
1x72。 如需详细了解 A4X 拓扑,请参阅 A4X 基础知识。RESERVATION_NAME:预留的名称。
A4
您需要添加到部署文件的参数取决于您为部署使用的使用选项。选择与您的使用选项的配置模式对应的标签页。
受预留约束
如需创建部署文件,请使用文本编辑器创建一个名为 a4high-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_VMS
a4h_reservation_name: RESERVATION_NAME
替换以下内容:
灵活启动
如需创建部署文件,请使用文本编辑器创建一个名为 a4high-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_VMS
a4h_dws_flex_enabled: true
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。REGION:您要在其中预配集群的区域。ZONE:您要在其中预配集群的可用区。NUMBER_OF_VMS:集群中所需的虚拟机数量。
此部署会预配静态计算节点,这意味着集群始终具有一定数量的节点。如果您希望集群能够自动扩缩,请使用 examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml 文件,并修改 node_count_static 和 node_count_dynamic_max 的值,使其与以下值一致:
node_count_static: 0
node_count_dynamic_max: $(vars.a4h_cluster_size)
Spot
如需创建部署文件,请使用文本编辑器创建一个名为 a4high-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a4h_cluster_size: NUMBER_OF_VMS
a4h_enable_spot_vm: true
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。REGION:您要在其中预配集群的区域。ZONE:您要在其中预配集群的可用区。NUMBER_OF_VMS:集群中所需的虚拟机数量。
A3 Ultra
您需要添加到部署文件的参数取决于您为部署使用的使用选项。选择与您的使用选项的配置模式对应的标签页。
受预留约束
如需创建部署文件,请使用文本编辑器创建一个名为 a3ultra-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_VMS
a3u_reservation_name: RESERVATION_NAME
替换以下内容:
灵活启动
如需创建部署文件,请使用文本编辑器创建一个名为 a3ultra-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_VMS
a3u_dws_flex_enabled: true
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。REGION:您要在其中预配集群的区域。ZONE:您要在其中预配集群的可用区。NUMBER_OF_VMS:集群中所需的虚拟机数量。
此部署会预配静态计算节点,这意味着集群始终具有一定数量的节点。如果您希望集群能够自动扩缩,请使用 examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml 文件,并修改 node_count_static 和 node_count_dynamic_max 的值,使其与以下值一致:
node_count_static: 0
node_count_dynamic_max: $(vars.a3u_cluster_size)
Spot
如需创建部署文件,请使用文本编辑器创建一个名为 a3ultra-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
a3u_cluster_size: NUMBER_OF_VMS
a3u_enable_spot_vm: true
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。REGION:您要在其中预配集群的区域。ZONE:您要在其中预配集群的可用区。NUMBER_OF_VMS:集群中所需的虚拟机数量。
A3 Mega
您需要添加到部署文件的参数取决于您为部署使用的使用选项。选择与您的使用选项的配置模式对应的标签页。
受预留约束
如需创建部署文件,请创建一个名为 a3mega-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3mega_cluster_size: NUMBER_OF_VMS
a3mega_reservation_name: RESERVATION_NAME
a3mega_partition_name: PARTITION_NAME
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。SYSTEM_NETWORK_NAME:要用于系统网络的 VPC 网络的名称。SYSTEM_SUBNET_NAME:用于系统网络的子网的名称。CLUSTER_NAME:Slurm 集群的名称。REGION:具有预留机器的区域。ZONE:您要在其中预配集群的可用区。如果您使用的是基于预留的使用选项,则区域和可用区信息是在交付容量时由您的客户支持团队提供的。NUMBER_OF_VMS:集群中所需的虚拟机数量。RESERVATION_NAME:预留的名称。PARTITION_NAME:Slurm 分区的名称。
灵活启动
如需创建部署文件,请创建一个名为 a3mega-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3mega_cluster_size: NUMBER_OF_VMS
a3mega_dws_flex_enabled: true
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。SYSTEM_NETWORK_NAME:要用于系统网络的 VPC 网络的名称。SYSTEM_SUBNET_NAME:用于系统网络的子网的名称。CLUSTER_NAME:Slurm 集群的名称。REGION:您要在其中预配集群的区域。ZONE:您要在其中预配集群的可用区。NUMBER_OF_VMS:集群中所需的虚拟机数量。
此部署会预配静态计算节点,这意味着集群始终具有一定数量的节点。如果您希望集群能够自动扩缩,请使用 examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml 文件,并修改 node_count_static 和 node_count_dynamic_max 的值,使其与以下值一致:
node_count_static: 0
node_count_dynamic_max: $(vars.a3mega_cluster_size)
Spot
如需创建部署文件,请创建一个名为 a3mega-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3mega_cluster_size: NUMBER_OF_VMS
a3mega_enable_spot_vm: true
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。SYSTEM_NETWORK_NAME:要用于系统网络的 VPC 网络的名称。SYSTEM_SUBNET_NAME:用于系统网络的子网的名称。CLUSTER_NAME:Slurm 集群的名称。REGION:您要在其中预配集群的区域。ZONE:您要在其中预配集群的可用区。NUMBER_OF_VMS:集群中所需的虚拟机数量。
A3 High
您需要添加到部署文件的参数取决于您为部署使用的使用选项。选择与您的使用选项的配置模式对应的标签页。
受预留约束
如需创建部署文件,请创建一个名为 a3high-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
tcpx_kernel_login: TCPX_KERNEL_LOGIN
tcpx_kernel_password: TCPX_KERNEL_PASSWORD
keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3_static_cluster_size: NUMBER_OF_VMS
a3_reservation_name: RESERVATION_NAME
a3_partition_name: PARTITION_NAME
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。TCPX_KERNEL_LOGIN、TCPX_KERNEL_PASSWORD和KEYSERVER_UBUNTU_KEY:A3 High 优化图片的相应技术凭据。这些值由您的 Google Cloud 客户支持团队提供给您。如需了解详情,请参阅获取 GPUDirect-TCPX 的凭据。SYSTEM_NETWORK_NAME:要用于系统网络的 VPC 网络的名称。SYSTEM_SUBNET_NAME:用于系统网络的子网的名称。CLUSTER_NAME:Slurm 集群的名称。REGION:具有预留机器的区域。ZONE:您要在其中预配集群的可用区。如果您使用的是基于预留的使用选项,则区域和可用区信息是在交付容量时由您的客户支持团队提供的。NUMBER_OF_VMS:集群中所需的虚拟机数量。RESERVATION_NAME:预留的名称。PARTITION_NAME:Slurm 分区的名称。
灵活启动
如需创建部署文件,请创建一个名为 a3high-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
tcpx_kernel_login: TCPX_KERNEL_LOGIN
tcpx_kernel_password: TCPX_KERNEL_PASSWORD
keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3_static_cluster_size: NUMBER_OF_VMS
a3_dws_flex_enabled: true
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。TCPX_KERNEL_LOGIN、TCPX_KERNEL_PASSWORD和KEYSERVER_UBUNTU_KEY:A3 High 优化图片的相应技术凭据。这些值由您的 Google Cloud 客户支持团队提供给您。如需了解详情,请参阅获取 GPUDirect-TCPX 的凭据。SYSTEM_NETWORK_NAME:要用于系统网络的 VPC 网络的名称。SYSTEM_SUBNET_NAME:用于系统网络的子网的名称。CLUSTER_NAME:Slurm 集群的名称。REGION:您要在其中预配集群的区域。ZONE:您要在其中预配集群的可用区。NUMBER_OF_VMS:集群中所需的虚拟机数量。
此部署会预配静态计算节点,这意味着集群始终具有一定数量的节点。如果您希望集群能够自动扩缩,请使用 examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml 文件,并修改 node_count_static 和 node_count_dynamic_max 的值,使其与以下值一致:
node_count_static: 0
node_count_dynamic_max: $(vars.a3_static_cluster_size)
Spot
如需创建部署文件,请创建一个名为 a3high-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。
terraform_backend_defaults:
type: gcs
configuration:
bucket: BUCKET_NAME
vars:
deployment_name: DEPLOYMENT_NAME
project_id: PROJECT_ID
region: REGION
zone: ZONE
tcpx_kernel_login: TCPX_KERNEL_LOGIN
tcpx_kernel_password: TCPX_KERNEL_PASSWORD
keyserver_ubuntu_key: KEYSERVER_UBUNTU_KEY
network_name_system: SYSTEM_NETWORK_NAME
subnetwork_name_system: SYSTEM_SUBNET_NAME
slurm_cluster_name: CLUSTER_NAME
a3_static_cluster_size: NUMBER_OF_VMS
a3_enable_spot_vm: true
替换以下内容:
BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。PROJECT_ID:您的项目 ID。TCPX_KERNEL_LOGIN、TCPX_KERNEL_PASSWORD和KEYSERVER_UBUNTU_KEY:A3 High 优化图片的相应技术凭据。这些值由您的 Google Cloud 客户支持团队提供给您。如需了解详情,请参阅获取 GPUDirect-TCPX 的凭据。SYSTEM_NETWORK_NAME:要用于系统网络的 VPC 网络的名称。SYSTEM_SUBNET_NAME:用于系统网络的子网的名称。CLUSTER_NAME:Slurm 集群的名称。REGION:您要在其中预配集群的区域。ZONE:您要在其中预配集群的可用区。NUMBER_OF_VMS:集群中所需的虚拟机数量。
配置 Slurm 集群
Cluster Toolkit 会根据您在上一步中创建的部署文件和默认集群蓝图来预配集群。如需详细了解蓝图安装的软件(包括 NVIDIA 驱动程序和 CUDA),请详细了解 Slurm 自定义映像。
如需预配集群,请从 Cluster Toolkit 目录中运行适用于您的机器类型的命令。此步骤大约需要 20-30 分钟。
A4X Max
./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --auto-approve
A4X
./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --auto-approve
A4
./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --auto-approve
A3 Ultra
./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --auto-approve
A3 Mega
./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --auto-approve
A3 High
./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --auto-approve
连接到 Slurm 集群
如需访问集群,您必须登录 Slurm 登录节点。如需登录,您可以使用 Google Cloud 控制台或 Google Cloud CLI。
控制台
转到 Compute Engine > 虚拟机实例页面。
找到登录节点。其名称应采用
DEPLOYMENT_NAME+login-001格式。在登录节点的连接列中,点击 SSH。
gcloud
如需连接到登录节点,请完成以下步骤:
使用
gcloud compute instances list命令识别登录节点。gcloud compute instances list \ --zones=
ZONE\ --filter="name ~ login" --format "value(name)"如果输出列出了多个 Slurm 集群,您可以根据指定的
DEPLOYMENT_NAME识别登录节点。使用
gcloud compute ssh命令连接到登录节点。gcloud compute ssh LOGIN_NODE \ --zone=
ZONE--tunnel-through-iap替换以下内容:
ZONE:集群的虚拟机所在的可用区。LOGIN_NODE:您在上一步中识别的登录节点的名称。
测试 Slurm 集群的网络性能
我们建议您验证已配置集群的功能。为此,请使用针对 Google 环境优化的 NVIDIA Collective Communications Library (NCCL) 测试,即 NCCL 测试。
重新部署 Slurm 集群
如果您需要增加计算节点数量或向集群添加新分区,可能需要通过重新部署来更新 Slurm 集群的配置。通过使用之前部署中的现有映像,可以加快重新部署速度。为避免在重新部署期间创建新映像,请指定 --only 标志。
如需使用现有映像重新部署集群,请执行以下操作:
运行适用于所需机器类型的命令:
A4X Max
./gcluster deploy -d a4xmax-bm-slurm-deployment.yaml examples/machine-learning/a4x-maxgpu-4g-metal/a4xmax-bm-slurm-blueprint.yaml --only cluster-env,cluster --auto-approve -w
A4X
./gcluster deploy -d a4xhigh-slurm-deployment.yaml examples/machine-learning/a4x-highgpu-4g/a4xhigh-slurm-blueprint.yaml --only cluster-env,cluster --auto-approve -w
A4
./gcluster deploy -d a4high-slurm-deployment.yaml examples/machine-learning/a4-highgpu-8g/a4high-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 Ultra
./gcluster deploy -d a3ultra-slurm-deployment.yaml examples/machine-learning/a3-ultragpu-8g/a3ultra-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 Mega
./gcluster deploy -d a3mega-slurm-deployment.yaml examples/machine-learning/a3-megagpu-8g/a3mega-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
A3 High
./gcluster deploy -d a3high-slurm-deployment.yaml examples/machine-learning/a3-highgpu-8g/a3high-slurm-blueprint.yaml --only cluster-env,cluster -w --auto-approve
此命令仅适用于已存在映像的重新部署;它仅重新部署集群及其基础设施。
销毁 Slurm 集群
默认情况下,A4X Max、A4X、A4 和 A3 Ultra 蓝图会在 Filestore 实例上启用删除防护。如需在销毁 Slurm 集群时删除 Filestore 实例,请先停用防删除保护,然后再运行销毁命令。如需了解相关说明,请参阅在现有实例上设置或移除防删除保护。
如果您尚未断开与集群的连接,请断开连接。
在运行销毁命令之前,前往 Cluster Toolkit 目录的根目录。默认情况下,DEPLOYMENT_FOLDER 位于 Cluster Toolkit 目录的根目录中。
如需销毁集群,请运行以下命令:
./gcluster destroy DEPLOYMENT_FOLDER --auto-approve
替换以下内容:
DEPLOYMENT_FOLDER:部署文件夹的名称。通常与 DEPLOYMENT_NAME 相同。
销毁完成后,您应该会看到类似于以下内容的消息:
Destroy complete! Resources: xx destroyed.
如需了解如何干净地销毁基础设施,以及获取高级手动部署说明,请参阅 Cluster Toolkit 根目录下的部署文件夹:DEPLOYMENT_FOLDER/instructions.txt