3.5 云上高性能计算
高性能计算(High Performance Computing,HPC)是计算技术发展最快的领域。 因为现代计算机最早的任务是为战场计算炮弹的弹道,所以,高性能计算都有共性, 即先在足够强大的计算机上仿真和建模、并行化、离散方程求解,再输出为人或机器可以理解和应用的结果。高性能计算由于面对的求解任务的强度大,复杂度和精度高,所以从早期的向量机、小型机到现代基于通用服务器的高性能计算集群,都采取了并行处理的编程模式。高性能计算因而又被称为并行计算(Parallel Computing), 和互联网上的分布计算(Distributed Computing)有一定的区别。 这里介绍的弹性高性能计算 E-HPC 是公共云上的 HPC PaaS(HPC as a Service)服务。
高性能计算体系结构的发展史其实是一部计算机技术的发展史。从19 世纪60 年代以前的ENIAC,到19 世纪70 年代的向量机Cray-1,又到19 世纪80 年代的并行机TMC CM2 大规模并行MPP,再到19 世纪90 年代的Intel ASCI 多处理器集群,直至21 世纪,集群就是HPC,GPU 异构集群大行其道。中国从天河2 号、太湖之光先后进入世界TOP500 到研制E 级超算,可以看到,基于集群和异构处理器的超算发展依然是领跑摩尔定律的、发展最快的计算机领域。
3.5.1 功能特点
1. 弹性高性能计算E-HPC
高性能计算聚焦于解决大规模科学和工程问题,如科学计算、气象预报、计算模拟、石油勘探、CFD/CAE、生物制药、基因测序、影视渲染等,主要目的是通过并行计算提高运算速度,在可接受的时间和精度范围内,对复杂问题求解,因此对高性能计算系统的浮点算力、内存带宽、并行密度、互连带宽和延迟、并行 I/O、存储等方面都有十分高的要求,其中的每一个环节都将直接影响系统的运算速度。当前的高性能计算体系结构= 节点+ 系统互联,其中,节点是计算机系统内相对独立的子系统,具备一台计算机的完整功能,在云上就是一台云服务器;系统互联即指多个相对独立的节点通过一定拓扑采用典型的MPI(+OpenMP)模式高速互联。
如图3-44 所示,求解一个飞行器外部的高速气体扰流速度和压力分布,通过MPI 模式同步通信,迭代求解偏微分方程组,就是典型的HPC 问题。
(a)典型的CFD流体模拟:偏微分方程组(b)模型求解分解为多个MPI网络进程 (c)通过多节点MPI通信并行求解偏微分方程
图 3-44 典型的HPC 问题
HPC 计算需要通过大量的 MPI 网络进程同步通信实现时间步长迭代,任何一个节点上的通信延迟,都会扩散到整个集群,造成整体等待。因此,采用高带宽低延迟的 高速专有网络(通常是 Infiniband / RDMA),以及计算和通信的负载均衡是关键。
典型的 HPC 系统如图 3-45 所示,硬件上分为管理节点、计算节点、高速网络、
管理网络和共享存储。阿里云 E-HPC 是基于飞天架构,以及多样和强大的弹性计算基础设施构造的一个云上超算集群PaaS 服务体系。
机安全组/云盾EIP服务(公网IP)
图 3-45 典型的 HPC 系统
高性能计算集群的软件系统是一个庞大复杂的体系,要支持从几个节点到上万节点的计算规模,由节点操作系统、通信中间件、并行作业调度、集群监控、资源管理、 并行开发工具链(编译器、数学库、性能调优工具等)和应用软件组成。
阿里云 E-HPC 完全基于阿里云原生架构,并和HPC 业界开放标准OpenHPC 全面兼容,以 SLA 服务模式提供了敏捷、快速和弹性伸缩的云上 HPC,图 3-46 所示为OpenHPC 软件栈与阿里云 E-HPC 架构。
图 3-46 OpenHPC 软件栈与阿里云 E-HPC 架构
2. 超级计算集群SCC
从每年两次的TOP500 世界最快的超级计算机排名可以看出,高性能计算用户大都是科研、工程计算领域的专业用户, 他们最关心的是HPC 系统的关键性能指标: 虚拟机云服务器能否提供物理机 CPU(GPU)具备的单节点高性能;网络是否满足 HPC 计算的低延迟高带宽,从而保证足够高的并行效率;存储能否支持并行文件系统所需的集聚带宽和响应速度。长期以来,这三个问题都是HPC 行业上云的障碍,对这“灵魂三问”, 阿里云基于神龙云服务器的 SCC 超级计算集群产品,通过软硬件协同创新,兼顾了云计算的弹性、稳定性,以及高性能计算对并行性能的极致追求,图 3-47 展示了阿里云超级计算集群的三点突破。
(1)基于神龙架构的弹性裸金属实例,vCPU 可以获得等同甚至超越物理机的性能输出,通过设置 HT OFF、NUMA ON 和进程绑定,HPC 应用可以释放裸金属极致性能。
(2)采用 RoCE 网络的 RDMA 通信实现计算节点间MPI 通信,满足 HPC 应用的低延迟通信,得到近乎线性的Linpack 加速比。
(3)构建在盘古块存储之上的 CPFS 并行文件系统,具备MPI 并行I/O 所需全部功能,并按需提供额外数据安全和拷贝。
图 3-47 阿里云超级计算集群的三点突破
通过以上三点,阿里云高性能计算为追求极致性能的 HPC 用户提供了具备“虚拟机心脏,物理机肌肉”的超级计算集群实例 SCC,相当于在云上构建了一台超级计算机,图 3-48 所示为基于神龙架构的超级计算集群。
低延迟RDMA 50/100Gbps网络基于Virtualization 2.0的ECS弹性裸金属服务器阿里云并行文件系统NAS/CPFS(Lustre*)
图 3-48 基于神龙架构的超级计算集群
高性能计算应用覆盖了诸多大计算行业,应用特征也各不相同,有浮点密集型和带宽密集型,有 I/O 密集型和通信约束型等。通过灵活组合不同的弹性计算实例作为计算节点, 在阿里云上可以构建“以平台配适应用”的E-HPC 集群,也就是说,除了SCC 产品家族,全部的弹性计算云服务器、 GPU 和 FPGA 及其不同的网络、存储组合,通过集群管理和并行调度平台,组合为用户可定制的“活的超算”。E-HPC 据此开发了全部HPC 集群管理、作业调度和运行时PaaS 系统,如图 3-49 所示。
对由于各种原因无法立刻迁移到公共云SCC 计算服务的用户,阿里云还在飞天专有云输出了基于Apsara Stack 企业版和敏捷版的SCC 专有云集群,提供基于飞天
专有云平台和第三方IaaS 管理平台的超级计算集群,其中SCC 仍然使用基于神龙云服务器的弹性裸金属,而节点间互联则采用Infiniband IB 网络,取代了公共云上的RDMA ROCE 网络。这是从公共云切换到专有云的一个技术权衡。用户可以在飞天专有云的SCC 集群上获得弹性裸金属集群的性能和专有云的弹性,同时通过IB 获得低延迟、高带宽的互联,用户可以选择在此构建自己的HPC 软件栈,也可以使用专有云版本的E-HPC 作为自己的HPC 平台,或者选用第三方HPC SaaS 平台,SCC 专有云方案如图3-50 所示。
图3-49 E-HPC——“活的超算”