论文部分内容阅读
神威太湖之光是目前Top500榜单上排名第一的超级计算机,整机Linpack性能达到93 PFlops,以国内自主研发的SW26010众核处理器为主要的计算节点。OpenFOAM(Open Source Field Operation and Manipulation)是计算流体力学领域使用最广泛的开源软件包,OpenFOAM基于C++语言设计开发,而SW26010的从核编译器不支持C++,使得OpenFOAM无法直接在该架构上有效运行。本文基于SW26010的主核/从核的体系架构移植了OpenFOAM的核心计算代码,并采用混合语言编程实现的方式解决编译不兼容的问题。此外,本文在从核上实现不同的稀疏矩阵存储格式和预处理方法,并通过向量化,寄存器通信和动态任务划分等方法进一步优化,单核组的性能较编译器优化代码提高了10倍左右,与Intel(R)Xeon(R)CPU E5-2695 v3串行执行性能相当。同时本文通过MPI和加速线程库的混合模型将OpenFOAM的从核实现扩展到了多核组集群上,并取得了较好的扩展性。本文主要有三点贡献:(1)将OpenFOAM移植到SW26010处理器上,解决编译器不兼容问题,并将核心算法从C++转换为C语言;(2)在SW26010处理器众核结构上实现不同的稀疏矩阵存储格式和预处理方法,并使用MPI与加速线程库的混合模型将从核代码扩展到多个核组;(3)结合SW26010处理器的体系架构,使用向量化、寄存器通信和动态任务划分等方法对求解器性能进行优化,显著提高了OpenFOAM求解器的运行速度。