当前位置首页 > 百科> 正文

并行处理

2019-07-22 11:08:50 百科
并行处理

并行处理

并行处理(Parallel Processing)是计算机系统中能同时执行两个或多个处理的一种计算方法。并行处理可同时工作于同一程式的不同方面。并行处理的主要目的是节省大型和複杂问题的解决时间。为使用并行处理,首先需要对程式进行并行化处理,也就是说将工作各部分分配到不同处理进程(执行绪)中。并行处理由于存在相互关联的问题,因此不能自动实现。另外,并行也不能保证加速。从理论上讲,在 n 个并行处理的执行速度可能会是在单一处理机上执行的速度的 n 倍。

基本介绍

  • 中文名:并行处理
  • 外文名:Parallel Processing
  • 分类:计算方法
  • 处理方式:并行化处理

特点

只有部分应用程式在满足以下条件的情况下可利用并行处理:具有充足的能充分利用多处理机的应用程式; 并行化目标应用程式或用户需进行新的编码来利用并行程式。
传统上,多处理机专为“并行计算机”所设计,沿着这样的思路,当前 Linux 支持 SMP 奔腾系统,在该系统中多处理机共享单个计算机中的单个存储器和汇流排接口。每个运行 Linux 的机器组都有可能通过网路互相连线形成并行处理群。第三种选择是使用 Linux 系统作为“主机”,提供专门的相关并行处理机(attached parallel processor)。第四种新选择是暂存器内 SIMD 并行,套用于多媒体扩展(MMX)。
并行处理所需要提供的典型硬体环境有:
单处理机上的单个区;
多处理机(SMP)中的单个区;
多区配置
一个处理机(MPP)中的各区 ;
多处理机(SMP 群)中的各区;
逻辑资料库区(在 AIX 第1版的 DB2 并行版 - DB2 PE 中也称之为多逻辑代码或 MLN)
并行计算机具有代表性的套用领域有:天气预报建摸、VLSI电路的计算机辅助设计、大型资料库管理、人工智慧、犯罪控制和国防战略研究等,而且它的套用範围还在不断地扩大。并行处理技术主要是以算法为核心,并行语言为描述,软硬体作为实现工具的相互联繫而又相互制约的一种结构技术。

算法基本策略

在并行处理技术中所使用的算法主要遵循三种策略:
1.分而治之法:也就是把多个任务分解到多个处理器或多个计算机中,然后再按照一定的拓扑结构来进行求解。
2.重新排序法:分别採用静态或动态的指令词度方式。
3.显式/隐式并行性结合:显式指的是并行语言通过编译形成并行程式,隐式指的是串列语言通过编译形成并行程式,显式/隐式并行性结合的关键就在于并行编译,而并行编译涉及到语句、程式段、进程以及各级程式的并行性。

并行性描述定义

利用计算机语言进行并行性描述的时候主要有三种方案:
1.语言扩展方案:也就是利用各种语言的库函式来进行并行性功能的扩展。
2.编译製导法:也称为智慧型编译,它是隐式并行策略的体现,主要是由并行编译系统进行程式表示、控制流的分析、相关分析、最佳化分析和并行化划分,由相关分析得到方法库管理方案,由最佳化分析得到知识库管理方案,由并行化划分得到程式重构,从而形成并行程式。
3.新的语言结构法:这是显式并行策略的体现。也就是建立一种全新的并行语言的体系,而这种并行语言通过编译就能直接形成并行程式。

并行软体

并行软体可分成并行系统软体和并行套用软体两大类,并行系统软体主要指并行编译系统和并行作业系统,并行套用软体主要指各种软体工具和套用软体包。在软体中所牵涉到的程式的并行性主要是指程式的相关性和网路互连两方面。
1.程式的相关性:程式的相关性主要分为数据相关、控制相关和资源相关三类。
数据相关说明的是语句之间的有序关係,主要有流相关、反相关、输出相关、I/O相关和求知相关等,这种关係在程式运行前就可以通过分析程式确定下来。数据相关是一种偏序关係,程式中并不是每一对语句的成员都是相关联的。可以通过分析程式的数据相关,把程式中一些不存在相关性的指令并行地执行,以提高程式运行的速度。
控制相关指的是语句执行次序在运行前不能确定的情况。它一般是由转移指令引起的,只有在程式执行到一定的语句时才能判断出语句的相关性。控制相关常使正在开发的并行性中止,为了开发更多的并行性,必须用编译技术克服控制相关。
而资源相关则与系统进行的工作无关,而与并行事件利用整数部件、浮点部件、暂存器和存储区等共享资源时发生的冲突有关。软体的并行性主要是由程式的控制相关和数据相关性决定的。在并行性开发时往往把程式划分成许多的程式段——颗粒。颗粒的规模也称为粒度,它是衡量软体进程所含计算量的尺度,一般用细、中、粗来描述。划分的粒度越细,各子系统间的通信时延也越低,并行性就越高,但系统开销也越大。因此,我们在进行程式组合最佳化的时候应该选择适当的粒度,并且把通讯时延儘可能放在程式段中进行,还可以通过软硬体适配和编译最佳化的手段来提高程式的并行度。
2.网路互连:将计算机子系统互连在一起或构造多处理机或多计算机时可使用静态或动态拓扑结构的网路。静态网路由点一点直接相连而成,这种连线方式在程式执行过程中不会改变,常用来实现集中式系统的子系统之间或分散式系统的多个计算结点之间的固定连线。动态网路是用开关通道实现的,它可动态地改变结构,使之与用户程式中的通信要求匹配。动态网路包括汇流排、交叉开关和多级网路,常用于共享存储型多处理机中。在网路上的讯息传递主要通过寻径来实现。常见的寻径方式有存储转发寻径和虫蚀寻径等。在存储转发网路中以长度固定的包作为信息流的基本单位,每个结点有一个包缓冲区,包从源结点经过一系列中间结点到达目的结点。存储转发网路的时延与源和目的之间的距离(段数)成正比。而在新型的计算机系统中採用虫蚀寻径,把包进一步分成一些固定长度的片,与结点相连的硬体寻径器中有片缓冲区。讯息从源传送到目的结点要经过一系列寻径器。同一个包中所有的片以流水方式顺序传送,不同的包可交替地传送,但不同包的片不能交叉,以免被送到错误的目的地。虫蚀寻径的时延几乎与源和目的之间的距离无关。在寻径中产生的死锁问题可以由虚拟通道来解决。虚拟通道是两个结点间的逻辑链,它由源结点的片缓冲区、结点间的物理通道以及接收结点的片缓冲区组成。物理通道由所有的虚拟通道分时地共享。虚拟通道虽然可以避免死锁,但可能会使每个请求可用的有效通道频宽降低。因此,在确定虚拟通道数目时,需要对网路吞吐量和通信时延折衷考虑。

硬体技术

硬体技术在硬体技术方面主要从处理机、存储器和流水线三个方面来实现并行。
1.处理机:主要的处理机系列包括CISC、RISC、超标量、VL1W、超流水线、向量以及符号处理机。
传统的处理机属于複杂指令系统计算(CISC)结构。指令系统大,指令格式可变,通用暂存器个数较少,基本上使用合一的指令与数据高速快取,时钟频率较低,CPI较高,大多数利用ROM 实现微码控制CPU,而当今的精简指令系统计算(RISC)处理机指令格式简单规範,面向暂存器堆,採用重叠暂存器视窗技术,具有多级Cache,多种流水线结构,强调编译最佳化技术,时钟频率快,CPI低,大多数用硬连线控制CPU。
CISC或RISC标量处理机都可以採用超标量或向量结构来改善性能。标量处理机在每个周期内只发射一条指令并要求周期只完成从流水线来的一条指令。而在超标量处理机中,使用了多指令流水线,每个周期要发射多条指令并产生多个结果。由于希望程式中有许多的指令级并行性,因此超标量处理机更要依靠最佳化编译器去开发并行性。
VL1W 结构是将水平微码和超标量处理这两种普遍採用的概念结合起来产生的。典型的超长指令字VL1W 机器指令字长度有数百位。在VLlW 处理机中,多个功能部件是并发工作的,所有的功能部件共享使用公用大型暂存器堆,由功能部件同时执行的各种操作是用VL1W 指令来同步的,每条指令可指定多个操作。VL1W 指令解码比超标量指令容易,但在开发不同数量的并行性时总是需要不同的指令系统。VL1W 主要是开发标量操作之间的并行性,它的成功与否很大程度取决于代码压缩的效率,其结构和任何传统的通用处理机完全不兼容。即使同一结构的不同实现也不大可能做到彼此二进制兼容。VL1W 的主要优点在于它的硬体结构和指令系统简单,在科学套用领域可以发挥良好作用,但在一般套用场合可能并不很好用。
向量处理机对数组执行向量指令,每条指令都包含一串重複的操作。它是专门设计用来完成向量运算的协处理机,通常用于多流水线超级计算机中。向量处理机可以利用循环级展开所得的并行性,它可以附属于任何标量处理机。专用的向量流水线可以在循环控制中消除某些软体开销,它的效果与最佳化编译器将顺序代码向量化的性能很有关係。从理论上说,向量机可以具有和超标量处理机同样的性能,因此可以说向量机的并行性与超标量机相同。
符号处理机是为AI套用而研製的,已用于定理证明、模式识别、专家系统、知识工程、文本检索、科学以及机器智慧型等许多套用领域。在这些套用中,数据和知识表达式、原语操作、算法特性、存储器、I/0和通信以及专用的结构特性与数值计算是不一样的,符号处理机也称为逻辑程式设计语言处理机、表处理语言处理机或符号变换器。符号处理并不和数值数据打交道,它处理的是逻辑程式、符号表、对象、剧本、黑板、产生式系统、语义网路、框架以及人工神经网路等问题。这些操作需要专门的指令系统,通常不使用浮点操作。
2.存储器:存储设备按容量和存取时间从低到高可分为暂存器、高速快取、主存储器、磁碟设备和磁带机五个层次。较低层存储设备与较高层的相比,存取速度较快、容量较小,每位元组成本较高、频宽较宽、传输单位较小。
存放在存储器层次结构中的信息满足三个重要特性:包含性、一致性和局部性。所谓包含性,指的是一个信息字的複製品可以在比它高的所有层中找到,而如果在高层中丢失了一个信息,则在比它低的所有层中此信息也将丢失。CPU 和高速快取之间的信息传送是按字进行的,高速快取和主存储器间用块作为数据传送的基本单位,主存和磁碟之间又是以页面为基本单位来传送信息的,而在磁碟和磁带机之间的数据传送则是按档案级处理的。所谓一致性要求的是同一个信息项与后继存储器层次上的副本是一致的。也就是说,如果在高速快取中的一个字被修改过,那幺在所有更高层上该字的副本也必须立即或最后加以修改。为了儘量减少存储器层次结构的有效存取时间,通常把频繁使用的信息放在较低层次。维护存储器层次结构一致性一般有两种策略,一种是写直达策略,也就是如果,则立即在所有高层存储器中进行同样的修改;另一种是写回策略,也就是在较低层中对信息进行修改后并不立即在高层存储器中进行相应的修改,而是等到该信息将被替换或将从低层中消失时才在所有高层存储器中进行同样的修改。甚至可以将写直达和写回策略的优点结合起来,形成写一次协定来维护存储器的一致性。
存储器的层次结构是在一种程式行为——访问的局部性基础上开发出来的。主要有时间局部性、空间局部性和顺序局部性。时间局部性指的是最近的访问项很可能在不久的将来再次被访问。它往往会引起对最近使用区域的集中访问。空间局部性表示一种趋势,指的是一个进程访问的各项其地址彼此很近。顺序局部性指的是在典型程式中,除非是转移指令,一般指令都是顺序执行的。
在多处理机系统中一般使用共享存储器。对共享存储器的组织一般採用低位交叉、高位交叉、高低位交叉三种方法。低位交叉又称并发存取,它是把相邻的地址放在相邻的存储器模组中,在访问时不容易产生冲突,并行性较好,但可靠性容错能力和扩展性均较差。高位交叉又称允许同时存取,它是把相邻地址分配到同一个存储器模组中,可靠性、容错能力和扩展性均较强,但访问时易产生冲突,频宽较窄,并行性较差。高低位交叉存取又称C—s存取,它是结合了高位交叉和低位交叉两种方法的优点,既解决了冲突问题,又能有效地提高容错能力和并行性,最适合于向量处理机结构。
3.流水线:流水线技术主要有指令流水线技术和运算流水线技术两种。
指令流水线技术主要目的是要提高计算机的运行效率和吞吐率。它主要通过设定预取指令缓冲区、设定多功能部件、进行内部数据定向、採取适当的指令调度策略来实现。指令调度的策略主要有静态和动态两种,静态词度是基于软体的,主要由编译器完成,动态词度是基于硬体的,主要是通过硬体技术进行。
运算流水线主要有单功能流水线和多功能流水线两种。其中多功能流水线又可分为静态流水线和动态流水线。静态流水线技术只用来实现确定的功能,而动态流水线可以在不同时间重新组合,实现不同的功能,它除流线连线外,还允许前馈和反馈连线,因此也称为非线性流水线。这些前馈和反馈连线使得进入流水线的相继事件的词度变得很不简单。由于这些连线,流水线不一定从最后一段输出。根据不同的数据流动模式,人们可以用同一条流水线求得不同功能的值。

并行计算机发展简述

40 年代开始的现代计算机发展历程可以分为两个明显的发展时代:串列计算时代、并行计算时代。每一个计算时代都从体系结构发展开始,接着是系统软体(特别是编译器与作业系统)、套用软体,最后随着问题求解环境的发展而达到顶峰。创建和使用并行计算机的主要原因是因为并行计算机是解决单处理器速度瓶颈的最好方法之一。
并行计算机是由一组处理单元组成的,这组处理单元通过相互之间的通信与协作,以更快的速度共同完成一项大规模的计算任务。因此,并行计算机的两个最主要的组成部分是计算节点和节点间的通信与协作机制。并行计算机体系结构的发展也主要体现在计算节点性能的提高以及节点间通信技术的改进两方面。
60 年代初期,由于电晶体以及磁芯存储器的出现,处理单元变得越来越小,存储器也更加小巧和廉价。这些技术发展的结果导致了并行计算机的出现,这一时期的并行计算机多是规模不大的共享存储多处理器系统,即所谓大型主机(Mainframe)。IBM360 是这一时期的典型代表。
到了60 年代末期,同一个处理器开始设定多个功能相同的功能单元,流水线技术也出现了。与单纯提高时钟频率相比,这些并行特性在处理器内部的套用大大提高了并行计算机系统的性能。伊利诺依大学和Burroughs 公司此时开始实施IlliacIV 计画,研製一台64 个CPU 的SIMD 主机系统,它涉及到硬体技术、体系结构、I/O 设备、作业系统、程式设计语言直至应用程式在内的众多研究课题。不过,当一台规模大大缩小了的16CPU 系统终于在1975 年面世时,整个计算机界已经发生了巨大变化。
首先是存储系统概念的革新,提出虚拟存储和快取的思想。IBM360/85 系统与360/91是属于同一系列的两个机型,360/91 的主频高于360/85,所选用的记忆体速度也较快,并且採用了动态调度的指令流水线;但是,360/85 的整体性能却高于360/91,唯一的原因就是前者採用了快取技术,而后者则没有。
其次是半导体存储器开始代替磁芯存储器。最初,半导体存储器只是在某些机器被用作快取,而CDC7600 则率先全面採用这种体积更小、速度更快、可以直接定址的半导体存储器,磁芯存储器从此退出了历史舞台。与此同时,积体电路也出现了,并迅速套用到了计算机中。元器件技术的这两大革命性突破,使得IlliacIV 的设计者们在底层硬体以及并行体系结构方面提出的种种改进都大为逊色。
1976 年CRAY-1 问世以后,向量计算机从此牢牢地控制着整个高性能计算机市场15 年。CRAY-1 对所使用的逻辑电路进行了精心的设计,採用了我们如今称为RISC 的精简指令集,还引入了向量暂存器,以完成向量运算。这一系列全新技术手段的使用,使CRAY-1 的主频达到了80MHz。
微处理器随着机器的字长从4 位、8 位、16 位一直增加到32 位,其性能也随之显着提高。正是因为看到了微处理器的这种潜力,卡内基- 梅隆大学开始在当时流行的DECPDP11 小型计算机的基础上研製成功一台由16 个PDP11/40 处理机通过交叉开关与16 个共享存储器模组相连线而成的共享存储多处理器系统C.mmp。
从80 年代开始,微处理器技术一直在高速前进。稍后又出现了非常适合于SMP 方式的汇流排协定,而伯克利加州大学则对汇流排协定进行了扩展,提出了Cache 一致性问题的处理方案。从此,C.mmp 开创出的共享存储多处理器之路越走越宽;现在,这种体系结构已经基本上统治了伺服器和桌面工作站市场。
同一时期,基于讯息传递机制的并行计算机也开始不断涌现。80 年代中期,加州理工成功地将64 个i8086/i8087 处理器通过超立方体互连结构连结起来。此后,便先后出现了Intel iPSC 系列、INMOS Transputer 系列,Intel Paragon 以及IBM SP 的前身Vulcan 等基于讯息传递机制的并行计算机。
80 年代末到90 年代初,共享存储器方式的大规模并行计算机又获得了新的发展。IBM将大量早期RISC 微处理器通过蝶形互连网路连结起来。人们开始考虑如何才能在实现共享存储器快取一致的同时,使系统具有一定的可扩展性(Scalability)。90 年代初期,史丹福大学提出了DASH 计画,它通过维护一个保存有每一快取块位置信息的目录结构来实现分散式共享存储器的快取一致性。后来,IEEE 在此基础上提出了快取一致性协定的标準。
90 年代以来,主要的几种体系结构开始走向融合。属于数据并行类型的CM-5 除大量採用商品化的微处理器以外,也允许用户层的程式传递一些简单的讯息;CRAY T3D是一台NUMA 结构的共享存储型并行计算机,但是它也提供了全局同步机制、讯息伫列机制,并採取了一些减少讯息传递延迟的技术。
随着商品化微处理器、网路设备的发展,以及MPI/PVM 等并行编程标準的发布,机群架构的并行计算机出现。IBM SP2 系列机群系统就是其中的典型代表。在这些系统中,各个节点採用的都是标準的商品化计算机,它们之间通过高速网路连线起来。
越来越多的并行计算机系统採用商品化的微处理器加上商品化的互连网路构造,这种分布存储的并行计算机系统称为机群。国内几乎所有的高性能计算机厂商都生产这种具有极高性能价格比的高性能计算机,并行计算机就进入了一个新的时代,并行计算的套用达到了前所未有的广度和深度。
并行计算机随着微处理晶片的发展,已经进入了一个新时代。并行计算机的性能已经突破20PFLOPS,正在向百亿亿次发展。我国并行计算机的研製已经走在世界前列。2003年由联想公司生产的深腾6800 在2003 年11 月世界TOP500 排名中位列第14 名,2004 年曙光公司生产的曙光4000A 在2004 年6 月的世界TOP500 排名中位列第10 名,这是我国公开发布的高性能计算机在世界TOP500 中首次进入前十名,这标誌着我国在并行计算机系统的研製和生产中已经赶上了国际先进水平,为提高我国的科学研究水平奠定了物质基础。2013年国际超级计算机大会最新发布的世界超级计算机500强排名中,国防科技大学研製的天河二号超级计算机系统,以峰值计算速度每秒5.49亿亿次、持续计算速度每秒3.39亿亿次双精度浮点运算的优异性能位居榜首。
从TOP500 的前10 名来看,美国仍然是超级计算机的最大拥有者。按照世界TOP500 的统计数据来分析,美国在计算能力上占有近全世界的一半,在TOP500 中的所有计算机中拥有的数量超过50%。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net