基于 OpenACC 的结构化网格 CFD 应用 GPU 计算改进框架
分布式、并行与集群计算
2021-06-10 v1
摘要
本文致力于改进结构化网格上研究型 CFD 代码的多 GPU 性能。使用 MPI 与 OpenACC 指令将代码扩展至 16 个 GPU。本文表明,对于三个不同测试用例,使用 16 个 P100 GPU 和 16 个 V100 GPU 分别比 16 个 Xeon CPU E5-2680v4 核快 30 和 70。通过应用多种优化,解决了一系列与多块 CFD 代码扩展相关的性能问题。诸如打包/解包消息方法、移除作为过程调用参数的临时数组、为限制器和连接边界数据分配全局内存、重排非阻塞 MPI I\_send/I\_recv 与 Wait 调用、减少主机与设备间不必要的隐式派生类型成员数据移动以及使用 GPUDirect 等性能优化,可借助现代编程特性改善多块 CFD 代码中的计算利用率、内存吞吐量与异步进展。
引用
@article{arxiv.2012.02925,
title = {An Improved Framework of GPU Computing for CFD Applications on Structured Grids using OpenACC},
author = {Weicheng Xue and Charles W. Jackson and Christoper J. Roy},
journal= {arXiv preprint arXiv:2012.02925},
year = {2021}
}
备注
43 pages, 27 figures