在很多 HPC 工作负载中,实现应用程序或工作流程的最佳端到端性能取决于选择适当的技术来在处理期间托管您的文件或将您的网络堆栈配置为最佳执行 MPI 或其他通信协议。此模块涵盖 AWS 在这些区域提供的选项,并为您提供价格/性能考虑因素方面的指导,从而帮助您为每个工作负载选择适当的解决方案

涵盖的主题:

  • AWS for HPC 上的存储
  • HPC 工作负载的网络可扩展性

AWS 上的存储选项概述:AWS 提供很多存储选项,范围从高性能对象存储到可以与 EC2 实例连接的很多系统类型不等。除了庞大的性能之外,还有多个维度可以区分这些存储类型,其中包括成本和可扩展性。下表可为您提供一些方向,帮助您找到每个 HPC 数据的适当存储:

HPC 的共享文件系统:共享存储可以通过很多方式实现,例如,通过在 EBS 卷上挂载简单的 NFS、通过使用 EBS 卷组合的 Intel Lustre,以及称为 EFS 的托管 AWS 服务。与实例类型相同的是,很容易测试存储选项以找到性能最好的文件系统类型。

实例附加存储:EBS 卷还包含多种选项,范围从高 IOPS 容量、 通用选项到磁性选项不等。很多 HPC 应用程序在价格较低的通用和磁性卷 EBS 存储类型上运行的很好。与实例选择相同的是,EBS 卷选择易于测试,以便采用优化的解决方案。

实验室存储配置:默认的 EnginFrame 自动化中所用的存储配置选项描述如下:

  • 集成脚本在主节点和计算节点的 /efs 下挂载一个 EFS 卷——此文件系统包含一个应用程序目录和一个 spooler 目录,后者默认为您的每个作业托管独立的提交目录
  • AWS ParallelCluster 还提供附加到主节点的 EBS gp2 卷及作为 /shared 挂载到计算节点的 NFS
  • 主实例中的 /home 目录也是挂载到计算节点的 NFS。该目录安装在 OS 的同一个文件系统,不建议用于永久存储

工作负载不同,这些共享文件系统的性能也可以有很大不同。要想了解哪一个系统最适合您,最好的方法是同时在 /efs(在 EnginFrame 中被配置为默认位置)和 /shared 上对同一个案例进行基准测试。


当前的 AWS 联网:AWS 当前使用 SR-IOV(单个根 I/O 虚拟化)支持增强联网功能。SR-IOV 是一种设备虚拟化方法,与传统实现相比,它不仅能提供更高的 I/O 性能,同时还能降低 CPU 利用率。对于支持的 Amazon EC2 实例,此功能提供更高的每秒数据包数 (PPS) 性能、更低的实例间延迟和极低的网络抖动,经测试,能同时很好的执行高吞吐量计算 (HTC) “embarrassingly parallel” 应用程序以及“紧密耦合”或基于 MPI 和 OpenMP 的 HPC 应用程序。 

网络速度取决于实例类型到实例大小,例如, 当使用同一个置放群组(实例的逻辑群组)时,r4.16xlarge 提供 20GB 的实例间连接和增强的联网。

实验室联网配置:默认情况下,实验室创建新的置放群组,并要求在其中启动集群所有的计算节点。这将在节点之间提供最低的延迟和最高的带宽,如果您运行 MPI 应用程序,这一点尤其重要。如果您有一个水平扩展到数万个或以上核心(超出了此实验室的范围)的 HTC 问题,您应当考虑在多个放置群组中运行它们,从而使 EC2 更加灵活,以便能在其中分配大量节点。您可以在 AWS ParallelCluster 配置中设置以下参数来禁用固定置放群组:

placement_group = NONE

提示:如果您需要将您的集群扩展到大量节点,或者您有高性能存储要求,与您的技术客户经理或 HPC 解决方案架构师沟通是一个很好的办法,他们会审查您的目标架构、帮助确定潜在的瓶颈并针对您的特定目标选择适当的技术。