并行算法综述

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

并行算法综述

摘要:本文主要对并行算法的概念、设计等进行综述。首先概要的介绍有关并行算法的相关概念,接着详细的介绍并行算法的设计策略、设计方法等,最后对并行算法的前景做简单的分析讨论,并做总结。

关键词:并行算法;算法设计;设计策略;设计方法

中图分类号:tp393

随着计算机时代的到来,计算机的应用和开发主要延伸到社会的各个领域,无论是国家的经济科技还是生活教育等,都能看到计算机的身影。而高性能计算机的研究和开发更能直接体现出一个国家的经济科技水平,同时由于信息化国防建设也使得高性能计算机成为国防安全的宠儿。世界各国都在努力争夺高性能计算机的战略制高点,这也充分说明高性能计算机对于一个国家科技实力的重要性。计算机的发展迅速,从最初的电子管到现在大规模继承电路技术的应用,计算机的运算速度更快,功能也更加强大。当然,其关键因素就是并行算法,并行算法直接决定着计算机性能的高低,同时并行算法的发展程度也相当明显的显示出国家计算机科技水平的发达程度,是国家综合国力的一个体现。

1 并行算法

1.1 国内外研究现状

并行算法研究的高峰期在70、80年代。这一时期,涌现除了很多优秀的非数值并行算法,它们在整个并行算法研究历史上占据着

非常辉煌的一页。90年代中期以后,并行算法的研究渐渐面向实际,内容也有所扩展。

近年来,并行算法的研究更是趋于实际应用中。比如:一种基于局部小型分布式存储架构的大规模fock矩阵建设的新的并行算法:rt并行算法;基于共享内存架构的节能性能权衡分析并行算法;在多核心cpu与gpu中基于块三角矩阵求解线性系统的并行算法;同构新的并行划分方法和巨人矩阵转置并行算法,等等。图像匹配的并行算法;面向异构体系结构的粒子输运并行算法;海量数据拟合并行算法;基于gpu的高性能并行算法;遥感数字影像中提取植被指数的并行算法;fermi架构下超声成像组织运动可视化并行算法;分布式水文模型的并行计算;声纳图像对比度增强的并行算法;大规模稀疏矩阵特征问题求解的并行算法;分布动载荷识别的并行算法,等等。

1.2 并行算法

并行算法就是通过多台处理器对于一些可同时执行的问题联合

求解的方法和步骤。其特点是各个子问题相对独立。并行算法是计算机设计相对复杂的技术之一,虽然算并行法的设计是复杂的,但并不是无迹可寻。随着计算机的普及和应用,技巧也被后来的人掌握并总结为最基本的设计基础。

并行算法可从不同的角度分类成数值计算和非数组计算的并行

算法;同步的、异步的和分布式的并行算法;共享存储的和分布存储的并行算法;确定的和随机的并行算法等等。

1.2.1 并行算法的设计策略

并行算法的设计策略主要有:并行算法的直接并行化、从问题描述开始设计并行算法、借用已有算法求解新问题。具体描述如下:的并行计算方法之一,它的基本操作是将现有的串行算法进行对串行代码进行发

串行算法直接并行化是现在最常用掘和利用,并合并化处理的过程。当然并不是所有的程序都适合串行算法直接合并化。

从问题描述开始设计并行算法,即从问题本身描述出发,不考虑相应的串行算法,设计一个全新的并行算法。设计方法:挖掘问题的固有特性与并行的关系。设计全新的并行算法是一份具有挑战性和创造性的工作,利用串的周期性的pram-crcw算法是一个很好的范例。

借用已有算法求解新问题,就是找出求解问题和某个已解决问题之间的联系,改造或利用已知算法应用到求解问题上。这是一项创造性的工作,使用矩阵乘法算法求解所有点对间最短路径是一个很好的范例。

1.2.2 并行算法的基本设计技术

目前为止,并行算法的设计技术主要有:划分设计技术、分治设计技术、平衡树设计技术、倍增设计技术、流水线设计技术。其中划分设计技术又可分为均匀划分技术、方根划分技术、对数划分技术、功能划分技术。具体描述如下:

划分设计技术:

(1)均匀划分技术,划分方法,将n个元素a[1…n]分成p组,每组a[(i-1)n/p+1…in/p],i=1…p;

(2)方根划分技术,划分方法,n个元素a[1…n]分成a[(i-1)n+1…in],i=1…n;

(3)对数划分技术,划分方法,n个元素a[1…n]分成a[(i-1)logn+1…ilogn],i=1…n/logn;

(4)功能划分技术,划分方法,n个元素a[1…n]分成等长的p 组,每组满足某种特性。

分治设计技术,设计步骤如下:将输入划分成若干个规模相等的子问题,同时(并行地)递归求解这些子问题,并行地归并子问题的解,直至得到原问题的解。

平衡树设计技术,设计思想为:以树的叶结点为输入,中间结点为处理结点,由叶向根或由根向叶逐层进行并行处理。

倍增设计技术,设计思想为:以树的叶结点为输入,中间结点为处理结点,由叶向根或由根向叶逐层进行并行处理。

流水线设计技术,设计思想:将算法流程划分成p个前后衔接的任务片断,每个任务片断的输出作为下一个任务片断的输入,所有任务片断按同样的速率产生出结果。

1.2.3 并行算法的一般设计过程

pcam(partitioningcommunicationagglomerationmapping)设计方法学,它代表了并行算法设计的四个阶段:

(1)划分就是通过编译技术通过计算将计算机的任务进行分解,

以便达到最佳的计算和数据分布形式,其目的是尽可能地合理分配给各处理器进行开拓和执行任务的机会。划分方法分为两个步骤,第一是对数据进行分解,也称域分解,通过对计算机的数据分解之后开始对计算机的功能进行分解。将数据集和计算集分离。

(2)通信。通过对数据的划分,确认任务执行的数据交换以及协调执行任务,通过进一步的检测来进一步检测划分的合理性。通讯也是pcam设计过程中的最重要的环节之一,他能够促进划分环节中的任务之间的数据交流,解决划分环节不能完全独立执行的问题,并通过交流限制功能划分的数据并发执行。

(3)组合是提高性能和减少通信开销的重要方法之一,也是对于前两个阶段的性能要求和代价的实现结果进行的重要考察,以便确认是否将任务组合成更大的任务量。组合是对任务量的优化,也是一个从抽象到具体的过程,通过在并行机上的有效执行,合并较小的任务量,以便达到减少任务数的目的。通过一系列组合,达到增加任务的粒度和重复计算,可以减少通讯成本。

(4)映射。通过执行、通信和组合,计算机的并行计算的任务数已经达到了一种相对合理的程度,这时将计算机的任务合理地分配给相应的处理器,缩短执行时间,提高相应处理器的执行效率和利用效率,从而达到进一步节约通讯成本的目的。其具体方法是将每一个经过优化的任务映射到相对应的具体的处理器。通过对相应处理器的定位和运行,进行计算和处理。如果其任务数大于处理器的数目时,则需要对处理器的负载和任务调度进行平衡和调整。映

相关文档
最新文档