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

Azure 上的高性能计算 (HPC)

HPC 简介

高性能计算 (HPC) 也称“大型计算”,使用大量基于 CPU 或 GPU 的计算机来解决复杂的数学任务。

许多行业使用 HPC 解决某些最困难的问题。 其中包括下述工作负荷:

  • 基因组学
  • 石油和天然气模拟
  • 金融
  • 半导体设计
  • 工程
  • 天气建模

云上的 HPC 有何不同?

本地和云中的 HPC 系统的一大区别是能否根据需要动态添加和删除资源。 动态缩放消除了计算容量这一瓶颈,允许客户根据作业要求调整其基础结构的大小。

以下文章更详细地介绍了此动态缩放功能。

实现清单

若要在 Azure 上实现自己的 HPC 解决方案,请确保参阅以下主题:

基础结构

有许多基础结构组件是构建 HPC 系统所必需的。 不管你选择如何管理 HPC 工作负荷,都需要使用计算、存储和网络基础组件。

计算

Azure 提供一系列已针对 CPU 和 GPU 密集型工作负荷进行优化的虚拟机大小。

基于 CPU 的虚拟机

支持 GPU 的虚拟机

N 系列的 VM 具备为计算密集型或图形密集型应用程序(包括人工智能 (AI) 学习和可视化)设计的 NVIDIA GPU。

存储

大规模的批处理和 HPC 工作负荷具有超过传统云文件系统功能的数据存储和访问需求。 可以通过许多解决方案来管理 Azure 上的 HPC 应用程序的速度和容量需求:

如需了解有关在 Azure 上比较 Lustre、GlusterFS 和 BeeGFS 的详细信息,请查阅 《Azure 上的并行文件系统》 电子书和 《Azure 上的 Lustre》 博客。

网络

H16r、H16mr、A8、A9 VM 可以连接到高吞吐量后端 RDMA 网络。 此网络可以提高在 Microsoft 消息传递接口(也就是更广为人知的 MPI 或 Intel MPI)下运行的紧密耦合的并行应用程序的性能。

管理

DIY

在 Azure 上从头开头构建 HPC 系统可以为你带来极大的灵活性,但通常需要进行很密集的维护。

  1. 通过 Azure 虚拟机或 虚拟机规模集设置自己的群集环境。
  2. 使用 Azure 资源管理器模板部署领先的 工作负荷管理器、基础结构和 应用程序
  3. 选择包含 MPI 或 GPU 工作负载专用硬件和网络连接的 HPC 和 GPU VM 大小
  4. 为 I/O 密集型工作负荷添加 高性能存储

混合和云突发

如果您希望将现有的本地 HPC 系统连接到 Azure,有许多资源可以帮助您开始。

首先,查看文档中 有关将本地网络连接到 Azure 文章的选项 。 在此处可以找到有关这些连接选项的其他信息:

安全建立网络连接以后,即可通过现有工作负载管理器的突发功能根据需要使用云计算资源。

市场解决方案

Azure 市场中提供了许多工作负荷管理器。

Azure 批处理

Azure Batch 是一种平台服务,用于在云中高效运行大规模并行和 HPC 应用程序。 Azure Batch 可以计划要在托管的虚拟机池上运行的计算密集型工作,并且可以自动缩放计算资源以符合作业的需求。

SaaS 提供商或开发商可以使用 Batch SDK 和工具将 HPC 应用程序或容器工作负荷与 Azure 集成,将数据暂存到 Azure,并生成作业执行管道。

Azure Batch 所有服务都在云中运行,下图显示了 Azure Batch 体系结构的外观,即在云中运行可伸缩性和作业计划配置,同时还可以将结果和报表发送到本地环境。

关系图显示了 Azure Batch 的示例 HPC 体系结构。

Azure CycleCloud

Azure CycleCloud 提供在 Azure 上使用任何计划程序(如 Slurm、网格引擎、HPC Pack、HTCondor、LSF、PBS Pro 或交响乐)管理 HPC 工作负荷的最简单方法

CycleCloud 允许执行以下操作:

  • 部署全部群集和其他资源,包括计划程序、计算 VM、存储、网络和缓存
  • 协调作业、数据和云工作流
  • 允许管理员完全控制运行作业的具体用户、位置和成本
  • 通过高级策略和治理功能(例如成本控制、Active Directory 集成、监视和报告)自定义并优化群集
  • 无需修改即可使用当前的作业计划程序和应用程序
  • 利用内置的自动缩放和经过测试的引用体系结构处理广泛的 HPC 工作负荷和行业工作负荷
混合/云突发模型

在此混合示例示意图中,我们可以清楚地看到这些服务在云和本地环境之间的分布情况。 有可能实现在这两个工作负载中运行作业。 该图示展示了在 Azure 上,面向混合环境的 CycleCloud 示例 HPC 架构。

云原生模型

下面的云原生模型示例示意图显示了云中的工作负荷如何处理所有内容,同时仍保留与本地环境的连接。

示意图显示了 Azure 上 CycleCloud 云原生模型中的示例 HPC 架构。

比较图表

功能 Azure 批处理 Azure CycleCloud
计划程序 Azure 门户(云原生)中的 Batch API、工具和命令行脚本。 使用标准 HPC 计划程序(如 Slurm、PBS Pro、LSF、Grid Engine 和 HTCondor),或扩展 CycleCloud 自动缩放插件以使用你自己的计划程序。
计算资源 服务型软件节点 - 平台即服务 平台即服务软件 - 平台即服务
监控工具 Azure Monitor Azure Monitor、Grafana
自定义 自定义映像池、第三方映像、Batch API 访问权限。 使用综合 RESTful API 自定义和扩展功能,部署您自己的调度程序,并将其集成到现有的工作负载管理器中。
集成 Synapse Pipelines、Azure 数据工厂、Azure CLI 适用于 Windows 和 Linux 的内置 CLI
用户类型 开发人员 经典 HPC 管理员和用户
工作类型 Batch、工作流 紧密耦合(消息传递接口/MPI)。
Windows 支持 因选择的计划程序而异

工作负荷管理器

下面是可在 Azure 基础结构中运行的群集和工作负荷管理器示例。 在 Azure VM 上创建独立的群集,或从本地群集扩展到 Azure VM。

容器

也可使用容器来管理某些 HPC 工作负荷。 可以使用 Azure Kubernetes 服务 (AKS) 之类的服务在 Azure 中轻松地部署托管的 Kubernetes 群集。

成本管理

可以通过多种不同的方式管理 Azure 上的 HPC 成本。 确保已查看 Azure 购买选项 ,以查找最适合组织的方法。

安全性

有关 Azure 上安全最佳做法的概述,请查看 Azure 安全文档

除了“云突发”部分提供的网络配置以外,还可实现中心/辐射型配置来隔离计算资源:

HPC 应用程序

在 Azure 中运行自定义 HPC 应用程序或商业 HPC 应用程序。 本节中几个示例已经通过基准测试,以验证它们可以随着增加更多的虚拟机或计算核心而高效地扩展。 访问 Azure 市场 以获取随时部署的解决方案。

注意

请向商业应用程序的供应商咨询有关在云中运行的许可或其他限制。 并非所有供应商都提供即用即付许可。 可能需要云中有一个用于自己的解决方案的许可服务器,或连接到本地许可证服务器。

工程应用程序

图形和渲染

AI 和深度学习

MPI 提供程序

远程可视化

在与 HPC 输出相同的区域中,在 Azure 中运行 GPU 支持的虚拟机,以实现最低延迟、访问,并通过 Azure 虚拟桌面进行远程可视化。

性能基准测试

客户案例

许多客户在将 Azure 用于其 HPC 工作负荷时都很成功。 可以在下面找到多个这样的客户案例研究:

其他重要信息

  • 在尝试运行大规模工作负荷之前,请确保 vCPU 配额 已增加。

后续步骤

有关最新公告,请参阅以下资源:

Microsoft Batch 示例

这些教程将详细介绍如何在 Microsoft Batch 上运行应用程序: