科学家和工程师需要计算机的功能不断增强,而当前的主要技术已达到了极限,那么并行计算机是否是一条新的途径呢?

高性能计算机的未来可以用一个字来简单概括,并行化。在80年代中期,这还仅仅是一个学术上的设想,如今已被超级计算机领域的主要研究者接受并用来进一步增加计算机功能。并行化还把当今的超级计算机功能理论研究提到研究人员的面前,使一种崭新的计算机科学的产生成为可能。

传统的计算机,从微机到主机,都包括一个中央处理机和一个单独的储存器,存有需运行的指令和指令所需的数据。计算机的速度是由处理和执行指令的速度和从存贮器中获得指令和数据的速度所决定,电子学的发展使元件尺寸不断缩小,工程师们更加感到要提高此类计算机的速度。

围绕这一问题,科学家们想出一个办法,就是把几个处理机排为一排或成“流水线”型,以期建立一种带有“矢量结构”的计算机。许多科研项目只是对一列数据进行上百次或上千次的重复计算。例如,要计算好几万个矢量

7.2.1

的积,就把几个处理机排成一列,使每个处理机都有一项任务,那么矢量计算机,诸如Cray公司的X-MP那样的超级计算机就能大大提高速度。

自从第一台矢量计算机在60年代后期问世以来,科学家们一直依靠它们来完成大量数据运算。然而,矢量结构也有其局限性,这种局限性反映在阿姆达尔定律中。70年代,阿姆达尔计算机创始人、杰尼 · 阿姆达尔(Gene Amdahl)发现任何程序中只有一定量的矢量计算。因此,提高矢量计算的速度就能突破这种限制。例如,x2+3x+5只包括五步数字运算,因此排成一列的处理机比单个处理机至少能提高五倍的速度。

并行化的方法是把许多处理机用来解决一个问题。与其让一台处理机计算x2,另一台计算3x,其它的运算加法,为什么不给每台处理机都赋一个x值,并让它把整个算式都计算出来呢?从理论上来讲(实际上也常常如此),速度的唯一局限在于可使用的处理机数量。

并行化理论的提出,就如计算机本身的历史一样长。早期,科学家们之所以不采用这一观点,主要是因为元件价格昂贵而且质量不可靠。到了70年代,当这两方面都不成为问题时,并行化计算机尚未能进入市场的原因是:第一矢量计算机已大规模地建成;第二缺少适用于并行化的软件。人们在制造能进行大量运算的矢量计算机上已花费了大量的心血,在原来的“Fortran”程序上也下了不少功夫。因此,人们没有足够的财力把这些弃之一边而设计新程序。

大多数并行化计算机与传统的计算机是截然不同的,它不适于进行大量的运算,因此操作者明知其效率高,价格便宜,但要用它来代替旧的,却总也下不了决心。

然而,到了1988年底,大规模并行化已成为提高计算机运行功能的显而易见最受欢迎的途径。Cray公司和其它生产矢量计算机的单位也已引进了带有几条并行运行的处理机的计算机。同一些新公司,如AMT和Meiko公司的高性能并行化计算机的销量也越来越好。较多的处理机意味着科学家可在同时处理一些较大的问题,这就开辟了一个新的科学领域。

并行化计算机的种类有很多,90年代人们争论的中心是何种占主导地位。如有像Cray公司的多重并行的循环矢量机,它拥有现存的软件,但价格昂贵并受阿姆达尔定律限制。

另一类是单项指令,多组数据的机器,称之为SIMD。正如它的名字一样,这类机器可在同一段时间内,同时对多组数据执行一条指令。

第一批此类机器的一种是分布阵列处理机(简称DAP)。它是在70年代末由ICL公司引进,而如今已由AMT母公司制造。DAP由简单的处理元件构成的正方形格栅所组成(32×32或64×64)每个元件都有各自的记忆功能,再加一个单独的主处理机,对程序指令进行编译 ,然后把指令传送到各个处理元件。这些处理元件再根据自己贮存的数据值进行运算。例如,主处理机发出“加”的指令,那么“和”1024或4096就会同时得到。

像DAP这样的SIMD机器最适合解决含连接不断的并行性质的问题。例如,处理卫星照片的计算机必须对每张图片或图像的组成进行相同的过滤操作。如果每个处理机单元各自贮存单个图像,并且同时工作,那么一台SIMD计算机用来完成整张图片过滤的时间就是一台处理机过滤单个图像的时间。

然而,SIMD对于处理包含许多不同子任务的问题就显得无能为力,因此“多项指令、多组数据”即“MIMD”就更适宜了。MIMD机器中的每个处理机都有各自程序、能各自独立地工作。然后,这些处理机再互相碑系,进行中间结果的交换或发出指令。

构成MIMD计算机的方法有许多。首先,设计者要决定处理机是否要共用贮存器,还是拥有各自的区域贮存。共用贮存的机器一般易于编程。(每个处理机都能“看见”问题的全部状态)。但是,随着共同贮存容量越来越大,处理机不得不花费越来越多的时间轮到与存贮器联系。这就给共同存贮机带来了新的限制。因此,大型计算机必须有分散的存贮器。

MIMD领域中,另一个分歧是一部分人偏爱于处理机的固定安排,或是拓扑结构;另一部分人则偏爱于让使用者改变机器的拓扑结构,以满足各自的需要。在一个已固定拓扑结构的机器中,处理机之间的连接,在机器制造时已被固定,因此无法改变。此类结构最流行的一种是“超立方体”。这样命名的原因是因为处理机的连接方式就像它们处于一个多方位立方体的各个角落上。

假如现存的软件能在不同配置的处理机之间传递信息,那么分布贮存相对共同贮存的区别,以及固定拓扑结构相对于重新配置拓扑结构的区别,就显得不那么重要了。这种传递性软件自80年代中期以来已广泛用于带固定拓扑结构的机器上。

随着理想接口的发展,将出现一种标准模式,只要指出某台机器能完成什么工作而不再强调完成的过程。那么,不同型号的机器之间的区别愈来愈无关紧要。

MIMD计算机的一大优点是适用于多重操作使用,例如,编程者化在编写和调试程序上的时间比实际操作时间要多得多。因此,让一个编程者独自占用整台超型计算机可以说是一种浪费,机器大多数时间是在空转。如果用MIMD计算机,那么几个使用者都只需在各自的处理机上编码,而其余的处理机就可用来进行程序运算了。

所有这些设想如今都已成为现实、在过去的两年中,英国的布里斯多尔Meiko公司一直在创造一台大型超级计算机,这台机器已成为爱丁堡大学进行爱丁堡超级计算机发展计划的主要项目。这台机器如今已包含几乎500个Inmos transputer芯片,每块芯片每分钟能进行百万多次的数字计算。20多人能同时使用该机器,每人拥有1到256个处理机。这台机器的软件可以不作修改地运用到Meiko公司的其它任何类型的计算机中。

显然,这种软件的可携带性决定了90年代计算机的主流,如今只要花几万英镑,一个工业实验室或大学的院、系部门就能购买含多重处理机的计算机,它能传递的容量,在10年以前,得由价值几百万英镑的机器来完成。形成这种状况的原因在于,用于这种实验机器上的软件也能毫不改变地在同类机器上较大规模使用。

几乎同等重要的是重新配置的MIMD计算机能够一步步地扩大。增加你所使用的PC机容量的唯一办法是,放弃它而购买一台效率更佳的机器,再把新机器不相容的程序重新编写一下。如果你的计算机是依靠许多小型的,比较便宜的处理机来完成工作,一旦你有钱时,就可进一步考虑。

更为惊人的事情还在发生。一些研究人员正在寻找可能,建造一种计算机。它的内部许多元件与成百个其它元件相连接。就如动物脑子中的神经元一样。此类“神经网络”结构已被证明在诸如图像处理领域内会起惊人的作用。

这些以及一些更为长远的观点,为下世纪工业、科学所需之计算机的功能提供了前提。

[New Scientist,1989年9月9日]