基于OpenACC的加速格子Boltzmann应用的性能与可移植性
分布式、并行与集群计算
2017-03-02 v1
摘要
越来越多的大型HPC系统依赖异构架构,结合传统多核CPU与节能加速器。过去设计这些系统的高效应用很麻烦,因为加速器通常用特定编程语言编程,威胁可维护性、可移植性和正确性。几种新编程环境试图解决这个问题。其中OpenACC提供基于编译器指令子句的高级方法,标记现有C、C++或Fortran代码中运行在加速器上的区域。这种方法直接解决代码可移植性,将每种不同加速器的支持留给编译器,但必须仔细评估可移植方法与计算效率的相对成本。本文正是解决这个问题,使用大规模并行格子Boltzmann算法作为测试平台。我们首先描述使用OpenACC和MPI的算法多节点实现和优化。然后在各种处理器(包括传统CPU和GPU)上对代码进行基准测试,并与使用CUDA和OpenCL的同一算法的其他GPU实现进行精确性能比较。我们还评估了与可移植编程相关的性能影响,以及基于OpenACC的应用在几种最先进架构上的实际可移植性和性能可移植性。
引用
@article{arxiv.1703.00186,
title = {Performance and Portability of Accelerated Lattice Boltzmann Applications with OpenACC},
author = {E. Calore and A. Gabbana and J. Kraus and S. F. Schifano and R. Tripiccione},
journal= {arXiv preprint arXiv:1703.00186},
year = {2017}
}