Page 38 - 《软件学报》2021年第8期
P. 38
2320 Journal of Software 软件学报 Vol.32, No.8, August 2021
program achieves 2.3 PFLOPS on 512 nodes, with floating-point efficiency 71.1%.
Key words: HPL; heterogeneous system; cross-platform; performance modeling; exascale computing
HPL(high performance linpack)是目前 HPC 领域中最重要的基准测试程序之一,其性能被用作 TOP500 的排
名依据 [1,2] .HPL 可以从超级计算机的计算性能、访存性能、网络性能、可用性和稳定性等各个方面给予超级
计算机综合评价.HPL 的优化具有重要意义,在学界长期受到关注和研究.HPL 的优化可以为其他科学计算应用
的并行优化提供有价值的参考.
[3]
自 1993 年 TOP500 排名开始,榜单中的超级计算机的体系结构一直在发生变化.图 1 展示了排名第一的计
算机的体系结构的变化.从图 1 中我们可以看到超算的体系结构从早期的向量处理器和单核通用 CPU 时代开
始,然后演进到多核 CPU 时代,超
级 计 算 机的计 算能 力也从
GFLOPS 提升到 TFLOPS.2008 年
[4]
的超算 Roadrunner 标志着异构
架构的超级计算机体系结构的兴
起,随后异构架构开始频繁涌现,
超级计算机进入了 PFLOPS 的时
代.各种加速器,如 GPU、DSP、
FPGA、MIC 等都作为加速卡出
现在各种超算中,我国有也了自
己的国产加速器和国产处理器.
Fig.1 History of supercomputer architecture and computing power
伴 随 着 超算体 系结 构的变 化 ,
图 1 超级计算机体系结构与计算能力发展历史
HPL 算法的设计与实现也应该适
应新的体系结构.在这种背景下,本文建立了国产处理器-国产加速器异构架构上的 HPL 性能模型,重点研究了
国产处理器-国产加速器异构架构下的 HPL 算法的设计与实现.本文的主要贡献如下:
• 本文建立了一个 HPL 性能模型.
• 针对国产处理器-国产加速器异构架构,本文设计了一种多线程细粒度流水 HPL 算法,充分利用异构系
统中的多种硬件,取得了超过同类系统其他实现的效率.
• 本文实现了轻量级跨平台的异构加速框架 HPCX.
本文第 1 节分析相关研究.第 2 节介绍 HPL 的性能模型.第 3 节给出针对异构架构的多线程细粒度流水 HPL
算法及异构加速框架 HPCX.第 4 节呈现新 HPL 算法的性能以及分析.第 5 节总结全文.
1 相关研究
HPL 是横量超算性能最重要的基准测试程序之一,其性能作为 TOP500 排名的依据.由于 HPL 的重要地位,
国内外有许多针对 Linpack 的优化工作.这些工作主要集中在 HPL 算法优化,双精度矩阵乘法效率优化和 HPL
性能模型 3 个方面.
在 Linpack 算法优化方面,Dongarra 等人基于消息通信接口(message pass interface,简称 MPI)和基本线性数
[1]
学库(basic linear arithmetic subroutine,简称 BLAS)的 Level 3 函数实现了分布式的 HPL 算法 .在此基础上,文献
[5]提出了一种单边通信和动态 look-ahead 算法,通过重叠第 i+1 轮迭代的 panel 分解与第 i 轮迭代的尾矩阵更
新来实现部分通信与计算的重叠.针对异构架构,Fatica 通过将尾矩阵划分为固定比例的两块分别分配给加速
[6]
器和 CPU 以实现 CPU 和加速器的协同计算 .Yang 扩展了 Fatica 的工作实现了动态的 CPU 和加速器计算任
[7]
务划分,采取根据上一次计算的 CPU/加速器性能比决定下一轮任务划分比例的策略 .文献[8]实现了一种
work-stealing 的策略来实现 CPU 和加速器的计算任务动态平衡,并且利用有向无环图来维护算法中的计算依
赖关系.通过这种对依赖关系的分析,文献[8]将行交换的过程分成几个部分,通过行交换和尾矩阵更新的相互重