随着计算机科学技术的飞速发展,作为计算机的核心——处理器的体系结构也经历了从单核、多核到众核的革命性跨越。如今,“异构+众核”已成为超级计算机主流的体系结构,并将引领未来E级计算的进一步发展。

然而,这种较为“前卫”的结构设计,也给编程者带来了很大的挑战:他们不得不面对更为复杂的底层结构和更多的存储层次,以往的算法设计和程序代码也不得不随之调整。在这种情况下,诸如CUDA、OpenCL、OpenACC等新的异构并行编程语言应运而生。其中,OpenACC是一种极具发展前景的编程模型,其具有使用方便、代码改动小、平台适用范围广的特性,将为新时代的编程者们带来极大的帮助。

OpenACC虽然有着易学易用的特点,但是要想全面掌握其丰富的语法特性和使用技巧,以编写高效的程序,还是需要一本有权威性、实用性的技术书籍来指导。本书作者何沧平博士是华为高级系统设计工程师,也是OpenACC QQ群的群主,具有多年的程序开发经验,一直致力于OpenACC的发展与推广,在并行计算应用领域有着很深的造诣和独到的见解。

对于想要掌握OpenACC使用技巧和编程精髓的读者来说,本书是一本非常具有参考价值的学习教程。与传统的技术书籍相比,本书更加注重内容的可读性和易用性,逻辑清晰,内容全面准确,且更加注重编程实践,有大量C/C++/Fortran的完整代码实例,便于读者学习和实践。作为第一本中文的OpenACC技术书籍,可谓为国内的编程学习者带来了福音。

特别值得一提的是,本书首次引入了OpenACC在 “神威·太湖之光” 超级计算机上应用情况的章节。神威·太湖之光是2016年全球TOP500排名第一的超级计算机,配备了完全由国人自主研发的异构众核处理器。其超强的计算速度成为了高性能计算应用的强力助推。结合应用的特点和处理器独特的结构设计,系统对OpenACC进行了扩展。目前,该系统完成了气候气象、航空航天、船舶工程、药物设计等十多个领域的大型应用课题,其中三个高性能计算应用入围 “戈登贝尔奖”。这是我国近30年来首次入围该奖项。在这些应用的开发过程中,OpenACC起到了关键作用。

漆锋滨

国家并行计算机工程技术研究中心