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

Azure 上的高性能计算 (HPC)

HPC 简介

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

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

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

云上的 HPC 有何不同?

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

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

实现清单

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

基础结构

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

示例 HPC 体系结构

可以通过许多不同的方式在 Azure 上设计和实现 HPC 体系结构。 HPC 应用程序可扩展到数千个计算核心,扩展本地群集或作为 100% 的云原生解决方案来运行。

以下方案概述了生成 HPC 解决方案的一些常见方式。

  • Azure 上计算机辅助工程服务的示例 HPC 体系结构示意图。

    Azure 上的计算机辅助工程服务

    为 Azure 上的计算机辅助工程 (CAE) 提供软件即服务 (SaaS) 平台。

  • Azure 上计算流体动力学解决方案的示例 HPC 体系结构示意图。

    Azure 上的计算流体动力学 (CFD) 模拟

    在 Azure 上执行计算流体动力学 (CFD) 模拟。

  • Azure 上 3D 视频渲染的示例 HPC 体系结构示意图。

    Azure 上的 3D 视频渲染

    使用 Azure Batch 服务在 Azure 中运行本机 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 Batch

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

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

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

Azure Batch 的示例 HPC 体系结构示意图。

Azure CycleCloud

Azure CycleCloud 提供的在 Azure 上使用任何计划程序(例如 Slurm、Grid Engine、HPC Pack、HTCondor、LSF、PBS Pro 或 Symphony)管理 HPC 工作负荷的方法是最简单的

CycleCloud 允许执行以下操作:

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

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

云原生模型

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

云原生模型中 Azure 上的 CycleCloud 的示例 HPC 体系结构示意图。

比较图表

功能 Azure Batch 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 应用程序。 本部分中的几个示例已成为使用更多 VM 或计算核心高效进行缩放的基准。 请访问 Azure 市场获取随时可供部署的解决方案。

注意

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

工程应用程序

图形和渲染

AI 和深度学习

MPI 提供程序

远程可视化

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

性能基准测试

客户案例

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

其他重要信息

  • 确保在尝试运行大规模工作负荷之前已提高 vCPU 配额

后续步骤

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

Microsoft Batch 示例

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