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

本文详细探讨了并行计算领域的核心问题,包括并行计算机体系结构的分类和发展,如SISD、MIMD、SIMD、MISD等;并行程序开发环境,如共享内存模型、消息传递模型,以及OpenMP、MPI、HPF等编程模型;以及通信技术,如网络拓扑结构、通信协议和任务粒度划分。文章强调了这些要素在并行算法研究中的重要性,并指出降低通信时延是提高并行计算机性能的关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

并行程序的编程模型、运行环境、调试环境等都要比串行程序复杂得多。提供良好的高性能计算开发环境,一直是学术界和工业界所追求的目标。这里的开发环境既包括并行计算机体系结构,计算机网络拓扑结构等硬件环境;也包括并行程序的开发模式,网络通信协议和通信方式等软件环境。并行算法研究要以硬件,即并行计算机为依托,并行计算机性能的发挥要依靠优秀并行算法的设计的实现。所以本文,并行算法研究现状及其相关问题的综述,将对与并行紧密相关的并行计算机体系结构,并行程序开发环境,通信技术三个问题依次进行讨论。一、 并行计算机体系结构“ 并行计算机是由一组处理单元组成的;这组处理单元通过相互之间的通 信与协作,以更快的速度共同完成一项大规模的计算任务。”这就是并行计算机 的经典定义。这个定义并没有包含更多的细节,但是从中我们也不难看出并行计算机的两个最主要的组成部分:计算节点和节点间的通信与协作机制。并行计算机体系结构的发展变化非常快,而这种变化主要体现在计算节点 性能的提高以及节点间通信技术的改进两方面。长期以来,超大规模集成电路技 术一直在按照摩尔定律高速发展,芯片的元件密度以及时钟频率在不断提高,从 而大大提高了作为并行计算机基本处理单元的微处理器的性能。而在通信技术 方面, 传统的交叉开关的切换速度不断提高,而新的高速网络技术也不断应用 到并行计算机中,从而大大提高了节点间通信的速率。(一)体系结构的分类 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的精简指令集,还引入了向
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值