部署 P4d EC2 UltraCluster

发布时间:2020 年 12 月 8 日
Amazon EC2
Olawale Olaleye
亚马逊云科技使用经验
200 - 中级
完成所需时间
10 分钟
所需费用
需付费
前提条件

注册 / 登录 亚马逊云科技账户

使用场景

计算

受众

开发人员

上次更新时间
2020 年 12 月 8 日
相关产品

Amazon EC2 P4d 实例可为云中的机器学习 (ML) 训练和高性能计算 (HPC) 应用程序提供极高的性能。Amazon EC2 P4d 实例部署在名为 EC2 UltraCluster 的超大规模集群中,这些集群由云中的高性能计算、网络和存储组成。P4d 实例的每个 EC2 UltraCluster 都包含 4,000 多个最新的 NVIDIA A100 GPU、PB 级无阻塞网络基础设施,以及采用 FSx for Lustre 的高吞吐量低延迟存储。

本分步教程将帮助您使用 P4d 实例的 EC2 UltraCluster 在云中启动高性能 HPC 集群。您将为集群设置底层网络,部署 FSx for Lustre 和 P4d 集群,并删除 AWS 资源。 

在启动 EC2 UltraCluster 之前,建议先启动单个 P4d 实例,熟悉该实例类型。还要记下您在账户和区域的哪个可用区启动了 P4d 实例。您将在教程后面部分需要此信息。

在本教程中,您将完成以下步骤:

  • 登录 AWS 控制台
  • 创建一个带 NAT 网关的私有子网
  • 创建 3 个用于访问 EC2 UltraCluster 的安全组
  • 启动 FSx for Lustre 文件系统
  • 启动包含 4 个 EFA ENI 的 EC2 P4d 实例集群
  • 启动堡垒机
  • 取消配置 EC2 UltraCluster 中的资源

1.登录 AWS 控制台

点击此处时,AWS 管理控制台将在新的浏览器窗口中打开,使本分步指南保持打开状态,以便一边操作一边参照本教程。  页面加载后,输入您的用户名和密码即可开始使用。然后在搜索栏中输入 VPC,选择 VPC 以打开控制台。

2.创建一个带 NAT 网关的私有子网

EC2 UltraCluster 的每个实例将具有多个弹性网络接口。我们需要在私有子网中创建实例,并通过附加了互联网网关 (IGW) 的公有子网路由 NAT 网关。

a. 在 VPC 中创建一个具有可用空闲 CIDR 范围的子网,该 CIDR 范围需要能够容纳您要启动的实例数量的 4 倍。

b. 通过在侧边菜单中进入 NAT Gateways(NAT 网关),在 VPC 的公有子网中启动网关,创建 NAT 网关。预配此网关需要几分钟时间。

c. 预配完成后,进入路由表页面,创建一个新的路由表,并选择您创建网关时所在的 VPC。在该路由表的 Routes(路由)部分中,添加一条目的地为 0.0.0.0/0 的路由,目标指向您之前创建的 NAT 网关 ID。

d. 将此路由表与之前创建的私有子网关联,右键点击路由表 ID,并选择 edit subnet associations(编辑子网关联)。

3.创建用于访问 EC2 UltraCluster 的安全组

我们将创建 2 个具有不同访问策略的安全组,分别用于: 

  • 外部 SSH 访问
  • EFA 网络。

a. 在 EC2 控制台中,前往 Security groups(安全组)并点击 Create security groups(创建安全组)。

  • 选择之前使用的 VPC 来关联此安全组
  • 对于 EFA:对于入站规则,在正在创建的安全组范围内的所有端口上添加 All traffic(所有流量)。
  • 对于 EFA:对于出站规则,在正在创建的安全组范围内的所有端口上添加 All traffic(所有流量)。

b. 对于新的 SSH 安全组,确保入站 TCP 端口 22 是打开的,出站设置为 0.0.0.0/0。

4.启动 FSx for Lustre 文件系统

作为 EC2 UltraCluster 的一部分,您需要启动 FSx for Lustre 文件系统。您可以使用任何现有的 FSx for Lustre 文件系统教程或博客,但需要在之前创建的私有子网中启动。

a. 在 FSx for Lustre 控制台中,点击 Create file system(创建文件系统)

b. 选择 Amazon FSx for Lustre,点击 Next(下一步)。

c. 按照以下参数填写类似于截图的表单:

  • 部署和存储类型:Scratch, SSD(临时存储,SSD)
  • 每个存储单元的吞吐量:200 MB/s/TB
  • 存储容量:2.4 TiB
  • 虚拟私有云:之前创建的私有子网的 VPC
  • VPC 安全组:选择之前创建的 EFA 安全组
  • 子网:之前创建的私有子网

d. 为数据摄取选择一个 S3 存储桶。本教程的数据集是 BERT 数据集。如果您没有,我们可以使用合成基准测试。

e. 等待 FSx 集群进入 Available(可用)状态。记下该集群的 dnsname 和 mountname。

5.启动包含 4 个 EFA ENI 的 EC2 P4d 实例集群

我们可以启动 EC2 UltraCluster 的计算层。您可以使用 Deep Learning AMI v36 来支持 P4d,也可以创建自己的 AMI。您需要安装 FSx 客户端驱动程序。

在 EC2 管理控制台的 EC2 控制面板中选择并启动一个实例。

a. 选择支持 A100 且已安装 FSx 客户端驱动程序的 AMI。

b. 对于 Instance Type(实例类型),请选择:p4d.24xlarge

c. 在实例详细信息中选择所需的实例数量。

d. 选择之前创建的 VPC 和私有子网。

e. 选择作为集群创建的放置群组。

f. 在网络接口中,添加 3 个勾选了 Elastic Fabric Adapter 的网络接口。

g. 将每个 EFA 适配器的 NetworkCardIndex 设置为 0、1、2、3。

h. 在下一个页面中添加所有相关标签,在 Security Group(安全组)部分选择之前为访问 SSH 和 EFA 创建的安全组。

i. 启动实例,确认每个节点有 4 个私有 IP 地址。

6.启动堡垒机

由于集群位于私有子网中,我们需要在公有子网中启动一个堡垒机,以便能够访问 EC2 UltraCluster 中的 P4d 实例。在 EC2 控制台中,在 VPC 的公有子网中启动一个 EC2 实例,例如 t3a.xlarge。附加之前创建的安全组。实例启动后,您可以通过 SSH 连接到该实例,然后通过 SSH 连接到集群中的一个 p4d.24xlarge 节点。

7.取消配置 EC2 UltraCluster 中的资源

您可以轻松地从 EC2 控制台删除 EC2 P4d 集群,并从 FSx 控制台删除 FSx for Lustre 文件系统。事实上,删除不再使用的资源可以避免继续产生费用,属于一种最佳实践。