APP下载

基于OpenACC的高性能计算并行优化研究与应用

2018-04-13顾文静

计算机技术与发展 2018年4期

顾文静,孙 晨,王 彬

(国家气象信息中心 高性能计算室,北京 100081)

0 引 言

近年来,面对浩如烟海的数据,CPU已力不从心,并行计算技术日趋成熟,世界领先的超级计算机都装备大量的GPU加速器或众核处理器[1]。然而,要在GPU硬件上实现加速需要通过对底层的API进行编程来实现,程序编写复杂、难度大,且容易形成高度依赖特定设备的代码。因此,一种基于指令制导计算的编程模型OpenACC应运而生[2]。OpenACC的编程机制是在源程序中添加少量编译标识,编译器根据作者的意图自动产生低级语言代码,无需学习新的编程语言和加速器硬件知识。只需添加少量编译标识,不破坏原码,开发容易,既可并行执行又可恢复串行执行;硬件更新时,不需要修改代码,重新编译即可。OpenACC标准制定时就考虑了当前及将来多种加速器产品,同一份代码可以在多种加速器设备上编译、运行、无成本切换硬件平台[1]。

GRAPES(global/regional assimilation and prediction system)是中国气象局自主研发的静力/非静力多尺度通用数值预报系统,该系统是气象与气候研究的基础和核心。对于一个大型、先进的数值预报系统而言,并行计算已成为其必需的结构特征[3]。

GRAPES系统的核心部分包括模式动力框架和物理过程,动力框架中计算时间最长的为半拉格朗日计算和求解Helmholtz大型线性代数方程组,物理过程中耗时较大的为辐射和微物理过程,其中辐射过程计算耗时占到GRAPES模式的40%,所以提升辐射过程的性能和计算效率,对整个GRAPES模式的性能提升具有重要科研价值和实际意义[4-5]。……

登录APP查看全文