开源CFD软件OpenFOAM在神威太湖之光上的移植与优化
发布时间:2020-09-10 14:43
神威太湖之光是目前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求解器的运行速度。
【学位单位】:上海交通大学
【学位级别】:硕士
【学位年份】:2018
【中图分类】:TP338
【部分图文】:
立方体的上边界是一个沿 x 方向移动的面,其他均是静止的面,Cavity 算例下使用icoFOAM 求解器瞬态求解不可压缩牛顿流体层流,算例网格由 OpenFOAM 自带的网格生成工具 blockMesh 生成,可以在 xyz 三个方向进行切分,如图6 1所示,默认的算例规模为 400,单核组并行效率测试和多核组弱扩展性测试的规模为 160000,多核组强扩展性测试的规模为 2560000。图 6 1 Cavity 算例Fig 6 1 Cavity test case— 43 —
PitzDaily 算例下使用 simpleFOAM 求解器瞬态求解后向的不可压缩湍流,算例网格由 OpenFOAM 自带的网格生成工具 blockMesh 生成,可以在 xy 两个方向进行切分,如图6 2所示,默认的算例规模为 12225,单核组并行效率测试和多核组强弱扩展性测试的规模均为 305625。图 6 2 PitzDaily 算例Fig 6 2 PitzDaily test case测试算例 sWing 对应的物理模型是长宽为 7000,高为 3500 的立方体,sWing 算例下使用 simpleFOAM 求解器瞬态求解不可压缩湍流,算例网格由 OpenFOAM 自带的网格生成工具 blockMesh 生成,可以在 xyz 三个方向进行切分,如图6 3所示
PitzDaily 算例下使用 simpleFOAM 求解器瞬态求解后向的不可压缩湍流,算例网格由 OpenFOAM 自带的网格生成工具 blockMesh 生成,可以在 xy 两个方向进行切分,如图6 2所示,默认的算例规模为 12225,单核组并行效率测试和多核组强弱扩展性测试的规模均为 305625。图 6 2 PitzDaily 算例Fig 6 2 PitzDaily test case测试算例 sWing 对应的物理模型是长宽为 7000,高为 3500 的立方体,sWing 算例下使用 simpleFOAM 求解器瞬态求解不可压缩湍流,算例网格由 OpenFOAM 自带的网格生成工具 blockMesh 生成,可以在 xyz 三个方向进行切分,如图6 3所示
本文编号:2815943
【学位单位】:上海交通大学
【学位级别】:硕士
【学位年份】:2018
【中图分类】:TP338
【部分图文】:
立方体的上边界是一个沿 x 方向移动的面,其他均是静止的面,Cavity 算例下使用icoFOAM 求解器瞬态求解不可压缩牛顿流体层流,算例网格由 OpenFOAM 自带的网格生成工具 blockMesh 生成,可以在 xyz 三个方向进行切分,如图6 1所示,默认的算例规模为 400,单核组并行效率测试和多核组弱扩展性测试的规模为 160000,多核组强扩展性测试的规模为 2560000。图 6 1 Cavity 算例Fig 6 1 Cavity test case— 43 —
PitzDaily 算例下使用 simpleFOAM 求解器瞬态求解后向的不可压缩湍流,算例网格由 OpenFOAM 自带的网格生成工具 blockMesh 生成,可以在 xy 两个方向进行切分,如图6 2所示,默认的算例规模为 12225,单核组并行效率测试和多核组强弱扩展性测试的规模均为 305625。图 6 2 PitzDaily 算例Fig 6 2 PitzDaily test case测试算例 sWing 对应的物理模型是长宽为 7000,高为 3500 的立方体,sWing 算例下使用 simpleFOAM 求解器瞬态求解不可压缩湍流,算例网格由 OpenFOAM 自带的网格生成工具 blockMesh 生成,可以在 xyz 三个方向进行切分,如图6 3所示
PitzDaily 算例下使用 simpleFOAM 求解器瞬态求解后向的不可压缩湍流,算例网格由 OpenFOAM 自带的网格生成工具 blockMesh 生成,可以在 xy 两个方向进行切分,如图6 2所示,默认的算例规模为 12225,单核组并行效率测试和多核组强弱扩展性测试的规模均为 305625。图 6 2 PitzDaily 算例Fig 6 2 PitzDaily test case测试算例 sWing 对应的物理模型是长宽为 7000,高为 3500 的立方体,sWing 算例下使用 simpleFOAM 求解器瞬态求解不可压缩湍流,算例网格由 OpenFOAM 自带的网格生成工具 blockMesh 生成,可以在 xyz 三个方向进行切分,如图6 3所示
【参考文献】
相关期刊论文 前1条
1 袁娥;张云泉;孙相征;;RAM(h)模型下SpMV存储访问复杂度的分析[J];计算机工程与设计;2009年03期
相关硕士学位论文 前1条
1 应智;基于GPU的OpenFOAM并行加速研究[D];上海交通大学;2012年
本文编号:2815943
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2815943.html