大型计算体系结构样式

Azure
Azure 批处理

计算 术语描述需要大量核心的大型工作负荷,通常以数百或数千个为单位。 方案包括图像渲染、流体动力学、财务风险建模、石油勘探、药物设计和工程压力分析等。

大型计算体系结构样式的逻辑图

下面是大型计算应用程序的一些典型特征:

  • 工作可以拆分为离散任务,这些任务可以同时跨多个核心运行。
  • 每个任务都是有限的。 它需要一些输入,执行一些处理,并生成输出。 整个应用程序运行的时间有限(分钟到天)。 常见的模式是在突发中预配大量核心,然后在应用程序完成后向下旋转到零。
  • 应用程序不需要保持 24/7。 但是,系统必须处理节点故障或应用程序崩溃。
  • 对于某些应用程序,任务是独立的,可以并行运行。 在其他情况下,任务紧密耦合,这意味着它们必须交互或交换中间结果。 在这种情况下,请考虑使用高速网络技术,如 InfiniBand 和远程直接内存访问(RDMA)。
  • 根据工作负荷,可以使用计算密集型 VM 大小(H16r、H16mr 和 A9)。

何时使用此体系结构

  • 计算密集型作,例如模拟和数字处理。
  • 计算密集型且必须在多台计算机(10-1000s)中跨 CPU 拆分的模拟。
  • 需要一台计算机内存过多的模拟,并且必须跨多台计算机拆分。
  • 长时间运行的计算在单个计算机上完成需要太长的时间。
  • 必须运行 100 或 1000 次的较小计算,例如蒙特卡洛模拟。

优点

  • 高性能与“尴尬并行”处理。
  • 可以利用数百或数千个计算机核心更快地解决大型问题。
  • 使用专用高速 InfiniBand 网络访问专用高性能硬件。
  • 可以根据需要预配 VM 来执行工作,然后将其拆解。

挑战

  • 管理 VM 基础结构。
  • 管理数字处理量
  • 及时预配数千个核心。
  • 对于紧密耦合的任务,添加更多核心可能会减少回报。 可能需要进行试验才能找到最佳核心数。

使用 Azure Batch 的大计算

Azure Batch 是用于运行大规模高性能计算(HPC)应用程序的托管服务。

使用 Azure Batch 配置 VM 池,并上传应用程序和数据文件。 然后,Batch 服务将预配 VM、将任务分配给 VM、运行任务并监视进度。 Batch 可以自动横向扩展 VM 以响应工作负荷。 Batch 还提供作业计划。

使用 Azure Batch 的大计算示意图

虚拟机上运行的大计算

可以使用 Microsoft HPC Pack 管理 VM 群集,并计划和监视 HPC 作业。 使用此方法时,必须预配和管理 VM 和网络基础结构。 如果有现有的 HPC 工作负载,并且想要将其部分或全部移动到 Azure,请考虑此方法。 可以将整个 HPC 群集移动到 Azure,也可以将 HPC 群集保留在本地,但使用 Azure 来突发容量。 有关详细信息,请参阅 适用于大规模计算工作负荷的 Batch 和 HPC 解决方案

部署到 Azure 的 HPC Pack

在此方案中,HPC 群集完全在 Azure 中创建。

部署到 Azure 的 HPC Pack 示意图

头节点向群集提供管理和作业计划服务。 对于紧密耦合的任务,请使用 RDMA 网络,该网络在 VM 之间提供非常高的带宽、低延迟通信。 有关详细信息,请参阅 在 Azure 中部署 HPC Pack 2016 群集

将 HPC 群集突发到 Azure

在此方案中,组织在本地运行 HPC Pack,并使用 Azure VM 进行突发容量。 群集头节点在本地。 ExpressRoute 或 VPN 网关将本地网络连接到 Azure VNet。

混合大型计算群集示意图

后续步骤