海洋环流模式LICOM的GPU实现与优化
发布时间:2021-04-14 21:51
【目的】为了加速海洋环流模式LICOM的积分计算,降低因分辨率的提升而带来的运行成本,本文设计并实现了基于CUDA C的GPU加速版本。【方法】本文基于目前最新的LICOM3版本,在分析LICOM海洋网格块的并行算法的基础上,结合使用CUDA线程并行计算海洋网格点,将LICOM主要计算程序移植到GPU平台上,并从数据传输和设备内存的使用两个方面进行优化。【结果】实验表明,GPU版本模拟结果的与原CPU版本基本一致。与使用相同数量的Intel Xeon E5-2680 V2 CPU相比,使用2至16块NVIDIA K20 GPU单个模式天加速了9.31到1.27倍。【局限】由于LICOM3计算的边界同步通信比较多,限制了程序的可扩展性,未来需要通过边界通信优化和算法优化来提高模式的可扩展性。【结论】本文对LICOM3程序进行了GPU版本的实现和优化,取得了一定的加速效果并保持较好的扩展性,为今后面向更大规模计算的海洋环流模式发展提供了经验和参考。
【文章来源】:数据与计算发展前沿. 2020,2(04)
【文章页数】:13 页
【部分图文】:
GPU架构
CUDA存储模型按照访问速度从快到慢分别为寄存器、共享内存、常量内存、全局内存和局部内存。如图6所示,寄存器和共享内存都是片上存储空间,供SM上的所有活跃线程使用,其中寄存器是不可编程的且属于线程私有,共享内存由同一个Block内的线程共享。全局内存、局部内存和常量内存都位于片外显存中,其中全局内存和常量内存由同一个Grid内的线程共享,而局部内存属于线程私有且不能合并访存。2.3 LICOM在GPU上的实现
本文将LICOM迭代计算过程中的7个模块使用CUDA C进行GPU移植,其他的预处理部分、模块初始化部分以及MPI通信部分仍保留原来的Fortran程序。在MPI并行计算海洋网格块的基础之上,结合使用CUDA线程并行计算海洋网格点。如图7所示,每个MPI进程负责一个海洋网格块的计算,海洋网格块内的网格点由GPU线程并行执行。表1和表2显示了LICOM程序片段的Fortran实现与CUDA实现的对应关系,CPU中的全局变量映射到GPU上的全局内存中,例如CPU全局变量VIV,在GPU申请为全局内存变量d_viv。
【参考文献】:
期刊论文
[1]基于FMM-PM方法的宇宙N体模拟在GPU上的实现和优化[J]. 扶月月,王武,王乔. 数据与计算发展前沿. 2020(02)
[2]LICOM Model Datasets for the CMIP6 Ocean Model Intercomparison Project[J]. Pengfei LIN,Zhipeng YU,Hailong LIU,Yongqiang YU,Yiwen LI,Jirong JIANG,Wei XUE,Kangjun CHEN,Qian YANG,Bowen ZHAO,Jilin WEI,Mengrong DING,Zhikuo SUN,Yaqi WANG,Yao MENG,Weipeng ZHENG,Jinfeng MA. Advances in Atmospheric Sciences. 2020(03)
[3]2019年中国高性能计算机发展现状分析与展望[J]. 张云泉,袁良,袁国兴,李希代. 数据与计算发展前沿. 2020(01)
[4]地球系统模式CAS-ESM[J]. 周广庆,张云泉,姜金荣,张贺,吴保东,曹杭,王天一,郝卉群,朱家文,袁良,张明华. 数据与计算发展前沿. 2020(01)
[5]海洋模式LICOM的MIC并行优化[J]. 王文浩,姜金荣,王玉柱,迟学斌. 科研信息化技术与应用. 2015(03)
[6]面向LICOM2的并行I/O优化[J]. 季旭,武海平,邹寅隆,梁亚雄,薛巍,尹万旺,林鹏飞,刘海龙,俞永强. 科研信息化技术与应用. 2014(05)
[7]高性能计算机系统及平台发展状况分析[J]. 迟学斌,顾蓓蓓,武虹,王龙,朱鹏. 计算机工程与科学. 2013(11)
[8]非静压海洋数值模式加速计算的CUDA实现[J]. 王春晖,苗春葆,沈飙. 中国海洋大学学报(自然科学版). 2013(08)
[9]海洋环流数值模式POP的GPU并行优化[J]. 郭松,窦勇,雷元武. 计算机工程与科学. 2012(08)
[10]IAP第四代大气环流模式的气候系统模式模拟性能评估[J]. 孙泓川,周广庆,曾庆存. 大气科学. 2012(02)
本文编号:3138079
【文章来源】:数据与计算发展前沿. 2020,2(04)
【文章页数】:13 页
【部分图文】:
GPU架构
CUDA存储模型按照访问速度从快到慢分别为寄存器、共享内存、常量内存、全局内存和局部内存。如图6所示,寄存器和共享内存都是片上存储空间,供SM上的所有活跃线程使用,其中寄存器是不可编程的且属于线程私有,共享内存由同一个Block内的线程共享。全局内存、局部内存和常量内存都位于片外显存中,其中全局内存和常量内存由同一个Grid内的线程共享,而局部内存属于线程私有且不能合并访存。2.3 LICOM在GPU上的实现
本文将LICOM迭代计算过程中的7个模块使用CUDA C进行GPU移植,其他的预处理部分、模块初始化部分以及MPI通信部分仍保留原来的Fortran程序。在MPI并行计算海洋网格块的基础之上,结合使用CUDA线程并行计算海洋网格点。如图7所示,每个MPI进程负责一个海洋网格块的计算,海洋网格块内的网格点由GPU线程并行执行。表1和表2显示了LICOM程序片段的Fortran实现与CUDA实现的对应关系,CPU中的全局变量映射到GPU上的全局内存中,例如CPU全局变量VIV,在GPU申请为全局内存变量d_viv。
【参考文献】:
期刊论文
[1]基于FMM-PM方法的宇宙N体模拟在GPU上的实现和优化[J]. 扶月月,王武,王乔. 数据与计算发展前沿. 2020(02)
[2]LICOM Model Datasets for the CMIP6 Ocean Model Intercomparison Project[J]. Pengfei LIN,Zhipeng YU,Hailong LIU,Yongqiang YU,Yiwen LI,Jirong JIANG,Wei XUE,Kangjun CHEN,Qian YANG,Bowen ZHAO,Jilin WEI,Mengrong DING,Zhikuo SUN,Yaqi WANG,Yao MENG,Weipeng ZHENG,Jinfeng MA. Advances in Atmospheric Sciences. 2020(03)
[3]2019年中国高性能计算机发展现状分析与展望[J]. 张云泉,袁良,袁国兴,李希代. 数据与计算发展前沿. 2020(01)
[4]地球系统模式CAS-ESM[J]. 周广庆,张云泉,姜金荣,张贺,吴保东,曹杭,王天一,郝卉群,朱家文,袁良,张明华. 数据与计算发展前沿. 2020(01)
[5]海洋模式LICOM的MIC并行优化[J]. 王文浩,姜金荣,王玉柱,迟学斌. 科研信息化技术与应用. 2015(03)
[6]面向LICOM2的并行I/O优化[J]. 季旭,武海平,邹寅隆,梁亚雄,薛巍,尹万旺,林鹏飞,刘海龙,俞永强. 科研信息化技术与应用. 2014(05)
[7]高性能计算机系统及平台发展状况分析[J]. 迟学斌,顾蓓蓓,武虹,王龙,朱鹏. 计算机工程与科学. 2013(11)
[8]非静压海洋数值模式加速计算的CUDA实现[J]. 王春晖,苗春葆,沈飙. 中国海洋大学学报(自然科学版). 2013(08)
[9]海洋环流数值模式POP的GPU并行优化[J]. 郭松,窦勇,雷元武. 计算机工程与科学. 2012(08)
[10]IAP第四代大气环流模式的气候系统模式模拟性能评估[J]. 孙泓川,周广庆,曾庆存. 大气科学. 2012(02)
本文编号:3138079
本文链接:https://www.wllwen.com/kejilunwen/haiyang/3138079.html