并行计算机的发展趋势与应用前景

国家智能计算机研究开发中心

曙光信息产业有限公司

李 国 杰

 

以市场大量销售的主流微处理机芯片、主板甚至微机或工作站为基本单元构成并行计算机已成为发展高性能计算机的主要方向。微处理机芯片与并行处理是促使计算机性能飞速增长的两项主要技术。传统的以独家使用的芯片为主的高性能计算机将逐渐退出市场。过去人们常用的巨、大、中、小、微计算机分类也将逐步被两大类机器取代:一类是只有单处理机的微机与工作站(除了操作系统不同以外,高档微机与工作站的界限也日益模糊。),另一类是各种不同档次的并行计算机,机器的性能与规模将取决于系统所包含的处理机数目。以并行处理技术为基础的高性能计算机被认为是高技术的一个致高点,美、日、西欧等发达国家和一些发展中国家都制定了国家科研计划下大力气发展高性能计算机。我国也开始重视发展以并行处理技术为基础的高性能计算机产业和推广应用并行计算机。并行计算机的发展趋势与应用前景如何?从研制和使用并行机的角度出发,人们应注重哪些关键技术?我们在推广并行机时应消除哪些误解,注意哪些问题?本文就上述问题谈一些初浅看法,供大家参考。

一、并行计算机的发展趋势

并行处理机80年代初开始较大量地进入市场。一开始多数采用SIMD和向量机方式,以Cray公司为代表,保持巨型机的领先地位。从80年代中期基于RISC技术的微处理芯片问世以来,计算机的性能有明显提高。86年以前向量机与小巨型机的性能每年平均增长35%左右,86年以后,微机工作站与基于微处理机的多处理机性能平均每年增加55%以上,也就是说,每隔一年半左右,计算机的性能就翻一番。由于MIMD计算机性能价格比高,可扩展性强,近几年发展较快,逐步抢占了传统向量机的市场。目前人们一致认为传统的向量机很难突破万亿次大关,MIMD分布存储多处理机是唯一可以达到万亿次速度(Teraflops)的技术。

高性能的并行计算机的主流究竟是“蚁群”方式(上百万台功能较弱的机器构成一个大系统)还是“象阵”方式(最多几千台功能较强的机器组成)80年代曾有一场大争论。1989年,并行处理的两位权威人士G.Bell(VAX系列总设计师)W.Hillis(Connection Machine的总设计师)曾公开打赌,赌到1995年哪一类机器会成为主流机型。到今天,结论已经不言自明。CM系列并行机已不再生产,Think Machine公司已申请破产保护,转为并行软件公司。以市场上容易买到的主流微处理机芯片为基础构造包含几十到几千台处理的多处理机或多计算机系统无疑已成为并行机的主流产品。连技术上十分先进但采用自家专门设计CPU芯片的KSR公司也濒于破产。一只无形的手在控制着并行机的发展,这就是市场。只有在市场上有竞争力的并行机产品才有生命力。并行机的体系结构已逐步殊途同归, SGI(Cray)IBMDECSUN等几大公司生产的并行机几乎都是采用现成的工作站或微机主板,甚至直接采用工作站或微机(多处理机)整机做基本单元,通过总线或专门设计的互连网连成一台并行机,体系结构已逐渐走向标准化。专家们预测这种相对稳定的体系结构20年内不会有大的变化。由于芯片集成度提高,今后处理机芯片中将包含更多存储单元(一级和二级Cache),出现处理器嵌在大量存储单元中的所谓主动存储器或智能存储器,克服存储速度远远跟不上处理机速度这一明显瓶颈。过去十分热门的并行机拓扑结构问题现在已不大受人关注,因为通信开销主要在软件,多经过几个结点不是大问题,而且采用Wormhole等传输技术以后,传送信息的时间与机器中结点距离关系不大。体系结构的逐步一致化为并行机的推广奠定了基础。

目前市场上能买到的并行机大致可分为以下几类:并行向量机PVP(Cray C-90Hitachi SR2201),共享存储对称式多处理机SMP(SGI Power challenge IBM RS/6000 PowerPC ServerSUN Ultra EnterprisesHP9000DEC8000Sequent SymmentryCompaq Proliant),分布式共享存储并行机DSM(Cray T3D),大规模并行机MPP(IBM SP-2, Intel paragon),工作站机群,NOWCOW(Convex Exemplar, DEC Alpha Farm)Cray公司被SGI收购以后,主要的并行向量机供应商只剩下日本厂商。日本较重视峰值速度很高的并行向量机,即具有向量处理能力的并行机。最近Hitachi也向大规模并行处理方面发展,今年3月推出1024RISC处理机(含伪量处理功能)SR2201, 峰值速度达3000亿次。对称式多处理机(SMP)是已基本成熟的并行机, 多数公司推出16个处理机以下的共享存储多处理机,最近有些公司(SUN公司)已推出32个处理机的SMP,大多数SMP采用高速内部总线(可达2GB/S以上)或纵横开关。SGI(Cray)最近推出可扩展SMP(S2MP)最多可扩展到128个处理机。在线事务处理和数据库应用是SMP的主要市场。所谓对称式是指每个处理机有相等的权力存取存储器、I/O设备和操作系统。这种系统比主从结构有更高的并行性。SMP具有高性能价格比的重要原因是大大节约了占机器成本很大比例的主存储器,也就是说,多处理机价格并不正比于处理机数目。分布式共享存储系统目前还不大成熟,关键是高速缓存一致性的控制用硬件实现成本高,用软件支持效率较低,目前MIT等大学都在主攻这一关键技术。MPPNOW的界限很模糊,主要区别是采用专门设计的互连网还是采用通用的通信网如ATM等。随着网络接口技术的成熟,将来这两种结构会逐步趋于统一。许多专家都认为比较理想的并行机结构是采用商品化的SMP多处理机做结点,再用通用或专门设计的互连网连接成MPPCluster结构,这种结构性能价格比较高,而且避免了目前MPP结构的I/O瓶颈。

942月一批世界著名学者在有关“Petaflops计算的可能技术”讨论会上对20年后最高水平的计算机技术做过预测,他们认为三种可能的体系结构结合起来可以满足不同领域Petaflops(10[fang1]15)计算的要求。第一种是采用400台左右速度为一万亿次的处理机(可能采用超导计算机),通过交叉开关(可能是光互连Crossbar)构成共享存储的紧耦合多处理机,这是一种类似Cray公司巨型机的结构。第二种是用几万台工作站(每台10100GFlops),通过多级互连网络构成机群结构式的MPP。第三种结构采用一种新概念,即所谓智能随机存取存储器或称为主动存储器,将处理器(1GFlops/CPU)做在存储器芯片中,每块芯片包含8GB存储器和100CPU,采用4000块主动存储器芯片(40万个处理器)构成多维网络结构。采用这种结构的计算基本上在片内存取数据,存储带宽大大增加,机器成本也大大降低。美国能源部制定了一个更为乐观的先进战略计算计划(ASCI),要求96年做出1.8万亿次机,由Intel公司完成; 1998年底前推出3万亿次机,IBM公司研制。99年做出10万亿次机; 2002年研制出每秒100万亿次的超高性能计算机。五年内投资约9亿美元研制高性能计算机。此计划能否如期实现,人们试目以待。

二、并行处理技术的主要发展方向

一台通用性较强、性能很高的并行机,不仅要实现低延迟高带宽的互连网络接口,而且应具有可扩展性(Scalability),单一系统形象(Single System image),友好的并行编程环境。并行计算机水平高低也主要反映在这几项关键技术上。

1.可扩展性(Scalability)

Scalable这一术语最近几年使用越来越频繁, 在文献中被翻译成可扩展、可伸缩、可扩缩等, 中文里似乎找不到一个恰当的词表达其丰富的内涵。美国HPCC计划的目标不称为MPP而称可扩展高性能计算机(Scalable High Performance Computer)Scable的含义不只是系统中处理机数目可多可少,也不仅仅是系统可达到接近线性的加速比。实现可扩展性如其说是一种技术,不如说是一种设计原则,它与系统及应用的规模、性能、成本都有联系,而且与技术更新及产品升级换代有关,涉及资源、应用与技术等几个方面。

从资源可扩展性来看,系统的性能应随着资源(处理器、存储容量、磁盘等)的增加而成比例地增加。所谓技术或换代(generation)可扩展性是指系统的某些部件,如处理机等,升级换代被更换时,其他部件不动,系统能以更高的性能工作。可扩展并行机的一个重要发展趋势是从器件级集成过渡到微机、工作站主板甚至整机集成。这种新的构造并行机的方式可以保证并行机与微机或工作站完全同步升级,几乎没有延迟。应用问题可扩展性(Scalability over Problem Size)涉及并行算法研究。有许多应用问题光靠增加问题规模并不能增加并行性。挖掘问题本身的并行性是一门大学问,往往需要考虑新的模型与新的算法。

可扩展的系统一定是一个开放系统,其追求的目标是:算法不依赖于体系结构,应用不依赖于平台,节点设计与网络无关而网络接口与网络拓扑无关。可扩展的系统一定是一个各方面平衡的系统,没有明显的性能瓶颈。经验规则(Amdals Other Law)指出1 MIPS计算速度(实际速度)需要1MB内存和1MB/s I/O速度,当系统扩展时,计算能力、存储容量与I/O能力必须同步提高。

隐藏延迟是实现可扩展性的另一途径,主要技术是数据预取与多线程机制。所谓数据预取是通过优化编译改变指令执行顺序,提前存取或传送将延迟到达的数据。这种技术也广泛用于RISC编译,即所谓软件流水线。毫无疑问,编译技术将在可扩展并行机研制中发挥越来越重要的作用。多线程机制允许当一个线程等待数据或同步时,启动另一线程执行,即多个线程以上下文切换方式并行。采用多线程机制可实现计算与通信重迭,当一个通信线程挂起等待时,可启动另一计算线程。

可扩展并行机不管有多少节点,为方便用户应该具有单一系统形象,即统一地址空间,单一文件系统,单一系统形象可以在系统级也可以在用户级实现,但前者难度较大。总之,可扩展技术是高性能计算机的核心技术,从共享存储多处理机,包含几十个处理机的机群发展到由几百、几千甚至更多处理机组成的可扩展高性能计算机,追求的目标就是系统具有可扩展性。

2.低延迟高带宽的互连网络接口

目前市场很容易买到每秒运行数亿次的微机与工作站, 也不难买到每秒几百兆位甚至上亿位带宽的ATM互连设备, 为什么不能直接用这些部件与通信协议构成可扩展性强的高性能并行机?目前市场上提供的大规模并行机,如IBM SP-2Intel Paragon(现已停止生产,Intel公司不再生产MPP)等,其互连网络的物理通信带宽已达到每秒100MB以上,为什么还不能支持细粒度的并行?(所谓细粒度并行是指平均每执行几十条或上百条计算指令甚至更短间隔就要进行一次通信,处理机之间小的通信十分频繁)其原因在于实现通信的软件开销太大,每启动一次通信至少要执行上千条甚至上万条指令,造成用户级通信延迟在几十微秒以上甚至毫秒级,用户实际得到的通信带宽远远小于物理上可提供的带宽。以Intel Paragon大规模并行机为例,发送接收一个短信息,软件开销要占总开销97%以上,网络传输的硬件延迟不到1微秒。而对于细粒度并行的高性能计算机,用户级的通信延迟最好降到几个时钟周期以内。就用户级通信延迟而言,用ATM或快速以太网协议直接连接离我们的要求差两个数量级以上。所以高性能并行机的技术水平集中体现在低延迟高 带宽的互连网络接口。

一般来讲,一个程序在计算机上运行有两种开销,一是系统开销,即操作系统管理资源、协同配合的开销,二是用户层的开销。由于操作系统是十分复杂的系统软件(几十万行甚至几百万行)。为了保护数据,操作系统要进行许多数据拷贝、打包和传送,因此实现一个系统调用至少需几千个周期。传统的网络接口采用DMA机制,发送与接收数据都要向操作系统发中断请求,系统开销很大。设计低延迟高带宽的网络接口的一条原则是节点间通信要在用户层进行,不进入操作系统。而在用户层实现通信也有两种思路,一是通过存储器映射(Memory Map);二是寄存器级映射(Register Map)。采用寄存器级映射,将网络接口做到处理机芯片中,更有效地支持细粒度低延迟通信,但需要设计专门的硬件。计算机厂商出于市场考虑,往往不乐意为可扩展并行机单独开发处理机芯片。

3.并行软件

并行计算机难用已成为影响其推广的主要障碍。在并行机硬件与用户需求之间有一巨大间隔,只能靠软件来填补。并行计算机的应用效率和可用性主要取决于并行软件。并行机对软件的依赖性表现在用户程序(程序结构、数据结构、问题规模等)的改动可能引起机器性能很大的改变,用通信与控制领域的术语来讲,目前并行机是Q值很高的系统。要使并行机在较大的应用范围呈现较稳定的性能,并行软件方面还要突破许多关键技术。

使用并行机是为了加速问题求解,如并行机节约的时间补偿不了用户在编程和调试上多花的时间,并行处理就毫无实际意义。一台并行机的峰值速度由硬件决定(单处理机峰值*处理机数),我国学术界评价计算机研制水平习惯用峰值速度容易造成错误导向。实际上用户关心的是实际解题的速度或作业吞吐量,而实际速度(Sustained Speed)主要取决于软件,尤其是并行优化编译和并行算法。为了减少使用并行机的“人时”和获得满意的实际运算速度,最关键的软件技术是与机器无关的并行编程与功能较全的高性能并行算法库。

经过多年努力,串行计算机的编程已做到与机器无关,与机器有关的优化工作都已交给编译程序。事实上,RISC技术的兴起主要得益于编译技术的进步。同样,向量机编译技术的发展也提供了与机器无关的向量机编程界面。而并行机有共享存储、消息传递、数据并行等多种与机器有关的编程模式,机器升级换代时所有应用程序都要重写。比如从CM-2升级到CM-5,原来基于SIMD结构写的应用程序完全不能用。这种与机器相关的编程方式导致长期以来超级计算机只能是大实验的仪器设备,很少独立软件开发商敢于投资开发并行软件。为了改变这种局面采用标准语言(HPF)与标准编程界面(MPI),设计高效率的并行优化编译是一项关键任务。由于数据分配、指针处理的本质困难性,短期内难以做到完全依靠自动并行编译将用户写的串行程序转换成效率高的并行程序。

并行算法的效率与体系结构密切相关。将常用的并行算法经充分优化后做成并行算法库供用户调用,将目前广泛使用的库函数并行化变成标准的并行库函数,这是推广并行机必须要做的事,也是提高并行机实际性能的关键技术。发展并行机的目标应该是让用户只考虑应用领域本身的问题而不必关心并行机本身的结构。优化编译和算法库、函数库应能保证机器的实际性能足够高,不应驱使用户为了适应并行机的结构一点一点地修改程序改善性能。

三、推广并行机值得考虑的一些问题
1.应重视并行机在工业和事务处理方面的应用

我国去年引进大、中型系统454套,平均每套450多万元,引进小型系统2300多套,平均每套80多万元。这些系统大部分都是不同形式的并行系统,电子部统计的我国去年销售的7500套工作站(15亿元)中包括不少多处理机微机服务器,可见并行机在我国已有相当大的市场。这些并行机服务器大多数用于银行、邮电、铁道等事务处理部门,做为业务管理服务器,我国直接用于工业生产的并行机还不多,石油部走在全国的前列。大庆、胜利等大油田已购买大规模并行机用于探油与采油。计算机本身就是一种功能强大的生产工具,我国工业企业要实现从粗放型到集约型转变。采用计算机提高生产效率和产品竞争力是一条根本出路。欧洲各国为了与美国、日本竞争,将高性能计算机在工业上的应用放在非常的位置,在汽车、钢铁、石油等行业大力推广并行机,已取得明显效果。我国应当把在工业企业界普及推广高性能计算机做为技术改革的重要内容,真正发挥计算机这一最活跃的第一生产力的作用。

目前, 并行机最主要的用途不是科学计算而是提高吞吐率, 即用于支持大量客户机的超级服务器(Super Server), SMP和以SMP为结点机的Cluster是目前最流行的并行机。Internet和计算机网络的发展, 国家金系列工程的蓬勃开展为超级服务器提供了广大市场。我们要优先发展基于SMPCluster的服务器产业, 让国产服务器像微机一样占领可观的市场份额。

2.计算机选型的一些误区

各大计算机产家都标榜自已产的计算机是世界上最好的计算机,用户在选择购买计算机时常常受厂家宣传的误导,陷于困惑之中。实际上世界上没有一种在所有行业都有最高性能价格比的计算机。计算机的设计过程实际上是一种折衷过程,不可能对各方面的用户需要都实行优化设计。形形色色的Benchmark测试并不能完全反映实际应用的性能水平,有些厂家甚至专针对SPEC等测试标准进行优化设计,这就出现类似学校中会应付考试的学生一样的“高分低能”机器。测试计算机性能最有把握的方法是直接运行本行业的应用程序,不要过分相信Benchmark程序。我国各部门计算机选型时特别看重主频和字长(32位还是64),这也是一种片面观点。我们的实际测试表明100M主频的曙光天演工作站性能超过150M主频的ALPHA工作站。主频相近的情况下,曙光天演工作站在运行电子线路设计程序(CandenceMentor)性能比HP9000SPARC-20高三倍以上。64位机提供更大的地址空间,对于要求精度很高的科学计算是必要的,但对于输入数据精度就只有8位或16位的应用,采用64位机就大材小用了。

在并行机领域,科研界与用户界习惯用相对的并行加速比来衡量机器的水平,即将一并行程序分别在一个处理机和P个处理机运行,看运行速度是否有接近P倍提高。这种比较并不科学,因为并行算法往往对串行算法进行改造,好的并行算法不一定基于好的串行算法。最朴素也是最严格的比较应是在并行机运行并行程序,而在单机上运行基于最佳串行算法的串行程序,考虑从输入作业到得到结果全部时间(包括I/O)。因为对用户来讲,真正有价值的是单机一天或一个月做完的事,并行机能不能在一小时甚至更短时间内完成,这才是真正加速比。

针对学术界和一些用户过份看重浮点运算速度的倾向,计算机界的权威Patterson教授明确指出1万亿字节比1万亿次更重要,(1Terabyte>>1Teraflops)。随着芯片技术和并行处理技术飞速发展,计算速度提高很快,I/O能力已成为明显瓶子口,在选择计算机时应更看重I/O能力。I/O速度与磁盘,外部总线以及操作系统(主存中文件缓冲区)等都有关系。目前有些工作站的I/O能力已高于传统的大型机,如何测试I/O能力需要新的Benchmarch

3.技术协作与支持是用好并行机的关键

并行机是比较复杂的计算系统,用好并行机不是件容易的事。目前用户编并行程序还不能做到完全与机器无关。一般来讲,用户对机器的体系结构越熟悉,使用机器的效率越高。另一方面,开发应用程序往往要求设计新的并行算法,需要较高的数学功底。要求用户既熟悉计算机本身又是计算数学专家不太现实。因此,采取计算机设计师、计算数学学者和熟悉应用背景的应用软件开发者三结合的方式是推广应用并行机的一种好形式。

在曙光1000的推广中我们已有三结合的成功经验。中科院的物理所研究晶体材料电子结构的物理学家、中科院软件所研究并行算法的专家与国家智能计算机研究开发中心的曙光1000设计者密切合作,开发出求解大广义矩阵特征值问题的快速并行算法和并行软件包,其解题速度比CrayDEC公司并行机的求解速度快8倍以上, 在世界上首先计算出三硼酸锂新材料的电子结构。国外大学与研究机构也在与工业部门密切合作,比如美国Texas大学的石油与地质工程中心(CPGE)与石油企业配合正在开发新的油藏摸拟算法与软件。与国外相比,我国在实现三结合方面有优势,我们可以形成更紧密的合作关系。

充分的技术支持对用户来讲是用好并行机的前题条件。曙光公司有信心有能力做好高质量的技术支持与技术咨询。继曙光一号与曙光1000以后,智能机中心与曙光公司又推出七个系列不同档次工作站与服务器,包括高性能SMP服务器、高可用服务器和适合中国国情的Internet服务器等。我们将下大力气在事务处理等商用领域和计算机仿真等CAM领域推广普及并行处理技术, 为我国各种金字工程提供超级服务器。在863计划支持下,智能机中心正在研制可扩展性强、通用性较强的大规模并行机,峰值速度每秒500亿次浮点运算,1998年初推出。98年以后我们还要研究更高水平的并行机。通过研制并行机,我们对并行机有较深入的了解,可以比外国公司的分支机构更好地支持用户。

为了促进并行机推广,国家科委等政府部门设立了高性能计算基金,863计划也拨出专门经费支持曙光计算机推广应用。今年以来, 石油、铁道、内贸等部门,各高等院校,尤其是天津市各行业,已开始形成推广国产高性能计算机的高潮。我们相信在广大用户的支持下,国产高性能计算产业和并行机的广泛应用必将在我们这一代人的努力中实现。

 

1996

 


 [fang1]

XML 地图 | Sitemap 地图