随着工作站和微机能力的提高以及网络的发展,超级计算机遇到了严重的挑战。它们的应用实际上仅限于极少的科学和工业问题,特别是用于大量数据的处理和解复杂的方程,需要快速处理的问题。除了超级计算机的未来外,本文还要讨论设计“专用”计算机的大好时机。简言之,保持发展计算机设备战略连贯性的一些基本考虑。

选择最佳的高强度计算设备并不是一件简单的事情。尽管各个领域的研究人员和工程师越来越多地使用数字仿真,增加了对计算能力的需求,很明显并非所有的应用都用足了超级机的计算能力。新的工作站甚至个人计算机越来越完善,并有容易使用和更便宜的优点,是解决许多问题的另一种可信赖的设备。因为对在大型计算中心实现的仿真程序的分析证实了简单地有一台超级计算机并不一定能作高强度计算,可利用的计算能力往往为成百上千的用户通过每人消耗超级4算机的机时所分享掉了。这种情况可能会导致选择大型的集中计算能力而不选用大量单个工作站。大型计算中心的负责人会毫不犹豫地告诉你拥有一台超级计算机能提高工作小组的“社会知名度”。这种投资与其说是必需的还不如说是为了满足某种欲望(算得快一点,能炫耀有强大的计算能力等),那么,从实用的角度来看,选用超级计算机的一般考虑是什么呢?

首先看一个工业界的例子。“碰撞"模拟软件可算最常用的应用了,它需要相当大的计算能力、世界上所有的汽车制造商都拥有超级计算机。在法国PSA,标致(peugeot),雪铁龙(Citroen)和雷诺(Ranault)都不例外。希望用汽车碰撞模拟来解固体塑料变形时的力学方程,车子的几何形状在这些方程中是用成千上万个在三维空间网络上的点来代表的。像Cray YMP-2这种的超级计算机完成这一工作需要几个小时。

正像综合工艺学院固体力学实验室的查卡(Zarka)所指出的那样,模拟计算是由几步组成的,在每步计算之间要重新建立网络,特别在车体发生严重变形的区域内。这一步可以由程序本身来完成,但是知道怎么做的用户常利用来解释结果和用人工来重新建立网格。这一操作需要一个工程师做几天,然后才能在计算机上再进行新一轮的计算,这一工作超级计算机需要几个小时,而工作站用的时间要稍长一些,完成模拟的时间是稍有一些变化。倾向于超级计算机的论据是使用计算程序后用户的精力只要集中在计算能力上就可以了,能紧密地跟踪计算过程的演变,就能保证模拟的质量。另一个使用超级计算机的例子是地球物理学。地球物理总公司研究野外地震勘探发出的声波的传播。他们用于基于许多讯号处理算法的模拟和有限微分方法来解与反向传播相关的三维偏微分方程。野外采集的数据存在几百盘有几千路录音的磁带上。每盘磁带有200兆字节(MB)的数据。处理这么大量的数据在超级计算机上需要几个星期。显然,地球物理总公司只能用有巨大能力的计算机。

至于全国的天气预报,情况也差不多。模拟计算所必需的数据数量不大,但问题是不能等几天后才得到计算结果。计算时间是决定性的。另外,天气变化模型初始条件的引入消耗了很大一部分计算能力。同时,尽管采用的物理模型相对来说比较简单,但被调用的工作内存,即能被计算机快速读取的存贮数据的部分,却超过500兆字节(MB)。在图罗兹的法国气象中心去年起就装备了一台C98超级计算机,它是Cray系列中计算能力最巨大的之一。

看一看美法两国有关计算中心的报告,会发现三大类问题消耗了这些装备有超级计算机的计算中心的大部分机时。问题由大到小排,它们是:流体力学现象模拟;波的传播模拟和与复杂分子(如新药物分子的设计)相关的模拟。再有就是要求特别精确的等离子物理学,核子物理和基本粒子物理。

消耗计算能力据首位的揭示流体力学的模拟依赖于空间中的格点。常用的解决方法是有限元和有限微分。这类模型同样适用在气象和海洋预报中,预报云团或海潮的运动,以及分析内燃机气缸中烃类的燃烧情况。而考虑大气中化学物质演变的气候模型已超出了当前所能做到的了。这类问题要求的超级计算能力比当前可提供的高几个数量级。

采用一个专门算法模拟(声或电磁)波的传播在超级计算机的使用中占据第二位。用野外的地震法勘探石油要产生出几十万兆字节的数据。需要的计算能力有可能要超出可提供的。

超级计算机的最后一类大用户是化学和结晶学研究,它们不是因为有大量的数据要处理而是由于方程的复杂性。因为n(n在1和100,000之间)个原子或分子的互相作用需要解量子电动力学的(简化)方程。另外,须指出的是这些方程的解只占计算时间的一部分,因为这类模拟程序通常由三个连续步骤所组成,其中只有第二步是用来解模型的方程的。第一步是用来使数据归一化的。称为预处理的这一步有时需要做大量的计算。这一情况有点像法国气象预报的模拟。模拟的最后一步为后处理,它重新组织选择合适数据和计算图形显示。

模拟程序的某些用户发现有如下的经验规则:计算程序的核心部分只占程序行数的10到20%,但所用的机时却占全部的80到90%。此外,常常为了优化超级计算机的使用,只要可能,模拟的第一步和最后一步都由工作站来做。

机器的威力——它的能力与速度——取决于各种不同因素的组合,这些因素是时钟频率,实现基本运算(加,乘和除)需要的时间周期数,通过存放中间和最后结果的内存数据量和速度,商业上用机器时钟速度(赫次或兆赫次表示),浮点运算速度用Flops或Mflops来表示。有些结构在一定的时钟速度下能加速运算速度。这就是精简指令(RISC)和数据流原理,它们能同时执行几个指令,从而大大加速。由制造商提供的运算速度只是理论上的,它给出了机器在最佳使用状况下进行数值运算的情况,因此,更确切地说是运算能力的极限,机器使用得好还取决于运算的性质和编程的质量。事实上实际运算能力由程序中最薄弱环节所制约,它很可能是将数据装入运算部分中去的速度,即内存的存取速度。Cray超级计算机制造厂坚持平衡的结构概念,即各组成部分之间性能的协调。另外,对用户来说总的运算能力,即对一定的价格能得到的运算能力,才更有意义。从这些性能比较标准可以将个人计算机、工作站和超级计算机进行比较。可以看到有些差别是含糊的。

内存仍是区分工作站、微型计算机和超级计算机的主要元件

一台微机带有一个能达到几个Mflops的微处理器和不超过几十兆的内存。工作站的性能大体上要好十倍:几十个Mflop和几百兆的内存。同样的指标可区分工作站和超级计算机(见表)。但是,随着英特尔(Intel)公司486微处理器的后继者新的处理器Pentium(奔腾)面世,使得区分微型计算机和工作站的界线成了问题:因为在新的微机上和目前最好的工作站上科学计算的速度(浮点运算)是相同的。另外,工作站上的中央处理器的速度已在100 MHZ到200 MHZ,与Cray系列中最晚生产的超级计算机的250 MHZ相差不多了。因此可以说在这领域内超级计算机所取得的进步并不惊人。70年代末制造的Crat1的时钟周期为12.5纳秒(80 MHZ),现在在使用的最新一代的Cray C90达到4纳秒(250 MHZ)。15年内工作频率翻了4倍,同一时期内个人计算机的微处理器翻了100倍。Cary计算机最显著的得益是平行处理的出现,正是它表明了已达到了目前技术的极限。因为对2.5纳秒的工作周期(时钟频率400兆),电路必须在70微微秒内翻转(NEC的SX-3超级计算机)。这意味着下一代周期为1纳秒的超级计算机,会出现量子效应的问题了。一些非常技术,如约瑟夫逊效应晶体管,光晶体管,镓砷器件等,很难比现在基于硅的技术快10倍。此外,还必须向新的生产线转换,而谁也不知道这种转换结果能否产生新器件。

像时钟频率一样,工作站的结构甚至处理器也变得与Cray的相类似了。另一个能区分机器不同的元器件之一是内存和硬盘的质量。微机、工作站和超级计算机的硬盘性能,如数据传输速度、存取时间和容量,都已相接近。几个GB的容量,十几MB/S的传输速率和小于十几毫秒的存取时间,在超级计算机的外围设备和工作站上,同时也在微机上。相反,内存的质量在不同机器上还有所区别。然而内存却是关键性的,因为数据处理速度直接与存取时间即与内存的质量有关。但是,在内存中的数据存取时间也有极限。目前有两种技术即SRAM(静态随机存取内存)和DRAM(动态随机存取内存人前者的速度很快,但价格也更贵。

采用DRAM技术时,二进制信息由一个晶体管和一个电容器来代替,二进制位上的信息(0或1)由电容器上的电荷来模拟。为了避免放电,每个信息单元都要在一固定的时间间隔内重读和重写。这一操作称为“刷新”。电容器充放电的时间使速度变慢。与此相反,一个二进制位SRAM要用4~6个晶体管,速度是以减少电路的密度为代价的,因此SRAM的价格要高得多。不管是哪种内存,高速内存的价格并不是提高频率的唯一障碍。当工作频率超过100 MHZ时,印刷电路的价格将成倍地增长。为了控制电路热量的散发必须采用空气或液体冷却系统。

典型地,Cray型超级计算机的中央内存由SRAM组成(这是它们价格昂贵的原因之一)。而工作站满足于DRAM。此外,内存的工作频率总是小于处理器的,也就是机器的。因为处理器必须能以尽可能快的速度处理从内存出来的数据,而且,通常情况下,对每个数据必须作多次基本操作。已找到另一种加速处理器的方法,并将它制成了一种在前一过程尚未完成时就开始处理的结构。这一思想是数据流和RISC(精简指令集)的基础。

在过去的几年中RISC已经适应了各种不同的观念。这一缩写表示来源于处理器的指令是精简的。它是在美国IBM公司进行一系列研究工作的结果,也是相对于实际应用中的指令而言的。在分析了几千行的程序后,研究者发现80%的程序中用了20%的基本操作。因此,精简掉五分之四的指令将大大地简化指令集(更少的寻址方式)和处理器,而不会明显地影响性能。根据这一设想就可腾出空余的地方和采用标准形式的指令来装入使速度加快的结构单元。

这种称为“数据流”的结构原理是RISC的核心,并使性能得到提高。它使得能在一个时钟周期中完成一个指令,尽管一个指令要分几步来完成。在把每一步交给各个不同的处理单元的同时,只要上一指令一结束它的第一步,新的指令就可开始了。就像汽车装配线一样,各个车子处于装配它们的不同阶段上。简言之,由于80%的指令是无用的,使能腾出地方实现这种数据流。在每一个时钟周期中,可发出一个指令,但这并不等于说只要一个周期就足以完成一个指令。因为某种意义上来说,在超级计算机中这种结构是以一种特殊的形式出现的:称为向量结构。这种结构能将数据重组成称为矢量的一块一块,这就使几种数据的同时处理自动化。“最高能力”表示理想状态下即数据流全部工作时的能力。在实际使用中这一值很少能达到,但它能表示机器的组成情况。在高档工作站和多处理器平行工作的机器中,每个处理器都带有采用SRAM制的缓冲内存,它们取代了超级计算机中的矢量存寄器。缓冲内存性能较差,但能很好地适用于各种应用,因为数据流中的数据块的大小是很不一致的。

专用机的设计:面向研究和工业的一种想法

Cray C90的最大配置为不少于16个处理器,每个处理器带有两个算术单元,这相当于32个加法或乘法单元,功能单元数目成倍地增加能使性能得到提高,但是更重要的还是由于逻辑环境的进步(编辑器或计算机内数学函数的优化)。这种环境使用户能不必管机器的工作原理而提高计算能力。有了这样的环境就能最佳地利用计算机,因此,这是至关重要的,用多个微处理器来提高性能的许多想法之一是用大量的微处理器组合在一起,这就是平行计算机的宏大目标。

80年代中流行的那些想法中,平行结构的计算机今后将受到特别重视。在开始阶段,提出了各种各样的解决办法,今天的情况就比较明朗了,只有一种结构站住了脚。这种结构采用标准的RISC处理器组成基本块(Intel 1860,DEC的Alpha),它的峰值运算能力达100 Mflops和有几十兆的内存。性能与这种模块相近的模块数目很少。用成千个这种卡为单元组合起来,运算能力有可能达到1,000,000 Mflops。从硬件角度看,现在就有可能建造这种机器,因为只要把已有的元件组装起来就行了。但用于这种机器的程序还有一个未解决的问题。然而目前这种情况对用户来说开始清楚了:大规模平行计算机能达到对它的期望,但只对某些算法。在模型化时常常需要解一系列偏微分方程,要解决这类问题,必须用直接或隐含的方法。采用后者时,对线性方程求解时要求逆矩阵,而矩阵中每项取决于所研究的系统的前后状态,从而取决于矩阵中的其他各项,在这种情况下,很难将计算工作拆开而交给平行工作的不同处理器来执行。与此相反,直接解法自然而然地适合大规模平行机上的程序:模拟的每一步(例如,特定时间ti时系统的状态),都可明确地表示为上一步的函数,假如这些方法从数值分析角度看不易收敛的话,但特别适合于瞬间现象的模型化,像爆炸或碰撞。从用户的角度来看,大规模平行计算机迫使接受用直接方法的程序来模拟所研究现象这一挑战。

综合考虑上述各种因素,因此我们可以自问建造新一代的专门解决某一类问题的机器是否还适宜。这种做法的主要优点是它能很容易将实际计算能力与峰值即理论上最大计算能力相协调。因此,只要知道要进行的计算,就很易设计出特定的结构,它几乎总能发挥全部能力。这种机器可用各种不同方式组合而成,它可以用处理器或协处理器这些特定的电子元件来组成,这些元件分别负责执行某种操作以组成传统的加法器和乘法器。但是也可以简单地借用超级计算机结构设计的思想,同时根据其特定的应用精确地选择处理器的数目、内存的大小和外围设备的类型。在所有的情况下,设计一个计算机是一件对通讯连接作最佳化的工作,以使能得到最大的处理能力。这种机器已被开发成功。正是用这种专用机(GF11)来测定量子色动力学中八强子的质量的,这一计算用一年不间断计算才完成。在美国IBM公司的华生研究中心建造的GF11用了566个处理器,以得到11 Gflops的运算速度。这不只是物理领域中独有的情况,十多年来,工业界同样在使用专用计算机,如常用于滤波操作或数学词法的专用处理器的图像处理做三维可视化,还有像集成电路的模拟。换言之,考虑到一方面算法要求要有十几个Gfiops的速度,另一方面系列中高档机种的价值在不断上升,繁重的科学计算能不朝大型设备的方向前进吗?基本粒子物理学家在以同样的方式要求作为工具的加速器,某一领域的专家则要求适用某种特定算法的专用计算机,在这种情况下大型计算中心应该容纳专门用于精确“数学实验”的计算机。

在需要1000小时以上的模拟计算这种极端情况下,不考虑制造一个专用机,采用最大的矢量超级计算机是唯一的可能选择。这种情况时,问题不再是处理器的运算能力了,而是计算机高速管理输入/输出和存储单元的能力。工作站和微型计算机浮点运算速度越高,超级计算机性能就越好,但同时价格也越贵。超级计算机的市场被应用所限制,这些应用只能限于要用到系列中高档机的运算能力或存储能力。而这种应用和新的机种并不是大量的。

[La Recherche,1994年3月]