并行算法研究现状及去相关问题综述

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

并行算法研究现状及其相关问题综述

并行程序的编程模型、运行环境、调试环境等都要比串行程序复杂得多。提供良好的高性能计算开发环境,一直是学术界和工业界所追求的目标。这里的开发环境既包括并行计算机体系结构,计算机网络拓扑结构等硬件环境;也包括并行程序的开发模式,网络通信协议和通信方式等软件环境。并行算法研究要以硬件,即并行计算机为依托,并行计算机性能的发挥要依靠优秀并行算法的设计的实现。

所以本文,并行算法研究现状及其相关问题的综述,将对与并行紧密相关的并行计算机体系结构,并行程序开发环境,通信技术三个问题依次进行讨论。

一、并行计算机体系结构

“并行计算机是由一组处理单元组成的;这组处理单元通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。”这就是并行计算机的经典定义。这个定义并没有包含更多的细节,但是从中我们也不难看出并行计算机的两个最主要的组成部分:计算节点和节点间的通信与协作机制。

并行计算机体系结构的发展变化非常快,而这种变化主要体现在计算节点性能的提高以及节点间通信技术的改进两方面。长期以来,超大规模集成电路技术一直在按照摩尔定律高速发展,芯片的元件密度以及时钟频率在不断提高,从而大大提高了作为并行计算机基本处理单元的微处理器的性能。而在通信技术方面,传统的交叉开关的切换速度不断提高,而新的高速网络技术也不断应用到并行计算机中,从而大大提高了节点间通信的速率。

(一)体系结构的分类

1972年,Micheal Flynn根据指令和数据流的概念对计算机的体系结构进行了分类,这就是所谓的Flynn分类法。

Flynn将计算机划分为四种基本类型,即SISD、MIMD、SIMD、MISD。

传统的顺序执行的计算机在同一时刻只能执行一条指令(即只有一个控制流)、处理一个数据(即只有一个数据流),因此被称为单指令流单数据流计算机(Single Instruction Single Data即SISD计算机)。而对于大多数并行计算机而言,多个处理单元都是根据不同的控制流程执行不同的操作,处理不同的数据,因此,它们被称作是多指令流多数据流计算机,即MIMD(Multiple Instruction Multiple Data)计算机。

曾经在很长一段时间内成为超级并行计算机主流的向量计算机除了标量处理单元之外,最重要的是具有能进行向量计算的硬件单元。在执行向量操作时,一条指令可以同时对多个数据(组成一个向量)进行运算,这就是单指令流多数据流(Single Instruction Multiple Data,SIMD)的概念。因此,我们将向量计算机称SIMD计算机。

第四种类型即所谓的多指令流单数据流(Multiple Instruction Single Data)计算机。在这种计算机中,各个处理单元组成一个线性阵列,分别执行不同的指令流,而同一个数据流则顺次通过这个阵列中的各个处理单元。这种系统结构只适用于某些特定的算法。

相对而言,SIMD和MISD模型更适合于专用计算。在并行计算机中,MIMD模型最为通用,SIMD次之,而MISD最少用。

(二)体系结构的发展过程

并行计算机40年的发展过程中出现过许多著名的机器。

60年代初期,由于晶体管以及磁芯存储器的出现,处理单元变得越来越小,存储器也更加小巧和廉价。这些技术发展的结果导致了并行计算机的出现,并迎来了它的第一个黄金时代。

这一时期的并行计算机多是规模不大的共享存储多处理器系统,不过,当时它们可是被当作大型主机(Mainframe)来看待的。Burroughs B5000, D825以及IBM System 360是这一时期的典型代表。其中,IBM System 360在过渡到370系列时引入了多处理机的概念,而CDC 6600则在中央处理器与多个I/O处理器之间采用了异步共享存储器的机制。与这些机器有所不同的是,RW400则是最早采用消息传递机制的大型主机。

到了60年代末期,同一个处理器开始设置多个功能相同的功能单元,流水线技术也出现了。与单纯提高时钟频率相比,这些并行特性在处理器内部的应用大大提高了并行计算机系统的性能。

伊利诺依大学和Burroughs公司此时开始了一项庞大的工程,即Illiac IV 计划。他们认为,当时已有的技术已经走到尽头了,因此决定另辟蹊径。根据这一规划,Illiac IV 应该是一台64个CPU的SIMD主机系统,它涉及到从最底层的硬件技术、体系结构、I/O设备、操作系统、程序设计语言直至应用程序在内的众多研究课题。不过,当一台规模大大缩小了的16 CPU系统终于在1975年露出了它的庐山真面目的时候,整个计算机界已经发生了巨大的变化。

首先是存储系统概念的彻底革新。虚拟存储和缓存这两个概念现在已经应用在了几乎所有的计算机系统里,但在70年代初期,它们却带来一场真正的革命。IBM 360/85系统与360/91是属于同一系列的两个机型,360/91的主频高于360/85,所选用的内存速度也较快,并且采用了动态调度的指令流水线;但是,360/85的整体性能却高于360/91,唯一的原因就是前者采用了缓存技术,而后者则没有。

其次是半导体存储器开始代替磁芯存储器。最初,半导体存储器只是在某些机器中被用作缓存,而CDC 7600则率先全面采用这种体积更小、速度更快、可以直接寻址的半导体存储器,磁芯存储器从此退出了历史舞台。与此同时,集成电路也出现了,并迅速应用到了计算机中。元器件技术的这两大革命性突破,使得Illiac IV的设计者们在底层硬件以及并行体系结构方面提出的种种改进都大为逊色。

Illiac IV原本是想解决数值计算中向量运算密集的问题的,不过,这个任务却是由这一时期诞生的最早的向量流水线计算机CDC STAR 100完成的。而到了1976年CRAY 1问世以后,一个长达15年的新时代开始了,向量计算机从此牢牢地控制着整个高性能计算机市场。CRAY 1对所使用的逻辑电路进行了精心的设计,采用了我们如今称为RISC的精简指令集,还引入了向量寄存器,以完成向量运算。这一系列全新技术手段的使用,使CRAY 1的主频达到了令时人不可思议的80 MHz。

微处理器的出现则使并行计算机的体系结构迈出了另一大步。最早的微处理器性能并不是很理想,但是随着机器的字长从4位、8位、16位一直增加到32位,其性能也随之显著提高。正是因为看到了微处理器的这种潜力,卡内基梅隆大学开始在当时流行的DEC PDP 11小型计算机的基础上进行共享存储多处理器系统的研究。C.mmp就是这一研究项目的具体成果。它是一台由16个PDP 11/40处理机通过交叉开关与16个共享存储器模块相连接而成的。

从80年代开始,微处理器技术一直在高速前进。稍后又出现了非常适合于SMP方式的总线协议,而伯克利加州大学则对总线协议进行了扩展,提出了Cache 一致性问题的处理方案。从此,C.mmp开创出的共享存储多处理器之路越走越宽;到了10年之后的今天,这种体系结构已经基本上统治了服务器和桌面工作站市场。

同一时期,基于消息传递机制的并行计算机也开始不断涌现。80年代中期,加州理工成功

相关文档
最新文档