【IT168 应用】谈到高性能计算,很多人都会想到那些每秒可以运行百万亿次、千万亿次计算的超级计算机,如最近炒得很火爆的“天河一号”、“曙光6000“等,但很少有人会想到上面跑的软件。其实,硬件只是基础,只是提供了平台和资源,真正发挥作用的还得依靠软件。一直以来,国内“重硬轻软”的现象非常严重,每当有一代新的超级计算机研制成功,从厂商到媒体到政府,都会进行铺天盖地的宣传。
但对于应用单位来说,跟自己关系更加密切的却是“软件”,是“应用”。就在上个月举行的全国高性能计算学术年会(HPC China 2010,专题)上,我们对250多位来自全国各地的高性能计算中心、高校和科研院所、企业等单位代表进行了问卷调查,大家普遍反映,就目前的高性能计算现状来看,软件仍然是大问题,突出表现在几个方面:
①. 目前软件水平远跟不上硬件发展,应齐头并进,为合适的硬件平台开发合适的软件。
②. 缺乏相应的软件框架支持,并行化难度高,并行化开发急需提升。
③. 改善编程环境,发展和优化并行编程环境与工具,研究并行编程模型,开发国产自主知识产权并行应用软件。
④. 增强专业领域有影响力的并行软件开发能力,做出几个极具国际影响力的应用软件来推广应用。
为此,我们对中科院超级计算中心、中南大学高性能计算中心等所使用的软件情况进行了一番整理,也借此机会向大家介绍一下这些高性能计算软件。
由于高性能计算涉及的领域很广泛,要模拟计算的问题也是千差万别,所以这个领域的软件跟一般企业里使用的ERP、数据库、操作系统等不同,在数量上非常繁多。比如这次HPC China 2010参会单位涉及的领域就包括EDA设计仿真、CAE、数值计算、计算化学、计算物理、材料设计、量子力学、分子动力学、流体力学、工业设计、图像渲染、生物信息、生命科学、气象、天文、金融、石油勘探、工程计算、地震资料处理、集群管理、并行应用软件开发(MPI、OpenMP、CUDA)、Linpack测试研究、超算服务等。
以中科院超级计算中心为例,其深腾7000平台上跑的商业软件和开源软件就有50多种,如下表所示:
深腾7000付费应用软件
深腾7000开源软件
序号 | 名称 | 简介 |
1 | Abinit | 基于密度泛函理论,采用赝势和平面波基矢的方法来处理由电子和核所组成的体系的程序包,它可以计算体系的总能、电荷密度以及电子结构。 |
2 | Amber | 分子动力学软件,用于蛋白质、核酸、糖等生物大分子的计算模拟。 |
3 | ATLAS | Automatically Tuned Linear Algebra Software,性能较高的一种BLAS库。 |
4 | AUTODOCK | 较常用的分子对接软件。 |
5 | AZTEC | A Massively Parallel Iterative Solver Library for Solving Sparse Linear Systems是由Sandia 国家实验室开发的,主要用于并行迭代求解大型(PDE 问题)稀疏线性方程组。 |
6 | Blast | Blast是基于局部序列排比的常用数据库搜索工具,建立在严格的统计学的基础之上。它集中于发现具有较高的相似性的局部比对。 |
7 | CASTEP | 基于密度泛函方法的从头算量子力学程序,可以模拟固体、界面和表面的性质,适用于多种材料体系,包括陶瓷、半导体和金属等。 |
8 | CPMD | Car–Parrinello Molecular Dynamics,密度泛函平面波赝势代码,用于分子动力学从头计算。 |
9 | Dl_poly | 串行和并行分子动力学模拟软件包。 |
10 | DOCK | 分子对接软件和结果数据库。 |
11 | DOUG | Domain decomposition On Unstructured Grids是由Bath大学数学系M. J. Hagger 和L. Stals 开发的并行迭代解法器(黑箱),主要用于并行求解有限元方法离散的椭圆型偏微分方程组。 |
12 | Espresso | 材料性能模拟软件,包括电子自洽计算、晶格动力学计算、后续数据处理、电子输运性质计算、分子动力学等模块。 |
13 | FFTW | 由麻省理工学院计算机科学实验室超级计算技术组开发。FFTW是计算离散Fourier变换(DFT)的快速C程序的一个完整集合,它可计算一维或多维、实和复数据以及任意规模的DFT。FFTW还包含对共享和分布式存储系统的并行变换。 |
14 | GAMESS | 从头量化计算程序。 |
15 | GMT | GMT是大约60多个Unix/Linux工具的集合,可以处理二维及三维的数据集。 |
16 | GotoBlas | 美国得克萨斯大学研究人员Kazushige Goto开发的一种BLAS库,总体性能很高。 |
17 | GrADS | 气象数据处理和显示的交互式工具 |
18 | GRAPES | 我国国家气象局自行研制的天气预报模型 |
19 | GROMACS | 分子力学通用软件包。 |
20 | Lammps | 经典的分子动力学代码,可以对在液态、固态或者气态的状态下的粒子系综进行建模,可以建模原子、有机分子、生物分子、金属或者粗粒子系统,可以在不同的力场和边界条件下进行系统建模。 |
21 | MM5 | 美国宾州州立大学和美国国家大气研究中心研制发展的新一代中尺度天气模型。 |
22 | NAMD | 大规模并行分子动力学计算软件。 |
23 | Nwchem | 计算化学软件,使用标准量子力学描述电子波函或密度,计算分子和周期性系统的特性,还可以进行经典分子动力学和自由能模拟。 |
24 | OpenMX | 材料模拟程序包,用于实现基于密度泛函理论的大标度从头计算。 |
25 | PAPI | The Performance API实时监控HPC软件性能的开源代码 |
26 | PARPACK /ARPACK | Arnoldi PACKage由Rice 大学开发用来求解大规模特征值问题的子程序集。用户通过PARPACK/ARPACK软件包,可解决来自重大应用领域内的大规模对称、非对称(包括Hermiton、non-Hermiton)和广义特征值问题。 |
27 | Polyrate | 使用变分或传统的过渡态理论,计算多原子分子(也包括原子、双原子分子的特例)的化学反应速率的程序。 |
28 | SUNDIALS | Suite of Nonlinear and Differential/Algebraic Equation Solvers由Lawrence Livemore 国家实验室开发,用于求解大规模非线性微分/代数方程。 |
29 | TAO | Toolkit for Advanced Optimization是Argonne 国家实验室开发的高级最优化工具箱,主要用于在高性能机器上求解大规模最优化问题。TAO 的所有消息传递通信均采用MPI 标准实现。 |
30 | TINKER | 一些程序的集合,用于进行分子力学和分子动力学计算,以及一些用于生物聚合物计算的特殊功能。 |
31 | VENUS | 用于进行晶体结构和电子/核密度的三维显示和操作。 |
32 | VMD | 分子可视化程序,用于观察和分析分子动力学模拟。 |
33 | WRF | 由许多美国研究部门及大学的科学家共同参与开发研究的新一代中尺度预报模式和同化系统。 |
34 | Xian_CI | 是由西北大学现代物理研究所经过近20年的研究,开发的一组计算电子相关能的程序包,它的核心部分是多参考态的一级和二级激发的组态相互作用(MRCISD)计算 |
下面我们对部分高性能计算软件进行一些简要介绍: