GTC-P在大规模节点基于OpenACC的移植优化研究
发布时间:2021-02-19 16:32
近年来,随着GPU等加速器不断发展,基于加速器的异构计算正逐渐成为高性能计算的主流。然而集群架构越来越复杂,同一应用,运行在不同体系架构上往往需要开发多个版本,这给代码的开发和维护都带来了很大的挑战。OpenACC是基于指令的并行编程模型,为应用在多种平台上(包括GPU,x86多核处理器)提供了可移植性。GTC-P是基于particle-in-cell(PIC)算法,模拟粒子和等离子通过托卡马克装置时运动的科学应用。由于其极佳的可扩展性,GTC-P现已在Top500排名前10的6台超级计算机上进行了性能测试[1],还入选了美国能源部下属的NERSC国家超算中心的基准测试集[2]。我们在原有的OpenMP版本GTC-P基础上,使用OpenACC移植和优化GTC-P,并在多平台、大规模节点上进行测试分析。通过移植和一系列优化工作,包括数据局部性优化,线程映射优化和CUDA局部代码优化等工作,我们在单节点上实现了4.2倍加速。我们仅仅用了300行左右的OpenACC指导语句,就实现了CUDA代码90%以上的性能。而在大规模节点测试中,我们在Tita...
【文章来源】:上海交通大学上海市 211工程院校 985工程院校 教育部直属院校
【文章页数】:70 页
【学位级别】:硕士
【部分图文】:
–1OpenACC加速器抽象模型
[18]。如图1–2所示,OpenACC 将目标体系结构抽象为三个并行级别的抽象模型:gang,worker 和 vector。每个级别包含一个或多个后续级别的实例,这意味着每个 gang 将至少包含一个或多个 worker,每个 worker 包含被划分为多个 vector[18]。实际将这种表示方式映射到低级的加速器编程模型,具体的加速平台有各自的方式。默认情况下,循— 9 —
Fig 3–1 An illustration of 3D toroidal grid.在 PIC 方法中,泊松方程在网格上求解。在 GTC-P 中,由于磁场间距的关系,我们利用一个高度专用的网格,这个网格遵循磁场线围绕环面旋转(图3–1)。这使得代码— 17 —
本文编号:3041385
【文章来源】:上海交通大学上海市 211工程院校 985工程院校 教育部直属院校
【文章页数】:70 页
【学位级别】:硕士
【部分图文】:
–1OpenACC加速器抽象模型
[18]。如图1–2所示,OpenACC 将目标体系结构抽象为三个并行级别的抽象模型:gang,worker 和 vector。每个级别包含一个或多个后续级别的实例,这意味着每个 gang 将至少包含一个或多个 worker,每个 worker 包含被划分为多个 vector[18]。实际将这种表示方式映射到低级的加速器编程模型,具体的加速平台有各自的方式。默认情况下,循— 9 —
Fig 3–1 An illustration of 3D toroidal grid.在 PIC 方法中,泊松方程在网格上求解。在 GTC-P 中,由于磁场间距的关系,我们利用一个高度专用的网格,这个网格遵循磁场线围绕环面旋转(图3–1)。这使得代码— 17 —
本文编号:3041385
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3041385.html