文/张洋 陈文波 胡广超
目前高性能计算应用场景众多,每种应用需要不同的配套软件环境和大量的系统依赖,如不同版本的操作系统、库、编译器等。如何在同一个平台满足各种不同的应用,而且应用之间互不干扰,是有效管理高性能计算平台,提高计算资源利用效率面临的一个重要挑战。传统的虚拟化技术可以解决部署和维护的问题,但是由于在计算上增加了额外的虚拟化负载,无法最大化利用机器的物理资源使其有效计算,所以不适合HPC应用。
容器是一种能够在隔离环境执行应用程序的软件组件,它建立在宿主机操作系统之上并利用了宿主机的内核,通过命名空间和 Cgroup 进行资源的隔离和控制,是一种轻量级的虚拟机[1]。容器具有可移植性、可重复性、灵活性并快速启动,相对于其他虚拟化技术,物理性能损耗低,在资源隔离、弹性调度、额外的虚拟化负载等方面具有明显技术优势。容器通过将运行目标软件所需的计算环境的关键元素打包到轻量级虚拟框架中降低复杂性,同时不改变运行所需的资源,让软件更容易使用,结果更容易复制[2]。利用容器技术可以让HPC不同应用进行有效的隔离,解决传统HPC应用程序安装、升级以及安装包之间的依赖性等问题,让系统的部署和运维变得更加有效。不仅如此,容器还保存了计算环境、数据和代码,提高了实验的重复性。因此它可以在高性能计算场景广泛使用和推广。
Docker是一种较为成熟的容器技术,它提供了一种分层的应用镜像管理机制,将复杂的软件环境打包,易于维护和管理,广泛应用在很多云计算领域。但是由于HPC应用需要“裸金属”物理机性能,快速的网络连接,可控制的资源调度和作业管理,可扩展的并行文件系统,集中化的软件栈;而Docker存在一些缺陷,如调度管理器的资源限制无法施加到容器中,非root用户使用授权问题,MPI的应用程序在Docker上性能不高,网络栈对Docker私有导致对Infiniband不支持,这些都使得它在HPC领域应用有诸多不便[3]。
Singularity是美国劳伦斯伯克利实验开发的容器技术。它弥补了Docker容器的缺点如非root用户使用权限、可以挂载本地的文件系统、OPA、Infiniband和OpenMPI的友好支持以及方便的镜像文件迁移,而且用户在容器外和容器内的权限都是一样[4]。由于出现的时间较短,它的社区以及镜像市场没有Docker成熟和丰富,目前Singularity在国外计算中心使用较多,如德克萨斯计算中心、弗罗里达大学、圣地亚哥超级计算中心、劳伦伯克利实验室、普渡大学、麻省理工、斯坦福、亚利桑那大学、佐治亚州大学、德国亥姆霍兹中心等。
CRCT轻量级虚拟化是联科公司专为高性能计算环境设计和开发的容器技术,融合业界前沿的容器概念、前端展示技术、高性能计算技术。可兼容高性能计算环境中常见的各种专用硬件设备,如Infiniband/OPA等,全面兼容Docker所采用的镜像格式,可以在完全不改变用户使用习惯的情况下,支持超大规模的并行计算。它通过init为入口运行完整的操作系统,支持多节点分布式集群的创建,容器内虚拟集群的作业调度。不仅为科研计算用户提供传统计算中心提供的强大计算力,还提供根据实际应用程序所需的、用户可自定义的、动态切换的计算环境,以及从算例、算法到数据的全方位服务。
我们选取CRCT容器方案,并在华为公有云上部署由一台登录节点和五台计算节点组成的高性能计算集群上进行五组应用的测试。每个节点提供2颗Intel Xeon Gold SkyLake 6100系列 CPU,每颗CPU提供3.0GHz主频,18Core的高性能CPU,192GB DDR4 2666MHz内存,1颗1.6TB NVMe SSD硬盘,计算网络采用100Gb/s的EDR网络接口。
五种应用分别是高性能计算领域常用的Matlab、VASP、WRVF、PISM和COMOSOL。我们分别在CRCT容器环境和“裸金属”物理环境部署上述五种软件,通过具体算例的运行时间(秒)来观察两种环境下五种并行软件的计算性能及容器的性能损耗。其中WRF、VASP和PISM三种软件可以实现多节点并行计算,Matlab、Comosol实现单节点多核并行。
1. Matlab
Matlab是一款商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。本次计算Kuromoto-Sivashinsky方程的李指数及其对应的李雅普诺夫熵,测试结果见表1。
表1
2. WRF应用
WRF全 称Weather Research and Forecasting Model, 是一个天气研究与预报模型,以作为全球模式进行天气预报,也可以作为区域模式进行天气现象的数值模拟。本次测试采WRF- Chem模式测试2010年8月1日到30日发生在青藏高原地区的一次深对流过程,通过对臭氧、水汽、CO等物质的传输特征进行分析,研究亚洲夏季风期UTLS区域的STE特征,测试结果见表2。
表2
3. PISM
PISM为冰川计算模型,本次测试模拟格林兰岛过去和现在的冰盖演化情况,根据气候记录给出合适的约束条件( 底部状况、 表面温度、积累率等约束参数) 可以得到冰盖演化过程中一系列动态参数(冰内各处温度、冰流速度、压力、等时冰层深度变化、触地线进退等变化信息)。测试结果见表3。
表3
4. VASP分子动力学模拟软件包
VASP是维也纳大学Hafner小组开发的进行电子结构计算和量子力学-分子动力学模拟软件包。它是目前材料模拟和计算物质科学研究中最流行的商用软件之一,本次采用用VASP软件计算C28 3D-C材料的弹性系数,方法采用GGA-PBE函数高精度模拟,从而对得到的弹性模量、杨氏模量、泊松比等进行计算分析,研究该材料的机械性质。测试结果见表4。
表4
5. COMSOL Multiphysics软件
COMSOL Multiphysics是一款功能强大的多物理场仿真软件,用于仿真模拟工程、制造和科研等各个领域的设计、设备及过程。本次测试超导线圈的失超传播问题是一个强非线性的热传导-电场耦合问题。该问题的COMSOL模型所用网格总数为184860个,每一时间步长需要求解的温度场、电场自由度总数为1684507个,每一时间步采用循环迭代的方式求解热传导-电场耦合方程,根据收敛精度,自动的、动态调整时间步长,其最大允许时间步长为0.01sec,初始时间步长为1×10-4sec,总计求解的时间长度为1.0 sec。测试结果见表5。
表5
基于上述测试结果,我们可以看出五种软件在基于容器的集群和物理机集群上的运算时间相差无几,容器的物理性能损耗在1%以内。另外容器内部环境优化后系统开销较少,所以出现容器集群的运行时间还略低于物理集群。同时,用户的空间在容器内和容器外一致,只需要不同的地址就可以在物理机和容器间进行切换,利用了容器技术的优势,良好地解决了传统HPC应用程序升级和管理问题,给高性能计算应用提供了更有效的容器解决方案。
高性能计算已经历了两次“可移植性”革命:统一使用Unix和MPI的引入。容器技术将引领高性能计算“可移植性”的第三次革命,它已经彻底改变了大规模云计算,也将掀起HPC的新世界。