神威太湖之光是最新一期Top500榜单上排名第一的超级计算机,峰值性能为125.4PFlops,其计算能力主要归功于国产SW26010众核处理器。OpenFOAM(Open Source Field Operation and Manipulation)是计算流体力学领域使用最广泛的开源软件包,...神威太湖之光是最新一期Top500榜单上排名第一的超级计算机,峰值性能为125.4PFlops,其计算能力主要归功于国产SW26010众核处理器。OpenFOAM(Open Source Field Operation and Manipulation)是计算流体力学领域使用最广泛的开源软件包,但是由于其基于C++实现,与神威太湖之光上的异构众核处理器SW26010的编译器不兼容,因此无法直接在该架构上有效运行。基于SW26010的主核/从核的体系架构移植了OpenFOAM的核心计算代码,并采用混合语言编程实现的方式来解决编译不兼容的问题。此外,通过寄存器通信、向量化和双缓冲等优化手段,单核组的性能较优化后的主核代码提高了8.03倍,较Intel(R)Xeon(R)CPU E5-2695v3的串行执行性能提高了1.18倍。同时,将单核组的实现扩展到了神威太湖之光的大规模集群上,并进行了强可扩展性测试,256个核组上实现了184.9倍的加速。采用的移植方式和优化手段也可以为其他复杂C++程序在神威太湖之光上的应用提供借鉴。展开更多
HGGF(halo-based galaxy group finder)算法实现了基于暗物质晕的星系找群,在研究宇宙大尺度结构及宇宙的演化等领域中占有至关重要的地位。但由于数据规模的增长,急需对HGGF算法进行优化,以缩短运行时间。经分析,算法的热点部分耗时受...HGGF(halo-based galaxy group finder)算法实现了基于暗物质晕的星系找群,在研究宇宙大尺度结构及宇宙的演化等领域中占有至关重要的地位。但由于数据规模的增长,急需对HGGF算法进行优化,以缩短运行时间。经分析,算法的热点部分耗时受到非规则访存的严重影响,因此针对算法的结构和非规则访存模型,提出了数据预排序方法,并分析了该方法如何影响访存过程。在此基础上,利用数据对齐、循环分解进一步优化访存效率,利用负载均衡和互斥变量私有化的方法提高了Open MP的并行效率,最终将HGGF应用使用12线程加速11.6倍,同时取得了更好的可扩展性。主要有三点贡献:(1)分析了HGGF算法的非规则访存问题;(2)提出并分析了数据预排序方法;(3)使用数据对齐、循环分解、负载均衡、互斥变量私有化方法提高了HGGF应用的并行性能。展开更多
文摘神威太湖之光是最新一期Top500榜单上排名第一的超级计算机,峰值性能为125.4PFlops,其计算能力主要归功于国产SW26010众核处理器。OpenFOAM(Open Source Field Operation and Manipulation)是计算流体力学领域使用最广泛的开源软件包,但是由于其基于C++实现,与神威太湖之光上的异构众核处理器SW26010的编译器不兼容,因此无法直接在该架构上有效运行。基于SW26010的主核/从核的体系架构移植了OpenFOAM的核心计算代码,并采用混合语言编程实现的方式来解决编译不兼容的问题。此外,通过寄存器通信、向量化和双缓冲等优化手段,单核组的性能较优化后的主核代码提高了8.03倍,较Intel(R)Xeon(R)CPU E5-2695v3的串行执行性能提高了1.18倍。同时,将单核组的实现扩展到了神威太湖之光的大规模集群上,并进行了强可扩展性测试,256个核组上实现了184.9倍的加速。采用的移植方式和优化手段也可以为其他复杂C++程序在神威太湖之光上的应用提供借鉴。
文摘HGGF(halo-based galaxy group finder)算法实现了基于暗物质晕的星系找群,在研究宇宙大尺度结构及宇宙的演化等领域中占有至关重要的地位。但由于数据规模的增长,急需对HGGF算法进行优化,以缩短运行时间。经分析,算法的热点部分耗时受到非规则访存的严重影响,因此针对算法的结构和非规则访存模型,提出了数据预排序方法,并分析了该方法如何影响访存过程。在此基础上,利用数据对齐、循环分解进一步优化访存效率,利用负载均衡和互斥变量私有化的方法提高了Open MP的并行效率,最终将HGGF应用使用12线程加速11.6倍,同时取得了更好的可扩展性。主要有三点贡献:(1)分析了HGGF算法的非规则访存问题;(2)提出并分析了数据预排序方法;(3)使用数据对齐、循环分解、负载均衡、互斥变量私有化方法提高了HGGF应用的并行性能。