发展
大规模并行处理的思想始于20世纪50年代。1950年,冯·诺依曼就提出了“自复制细胞自动机”的概念。1958年斯蒂文·尤格(Steven Unger)提出了构造二维“单指令流多数据流”(SIMD)阵列机的设想,1963年曾按这种构想提出了两种方案:Soloman系统和nliacⅢ,但均以失败告终。1972年,nlinois大学与Burrough公司合作研制的nliac Ⅳ可以说是大规模并行处理计算机的鼻祖。该机将阵列分成4个象限,每个象限包含8×8个处理器(PE),每个PE可以和上下左右4个PE通信,这种设计思想对多处理机阵列结构的研究及设计产生了极大的影响。由于当时硬、软件水平所限,nliac Ⅳ只做了一个象限,并且不大成功。
到20世纪80年代中期以来,随着超大规模集成电路技术的发展,以及单片微处理机性能的提高和并行处理技术的进步,产生了一批新的大规模并行处理计算机。美国思维机器公司于1986年研制成功CM一1,第二年又推出CM一2,该系统最多可有65 536个处理机,峰值速度达28GFLOPS,1992年又推出世界上最快的机器CM-5。
美国Intel Scientific Computer公司从80年代中期开始,先后推出了ipsc/1、ipsc/2、ipsc/860三代大规模并行处理计算机,随后又发表了Tristar计划。
美国高度并行处理技术之所以兴旺发达,与美国政府的有力支持和对研究与开发的高强度投入有直接关系。如美国研究与开发的优先领域是军事、空间、卫生、能源和基础科学,这些都是政府支持的项目,其中空间和能源领域主要是军用。具体地说,就是美国国防部、能源部、航空和宇航局等将高达425亿美元的巨款通过美国国家实验室的常设机构(联邦资助研究与开发中心),以各种规划形式,对高度并行处理计算机的研究与开发进行资助。2
目前,巨型机的运算速度可达每秒几百亿次运算,大规模并行处理的计算机将是巨型计算机的重要发展方向。3
关键技术微处理器技术随着超大规模集成电路技术的迅速发展,市场上出现了许多高性能的单片微处理器,例如,i860、R4000、Alpha、PA—RISC等,给大规模并行处理机的发展提供了条件。目前有不少大公司在优化处理单元技术,开发和利用高性能微处理器,如采用新一代RISC微处理机芯片制作新一代大规模并行处理计算机系统,例如Clay的Tara一3D,Intel的Paragon XP/S,TMC的CM一5等。2
互连网络结构互连网络结构的设计对计算机系统性能的影响很大。互连网络结构一般和应用领域中数据之间的关系以及并行算法的设计有关。因此在设计互连网络时,要考虑实际算法的特点以及网络连接的复杂程度。大规模并行处理计算机采用的互连网络有:总线(Bus)、链接(Fully—Connected)、纵横交叉(Crossber)、静态点到点、动态单级网络和动态多级网络。
由于大规模并行处理计算机中处理机很多,各处理机间同步与通信是一个难点,采用软件方法实现同步与通信时,其同步与通信开销比较大,如果用硬件实现同步与通信,效率会高得多,但技术难度较大。
I/O技术在大规模并行处理计算机中,可采用向量机作其前端机,担任主控和I/O处理,而让并行处理系统负责进行高速运算。2
存储器组织大规模并行处理计算机的存储组织有许多型式。例如,SIMD型和分布式存储的MIMD型计算机一般采用分布存储器组织结构,每个节点有各自的地址空间,但没有一个全局的地址空间,节点间的计算相互独立,数据和信息交换按消息传递方式进行。这种存储器组织,给程序员编程和算法设计带来困难,数据交换不方便,进程间不能转移。对于紧耦合的MIMD型机,采用统一的地址空间供多个处理器使用,这种组织编程十分方便,数据共享容易。1
并行软件并行操作系统、并行程序设计语言、并行算法和并行应用软件,更是大规模并行处理机的关键技术。目前使用的并行操作系统主要是基于UNIX分布式操作系统,如nCUBE的nCX,Tara一3D的Math,ipsc/860的NX等。分布式操作系统的设计难点有:自动负载平衡问题、节点间同步通信问题、对分布共享存储的管理问题等。已经开发的多种并行语言,基本上遵从两类编程模式,一是共享存储编程模式,二是消息传递编程模式。并行的表示方法有显式和稳式两种。其中显式表示方法必须考虑增加什么语言成份才能有效且方便地支持并行程序设计。而隐式表示方法,编译器必须自动识别用户程序中的并行性。无论是哪种方法,编译必须考虑“数据对准”的问题和任务划分问题,以便支持多个处理单元协同工作。2
分类从技术角度看MPP系统分为单指令流多数据流(SIMD)系统和多指令流多数据流(MIMD)系统两类。SIMD系统结构简单,应用面窄,MIMD系统则是主流,有的MIMD系统亦同时支持SIMD方式。MPP系统的主存储器体系分为集中共享方式和分布共享方式两类,分布共享方式则是一种趋向。
MPP系统的成熟和普及还需要做大量的工作,以研究更好的,更通用的体系结构,更有效的通讯机制,更有效的并行算法,更好的软件优化技术,同时要着重解决MPP系统程序设计十分困难的问题,提供良好的操作系统和高级程序语言,以及提供方便用户使用的,可视化的,交互式软件开发工具。