DoSERV分析:全面解析超级计算和高性能计算

      关于超级计算和高性能计算的定义有很多,但到目前,没有一个被学术界、工业界和应用现实所公认。不过,它们都表示了使用当今世界上最高性能的计算机进行计算的含义。
  
      超级计算
  
       计算速度是超级计算追求的第一目标。最快的速度,最大的存储,最庞大的体积,最昂贵的价格。超级计算的名词出现于上世纪20年代,概念形成于上世纪70年代,和Cray公司同步发展。
  
       超级计算的主要用途为科学计算。早期的应用仅涉及格点差分模式计算(气象预报软件MM5),有限元计算,空气动力学分析,但几乎和数据处理无关。而且,超级计算致力于专业用户。昂贵的价格,超先进的计算机制造技术,特定的大型工程和大型企业形成了极少的用户群。也形成了相对封闭的技术时代。
  
       超级计算中基准测试(benchmark)的重点为浮点运算速度测试,包括如下几个标准。
  
      1976年发布的Dhrystone,主要用于测整数计算能力,计算单位是DMIPS。
  
       1976年发布的Whetstone,主要用于测浮点计算能力,计算单位是MFLOPS。
  
       1980发布的Linpack,为解线性方程和线性最小二乘问题的子程序包。主要用于测浮点计算能力。
  
      高性能计算
  
      更倾向于追求综合性能。随着超级计算需求的扩大,上世纪80年代初出现了小巨机的概念;随着超级计算应用面的扩大,上世纪80年代后期开始出现高性能计算的概念,把超级计算推向了各个领域,对超级计算追求单一计算指标转变为追求高性能的综合指标。高性能计算还应用于数值计算和数据处理。随着数据库技术的成熟,生物基因技术的发展,历史数据的几何级膨胀把超级计算推向数据处理领域。高性能计算更倾向于走产业化发展道路。由于用户群的扩大,价格的敏感度,PC机产品化的成熟,迫使高性能计算采用高性能的产品化部件构成高性能的产品化计算机系统,也促使高性能计算技术走向开放。
  
      软件技术阻碍全面应用
  
      硬件技术的快速发展促进超级计算走向高端计算;软件技术的缓慢发展则阻止了高端计算走向中低端。从硬件技术上来讲,从上世纪40年代第一台计算机ENIAC的5000次/s到目前的183T次/s,速度提高了三千七百亿倍,这主要归功于硬件技术的发展。
  
      然而,在高性能计算领域,相对于硬件,并行软件技术几十年来没有获得突破性的进展。特别是分布式计算技术,自动并行识别技术等。
  
      并行编程要达到良好的可编程性,必须解决结构性、通用性和可移植性问题。(并行化编译器、自动并行化、用户指导和运行时间并行化)最大的难题是要解决数据依赖和控制依赖问题,几十年来始终处于研究过程中,没有达到MS-DOS到Windows量级的提高,令用户失望。 因此,即使高性能计算机的价格很低,也只能停留在高端或中端领域。
  
      要使超级计算到桌面(低端),除价格因素外,并行编程的可编程性和用户并行编程能力的提高是走向普及的两个方面,而用户并行编程能力的提高涉及人类历史文化思维习惯的各个方面,没有几十年、上百年的培育是很难适应的。因此在可预见的时间内,如果没有很好的并行运行工具,超级计算到桌面是不可能现实的。
  
      Nvidia公司首席科学家David Kirk日前在美国斯坦福大学举行的第十七届热门芯片(Hot Chips)研讨会上表示,业界需要加强芯片应用中识别和保存并行机制的技术研究。 在比较通用CPU和图形处理器(GPU)的未来时,Kirk指出,编程技术正面临一场危机,这不仅有可能冲击CPU市场的未来,还有可能终结图形性能领域的进展,尽管GPU一直得到改进。
  
      HPC应用领域变迁
  
       HPC新应用领域
  
       半导体工业:源于单芯片集成度的数量级提高所带来的复杂布线计算需求。
  
       信息处理:源于海量数据的积累和数据业务的发展。
  
       数据库应用:数据库技术的成熟和数据业务的发展,数据挖掘技术的业务化。
  
       金融业务:源于数字化管理的需要。
  
       电信业务:源于电信业务的快速发展。
  
       从Top 500消失的领域。
  
      化学领域:对计算的需求低于计算能力的增长。
  
       电力领域:对计算的需求低于计算能力的增长。
  
       空间技术领域:对计算的需求低于计算能力的增长。
  
       未来HPC应用更值得关注的领域为:数据挖掘应用;图像处理业务;基因测序比对处理。