IB网上CPU-GPU异构超算平台容器性能评估及优化
2021-09-26王宪贺
胡 鹤,赵 毅,王宪贺
中国科学院 计算机网络信息中心,北京100190
传统HPC负载具有强环境依赖的特点,所需的软件堆栈通常很复杂,涉及编译器、通信中间件及数学库。容器技术的产生带来不同依赖环境下应用程序的可移植性。为支持智能业务的机器学习负载,超算平台均采用CPU+GPU的混合架构[1],有往容器迁移演进的趋势,确保开发环境的可移植性及训练的可复制性。美国橡树岭国家实验室的著名超级计算机SUMMIT提供了容器服务[2]。NERSC开发了类似Docker的Linux容器技术OpenShift来提高其HPC系统的灵活性和可用性[3]。天河二号实践了基于容器的HPC/大数据处理,优化了超算环境的公共服务能力与模式,优化用户应用体验[4]。
在并行应用程序中,影响性能的因素主要包括计算、通信以及I/O模式等。因此,相关研究对容器性能和裸机性能进行比对,以此来评估不同超算应用程序移植到容器中的适用性,并评估各种影响计算效率的因素。Felter等人在IBM研究报告[5]中指出,Docker的性能表现优于几乎所有测试场景中的虚拟化性能,但Docker分层文件存储方式会产生一定的I/O性能损耗,在网络密集型工作负载时,其本身的NAT会带来较大开销。GPU方面,文献[6]评估了机器学习应用在GPU上的训练效率,以证明容器化部署对机器学习的效率开销不大。通信方面,文献[7]对比同样进程数量但容器个数及容器内部进程数不同的情况下,NPB基准测试程序测试结果的变化,证明HPC工作负载会影响容器间的通信性能。I/O方面,文献[8]对容器的I/O性能竞争进行深入的讨论和实验分析,分析了I/O各项指标随容器数量的变化趋势,提出通过动态限制过载容器I/O强度从而提高容器系统I/O性能。……
