Page 84 - 《软件学报》2021年第8期
P. 84
2366 Journal of Software 软件学报 Vol.32, No.8, August 2021
cosmology, earth system model, computational material phase field dynamics, molecular dynamics, quantum chemistry, and lattice QCD.
Secondly, solution to use domestic heterogeneous computing system has been discussed and typical application algorithms, common
questions of software including core algorithm, development of algorithm, strategies of optimizing codes have been summarized as well.
Finally, a summary of high-performance computing algorithms and software for heterogeneous computing is given.
Key words: high performance computing; heterogeneous computing; parallel algorithm; scientific computing software
高性能计算应用对国家工业、国家安全、生命健康和科学发现均具有重要的作用.作为信息科技政策制定
咨询权威组织,美国信息技术与创新基金会(Information Technology and Innovation Foundation,简称 ITIF)早在
[1]
2016 年就作了题为《高性能计算对美国竞争力至关重要》 的专题分析报告.近年来,我国也探索出了“天河”、
“神威”和“曙光”三大国产高性能计算机的发展之路,均具备自主研制高性能处理器和加速器的能力;同时也计
划在 2020~2021 年前后设计实现 E 级(每秒百亿亿次浮点运算)计算机,在全球高性能计算性能 Top500 排行榜
[2]
上 ,可看到国产超级计算机性能处于全球前列水平.但不难看出,我国超算系统软件和应用软件的研发步调相
[3]
对落后,国产超算上的软件生态没有同步形成 .一个客观的困难是:国际上主流基于 Intel x86 或 Nvidia GPU 的
科学计算软件无法直接在部分国产超算上编译运行,特别是面向异构计算加速这方面,需要有大量的移植适配
工作.对于神威超算这种特殊的主从核架构,大部分软件需要修改甚至重写以实现从核加速计算.
尽管高性能计算可应用于工业、国防、生命健康等诸多领域,但这些应用主要以科学计算为基础.随着计
算机软硬件技术的高速发展,特别是对称处理器核数、内存容量、网络带宽的提升引发(并行)计算算法需要考
虑新的平衡因素,促使在科学计算与数值模拟应用方面提出了大量新的软件架构和理论算法.比如在高能物理
[6]
[4]
[5]
领域,形成了美国 USQCD 和 MILC 、英国 Grid 和日本 Bridge++软件等诸多代表性的格点量子色动力学
(quantum chromodynamics,简称 QCD)模拟软件,这些软件形成了自身特色的软件架构,或者是面向特定体系结
构而优化设计的.特别是 USQCD 的 Chroma 软件构建了一套多层次、松耦合的软件架构体系,取得了有效整合
[7]
软件模块和增强硬件适应性的显著效果;他们也开发了基于 GPU 加速计算的软件包 QUDA ,充分利用了 GPU
[8]
[9]
异构计算的优势.在分子模拟应用领域,LAMMPS 和 NAMD 软件为代表的应用软件在高性能计算方面具有
显著的性能优势,但它们的软件架构完成不同,而两者都具有代表性.LAMMPS 是典型的 MPI 分布式并行程序,
具有非常强的软件功能和计算性能的可扩展性;NAMD 更是采用 Charm++并行计算框架支持新的并行编程模
式,数据通信采用远程对象的函数调用方式实现.此外,兼备量子计算化学研究的 NWChem [10] 软件引入了 Global
Arrays 并行计算框架来支撑计算化学类的特殊问题,更多的是考虑高可伸缩的计算化学算法使用传统的消息
传递通信模型很繁琐,而使用可移植共享内存编程模型更简便 [11] .以上这些高性能计算典型应用软件不仅着眼
于科学问题的研究,而且通过其成功的应用大大推动了高性能计算应用技术的发展,在高性能异构计算方面取
得了诸多理论和应用成果.比如格点 QCD 应用和 NAMD 软件均获得过高性能计算应用领域重要的“戈登⋅贝
尔”奖(Gordon Bell Prize,简称 GB 奖).美国的 E 级计算计划(Exascale Computing Project,简称 ECP) [12] 中均毫无
悬念地将这些软件作为重点发展的对象.
相形之下,我国在相关的科学计算应用领域的自研程序代码普遍依托于相应领域的课题组开发和继承、大
多是以科学问题研究为主,缺乏专业的开发人员来维护软件.更是缺乏前瞻性的软件顶层设计,也难以形成规模
化的可推广使用的软件成果,软件的并行计算性能更是难以保证.近年来,GPU 异构计算和国产自主处理器的兴
起使得软件框架和软件模块不断推陈出新,导致软件程序无法跟上硬件架构和软件应用环境快速发展的脚步,
并行计算设计优化加大了困难.庆幸的是,莫则尧团队针对以上问题探索出了一条创新的技术路径.其基本方法
是凝练数值模拟应用领域的共性需求来建模,并设计模型驱动的并行算法和采用了并行编程技术 [13] .他们提出
了面向结构网格和非结构网格的标准化网格数据模型,分别开发了结构网格的编程框架 JASMIN [14] 和非结构
网格的编程框架 JAUMIN [15] ,均一定程度支持并行算法和并行编程的软件复用.虽然我国科学计算软件的开发
积累了不少经验,但从串行程序到大规模并行程序、从算法程序到软件产品还有相当长的道路要走.从《国家
[16]
高性能计算环境发展报告》 可得,在我国各大超级计算中心的超级计算系统上所运行应用软件大部分来自国
外,一旦出现“断供”,我国计算科学研究即显现出被“卡脖子”的被动局面.