你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
设置 InfiniBand
本文引用了 CentOS,这是一个接近生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南。
适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集 ✔️ 统一规模集
提示
请尝试使用虚拟机选择器工具查找最适合你的工作负载的其他尺寸。
本文分享了一些有关通过 InfiniBand (IB) 网络使用的支持 RDMA 的实例的信息。 InfiniBand 网络体系结构具有完整的胖树设计(即提供高带宽和低延迟的网络拓扑),确保非阻塞性、双节对称性。 此配置在同一虚拟机规模集 (VMSS) 内的任何两个虚拟机之间提供相等的带宽。
支持 RDMA 的实例
大多数 HPC VM 大小都具有用于建立远程直接内存访问 (RDMA) 连接的网络接口。 使用“r”指定的所选 N 系列大小也支持 RDMA 功能。 此接口是对其他 VM 大小提供的标准 Azure 以太网接口的补充。
借助此辅助接口,支持 RDMA 的实例可以通过 InfiniBand 网络进行通信,在 HBv4、HBv3、HBv2 系列上以 HDR 速率运行,在 HB、HC、HX、NDv2 系列上以 EDR 速率运行,在 H16r、H16mr 和支持 RDMA 的其他 N 系列虚拟机上以 FDR 速率运行。 这些 RDMA 功能可以提高基于消息传递接口 (MPI) 的应用程序的可伸缩性和性能。
注意
SR-IOV 支持:Azure HPC 中目前有两类 VM,具体取决于 VM 中是否为 InfiniBand 启用了 SR-IOV。 目前,Azure 上几乎所有较新一代的支持 RDMA 或者已启用 InfiniBand 的 VM 都已启用 SR-IOV,但 H16r、H16mr 和 NC24r 除外。 只能通过 InfiniBand 网络启用 RDMA,具有 RDMA 功能的所有 VM 都支持 RDMA。 只有已启用 SR-IOV 的 VM 才支持基于 IB 的 IP。 无法通过以太网启用 RDMA。
操作系统 - 通常使用 CentOS、RHEL、AlmaLinux、Ubuntu、SUSE 等 Linux 分发版。 所有 HPC 系列 VM 都支持 Windows Server 2016 和更高版本。 请注意,由于 VM 大小包含 64 个以上的(虚拟或物理)核心,HBv2 及更高版本不支持 Windows Server 2012 R2。 有关 Azure 市场上受支持的 Linux VM 映像的列表以及如何适当配置这些映像的信息,请参阅 VM 映像。 相应的 VM 大小页还列出了软件堆栈支持。
InfiniBand 和驱动程序 - 在已启用 InfiniBand 的 VM 上,需要安装适当的驱动程序才能启用 RDMA。 请参阅启用 InfiniBand,了解 VM 扩展或 InfiniBand 驱动程序的手动安装。
MPI - Azure 上已启用 SR-IOV 的 VM 大小允许将几乎任何形式的 MPI 与 Mellanox OFED 配合使用。 有关在 Azure 中的 HPC VM 上设置 MPI 的更多详细信息,请参阅设置用于 HPC 的 MPI。
注意
RDMA 网络地址空间:Azure 中的 RDMA 网络保留地址空间 172.16.0.0/16。 若要在 Azure 虚拟网络中部署的实例上运行 MPI 应用程序,请确保虚拟网络地址空间不与 RDMA 网络重叠。
群集配置选项
Azure 提供了多个选项,用于创建可使用 RDMA 网络通信的 HPC VM 的群集,包括:
虚拟机 - 在同一规模集或可用性集内部署支持 RDMA 的 HPC VM(使用 Azure 资源管理器部署模型时)。 如果使用经典部署模型,请在同一云服务中部署 VM。
虚拟机规模集 - 在虚拟机规模集内,确保将部署限制为单个放置组,以便在规模集内部进行 InfiniBand 通信。 例如,在资源管理器模板中,将
singlePlacementGroup
属性设置为true
。
请注意,可以使用 singlePlacementGroup=true
运转的最大比例集大小上限默认为 100 个 VM。 如果你的 HPC 作业规模需求高于在单个租户中包含 100 个 VM,可以免费建立在线客户支持请求来请求提高限制。 在单个规模集内包含的 VM 数限制可提高到 300 个。 请注意,使用可用性集部署 VM 时,最大限制为每个可用性集 200 个 VM。
此外,VMSS 充当同一群集中工作负荷之间的隔离边界,确保不同 VMSS 中的实例彼此隔离,以确保安全性。
注意
虚拟机之间的 MPI:如果需要在虚拟机之间使用 RDMA(例如使用 MPI 通信),请确保 VM 位于同一虚拟机规模集或可用性集内。
Azure CycleCloud - 使用 Azure CycleCloud 创建一个 HPC 群集用于运行 MPI 作业。
Azure Batch - 创建一个 Azure Batch 池用于运行 MPI 工作负载。 若要在 Azure Batch 中运行 MPI 应用程序时使用计算密集型实例,请参阅在 Azure Batch 中使用多实例任务来运行消息传递接口 (MPI) 应用程序。
Microsoft HPC Pack - HPC Pack 包含用于 MS-MPI 的、在支持 RDMA 的 Linux VM 上部署时使用 Azure RDMA 网络的运行时环境。 有关示例部署,请参阅使用 HPC Pack 设置一个用于运行 MPI 应用程序的 Linux RDMA 群集。
部署注意事项
Azure 订阅 - 若要部署不止一些计算密集型实例,请考虑使用即用即付订阅或其他购买选项。 如果使用的是 Azure 免费帐户,则仅可以使用有限数量的 Azure 计算核心。
核心配额 - 可能需要在 Azure 订阅中在默认值的基础上增加核心配额。 订阅可能也会限制可在特定 VM 大小系列(包括 H 系列)中部署的核心数目。 若要请求增加配额,可免费 建立联机客户支持请求 。 (默认限制可能会因订阅类别而异。)
注意
如果有大规模容量需求,请联系 Azure 支持。 Azure 配额为信用额度,而不是容量保障。 不管配额是什么,都只根据所用的核心数计费。
虚拟网络 – Azure 虚拟网络不需要使用计算密集型实例。 但是,对于许多部署来说,如果需要访问本地资源,则可能至少需要一个基于云的 Azure 虚拟网络或站点到站点连接。 需要时,请创建一个新的虚拟网络来部署实例。 不支持将计算密集型 VM 添加到地缘组中的虚拟网络。
大小调整 - 可以只对同一大小系列(H 系列或 N 系列)内的计算密集型实例进行大小调整,因为它们使用专用硬件。 例如,可仅将 H 系列 VM 的大小从一个 H 系列大小调整为另一个。 对于某些 VM,可能需要考虑到 InfiniBand 驱动程序支持和 NVMe 磁盘方面的其他事项。
后续步骤
- 在 HPC 工作负载中详细了解如何配置 VM、启用 InfiniBand、设置 MPI 以及如何为 Azure 优化 HPC 应用程序。
- 查看 HBv3 系列概述和 HC 系列概述。
- 在 Azure 计算技术社区博客上阅读最新公告、HPC 工作负载示例和性能结果。
- 若要从体系结构角度更概略性地看待如何运行 HPC 工作负荷,请参阅 Azure 上的高性能计算 (HPC)。