你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Batch 池中使用 RDMA 或 GPU 实例

注意

本文引用了 CentOS,这是一个接近生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指导

若要运行某些 Batch 作业,可以利用专为大规模计算设计的 Azure VM 大小。 例如:

  • 运行多实例 MPI 工作负荷时,可为远程直接内存访问 (RDMA) 选择具备网络接口的 H 系列或其他大小。 这些大小均连接到用于节点间通信的 InfiniBand 网络,可加快 MPI 应用程序的速度。

  • 对于 CUDA 应用程序,可选择包含 NVIDIA Tesla 图形处理单元 (GPU) 卡的 N 系列大小。

本文介绍了在 Batch 池中使用 Azure 的某些专用大小的指南和示例。 有关规格和背景的信息,请参阅:

注意

某些 VM 大小在创建批处理帐户的区域中可能无法使用。 若要检查大小是否可用,请参阅可用产品(按区域)以及选择 Batch 池的 VM 大小

依赖项

Batch 中计算密集型大小的 RDMA 或 GPU 功能仅在某些操作系统中支持。 (支持的操作系统列表是一个子集,属于以此类大小创建的虚拟机所支持的操作系统。)根据创建 Batch 池的方式,可能需要在节点上安装或配置其他驱动程序或软件。 下表总结了这些依存关系。 有关详细信息,请参阅链接的文章。 有关配置 Batch 池的选项,请参阅本文后面部分。

Linux 池 - 虚拟机配置

大小 功能 操作系统 所需软件 池设置
H16r、H16mr
NC24r、NC24rs_v2、NC24rs_v3、ND24rs*
RDMA Ubuntu 22.04 LTS 或
基于 CentO 的 HPC
(Azure 市场)
Intel MPI 5

Linux RDMA 驱动程序
启用节点间通信,禁用并发任务执行
NC、NCv2、NCv3、NDv2 系列 NVIDIA Tesla GPU(因系列而异) Ubuntu 22.04 LTS 或
CentOS 8.1
(Azure 市场)
NVIDIA CUDA 或 CUDA Toolkit 驱动程序 空值
NV、NVv2、NVv4 系列 NVIDIA Tesla M60 GPU Ubuntu 22.04 LTS 或
CentOS 8.1
(Azure 市场)
NVIDIA GRID 驱动程序 空值

*支持 RDMA 的 N 系列大小还包含 NVIDIA Tesla GPU

重要

本文档引用临近或处于生命周期终止 (EOL) 日期的 Linux 发行版本。 请考虑更新到最新版本。

Windows 池 - 虚拟机配置

大小 功能 操作系统 所需软件 池设置
H16r、H16mr
NC24r、NC24rs_v2、NC24rs_v3、ND24rs*
RDMA Windows Server 2016、2012 R2 或
2012(Azure 市场)
Microsoft MPI 2012 R2 或更高版本,或
Intel MPI 5

Windows RDMA 驱动程序
启用节点间通信,禁用并发任务执行
NC、NCv2、NCv3、ND、NDv2 系列 NVIDIA Tesla GPU(因系列而异) Windows Server 2016 或
2012 R2(Azure 市场)
NVIDIA CUDA 或 CUDA Toolkit 驱动程序 空值
NV、NVv2、NVv4 系列 NVIDIA Tesla M60 GPU Windows Server 2016 或
2012 R2(Azure 市场)
NVIDIA GRID 驱动程序 空值

*支持 RDMA 的 N 系列大小还包含 NVIDIA Tesla GPU

Windows 池 - 云服务配置

警告

云服务配置池已被弃用。 请改用虚拟机配置池。

大小 功能 操作系统 所需软件 池设置
H16r、H16mr RDMA Windows Server 2016、2012 R2、2012 或
2008 R2(来宾 OS 系列)
Microsoft MPI 2012 R2 或更高版本,或
Intel MPI 5

Windows RDMA 驱动程序
启用节点间通信,
禁用并发任务执行

注意

云服务配置池不支持 N 系列大小。

池配置选项

在为 Batch 池配置专用 VM 大小时,有若干选项来安装所需软件或驱动程序:

示例:Windows NC VM 池上的 NVIDIA GPU 驱动程序

若要在 Windows NC 节点的池上运行 CUDA 应用程序,需要安装 NVDIA GPU 驱动程序。 以下示例步骤使用应用程序包来安装 NVIDIA GPU 驱动程序。 如果工作负载取决于特定的 GPU 驱动程序版本,则可以选择此选项。

  1. NVIDIA 网站下载 Windows Server 2016 上的 GPU 驱动程序的安装程序包 - 例如,版本 411.82。 使用短名称(如 GPUDriverSetup.exe)在本地保存文件。
  2. 为程序包创建 zip 文件。
  3. 将程序包上载到 Batch 帐户。 有关详细步骤,请参阅应用程序包指南。 指定应用程序 ID(如 GPUDriver)和版本(如 411.82) 。
  4. 通过 Batch API 或 Azure 门户,在虚拟机配置中创建具有所需节点数和规模的池。 下表显示了使用启动任务静默安装 NVIDIA GPU 驱动程序的示例设置:
设置
映像类型 市场 (Linux/Windows)
发布者 MicrosoftWindowsServer
产品 WindowsServer
Sku 2016-Datacenter
节点大小 NC6 标准
应用程序包引用 GPUDriver,版本 411.82
启用了启动任务 True
命令行 - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s"
用户标识 - 池自动用户、管理员
等待成功 - True

示例:Linux NC VM 池上的 NVIDIA GPU 驱动程序

若要在 Linux NC 节点的池上运行 CUDA 应用程序,需要从 CUDA Toolkit 安装必要的 NVIDIA Tesla GPU 驱动程序。 以下示例步骤使用 GPU 驱动程序创建和部署自定义 Ubuntu 22.04 LTS 映像:

  1. 部署运行 Ubuntu 22.04 LTS 的 Azure NC 系列 VM。 例如:在美国中南部区域创建 VM。
  2. 使用 Azure 门户、连接到 Azure 订阅的客户端计算机或 Azure Cloud Shell 将 NVIDIA GPU 驱动程序扩展添加到 VM。 或者,按照以下步骤连接到 VM 并手动安装 CUDA 驱动程序
  3. 按照步骤为 Batch 创建 Azure Compute Gallery 图像
  4. 在支持 NC VM 的区域中创建 Batch 帐户。
  5. 通过 Batch API 或 Azure 门户,使用自定义映像创建具有所需节点数和规模的池。 下表列出了映像的示例池设置:
设置
映像类型 自定义映像
自定义映像 映像名称
节点代理 SKU batch.node.ubuntu 22.04
节点大小 NC6 标准

示例:Windows H16r VM 池上的 Microsoft MPI

要在 Azure H16r VM 节点的池上运行 Windows MPI 应用程序,需要配置 HpcVmDrivers 扩展并安装 Microsoft MPI。 以下是使用必要的驱动程序和软件部署自定义 Windows Server 2016 映像的示例步骤:

  1. 部署运行 Windows Server 2016 的 Azure H16r VM。 例如,在美国西部区域创建 VM。
  2. 通过从连接到 Azure 订阅的客户端计算机运行 Azure PowerShell 命令或使用 Azure Cloud Shell,将 HpcVmDrivers 扩展添加到 VM。
  3. 远程桌面连接到 VM。
  4. 下载最新版 Microsoft MPI 的安装程序包 (MSMpiSetup.exe) 并安装 Microsoft MPI。
  5. 按照步骤为 Batch 创建 Azure Compute Gallery 图像
  6. 通过 Batch API 或 Azure 门户,使用 Azure Compute Gallery 创建池,并满足所需节点数和规模。 下表列出了映像的示例池设置:
设置
映像类型 自定义映像
自定义映像 映像名称
节点代理 SKU batch.node.windows amd64
节点大小 H16r 标准
启用了节点间通信 True
每个节点的任务上限 1

示例:Linux H16r VM 池上的 Intel MPI

要在 Linux HB 系列节点的池上运行 MPI 应用程序,一种选择是使用 Azure 市场中基于 CentOS 的 8.1 HPC 映像。 预装了 Linux RDMA 驱动程序和 Intel MPI。 此映像还支持 Docker 容器工作负载。

通过 Batch API 或 Azure 门户,使用该映像创建具有所需节点数和规模的池。 下表列出了示例池设置:

设置
映像类型 市场 (Linux/Windows)
发布者 OpenLogic
产品 CentOS-HPC
Sku 8.1
节点大小 H16r 标准
启用了节点间通信 True
每个节点的任务上限 1

后续步骤

  • 若要在 Azure Batch 池上运行 MPI 作业,请参阅 WindowsLinux 示例。