并行算法设计.ppt
《并行算法设计.ppt》由会员分享,可在线阅读,更多相关《并行算法设计.ppt(96页珍藏版)》请在三一办公上搜索。
1、,并行算法设计,主要内容,基本知识及现状并行计算性能评测并行算法的一般设计方法并行算法的基本设计技术并行算法的一般设计过程例子,现代计算机的共同特点:并行性,现代计算机的共同特点:并行性,并行:古老的思想!,“.并行计算并不是什么新的思想,只是将它扩展应用于计算机而已.作者也不认为这种扩展应用会存在什么无法克服的困难.但也不要期待有效的并行编程方法与技术能够在一夜之间诞生.期间还需要有许多的工作和实验要做.毕竟,今天的编程技术(串行)是若干年来艰苦的探索才取得的.现在编程工作似乎成了一种令人单调乏味的工作,事实上,并行编程的出现将会使重新恢复编程工作者们的探索精神.”(Gill,S.(1958
2、),“Parallel Programming,”The Computer Journal,vol.1,April,pp.2-10.),Parallel Programming with MPIby Peter Pacheco(2000),综述为什么要做并行计算,从系统的角度:集成系统资源,以满足不断增长的对性能和功能的要求从应用的角度:适当分解应用,以实现更大规模或更细致的计算,并行计算的功能?,降低单个问题求解的时间.增加问题求解规模.提高吞吐率(多机同时执行多个串行程序).,并行计算?,资料来源:Tim Mattson Intel Co.Com.Science Lab.Rudolf Ei
3、genmann Purdue Uni.School of Elec.and Comp.Eng.,分而治之!,并行计算现状(硬件),共享内存SMP并行计算机对称多处理器或共享内存处理器多个处理器通过系统总线或者交叉开关共享一个或者多个内存模块优点:使用简单,维护方便缺点:受系统总线带宽限制,只能支持少量处理器(十几个)并行编程方式:通常OpenMP,也可用消息传递(PVM/MPI)及HPF代表机型:SGI PowerChanlenge;SUN E10000等,并行计算现状(硬件),分布内存MPP型计算机Massively Paralleled Processors的简称指由大量具有局部内存的计算
4、节点通过高速系统网络连接而成的并行处理系统MPP系统的系统网络通常具有某种拓扑结构(Tree,Mesh,Torus,Hypercuber),并行计算现状(硬件),DSM型并行计算机分布共享内:Distributed Shared Memory多个物理上具有独立内存的处理单元,通过高速网络连接在一起逻辑上作为共享内存并行机使用不同处理单元间内存的共享通过特殊的硬件/软件实现具有比SMP型计算机更好的可扩展性(超过100个CPU)代表机型:SGI Origina 2000/3000,并行计算现状(硬件),SMP/DSM机群多台SMP型/DSM型并行机通过互联网络连接而成目前国内外最高性能的并行机大
5、多是这种结构,并行计算现状(硬件),微机/工作站机群微机机群(PC cluster,又称Beowulf Cluster),工作站机群(NOW,Network of Workstations):将联网的多台微机/工作站组织诚意台并行机。适用于中等规模的并行系统,(数百个处理器)根据机群中使用的机型分为同构型和议购型两种根据使用方式可分为专用型和兼用型,前者指专门用于并行计算。价格便宜、配置灵活,但规模及并行效率收网络设备的制约,配以适当的系统工具可以达到MPP的以适当的系统工具可以达到MPP的使用效果,并行计算现状(软件),:“并行软件开发远远落后于并行系统体系结构的发展.”:“与串行软件相比,
6、并行软件数量少,功能原始.”-悲观者,并行计算现状,:编程环境落后的并行编译器,调试器 vs.通用先进的串行编程环境.自动并行编译器远远满足不了程序并行化的要求.:算法并行模型的多样化 vs.串行编程中的唯一模型:冯.诺依曼模型对串行机而言,解法=唯一串行算法+计算程序(通用)对并行机而言,解法=某种并行算法+有针对性的计算程序(很难通用):人稀少而初级的并行编程人员 vs.成熟而经验丰富的串行程序员,并行计算现状,:“并行编程正处理蓬勃发展时期,机遇与挑战并存.”-乐观者,并行计算现状(并行编程模式),自动并行与手工并行在SMP/DSM并行机上编译系统通常具有一定的对用户程序进行自动并行化的
7、能力但需人工干预(制导语句,命令行选项),针对循环(细粒度)并行分布式内存并行机上不具备,需人工编写并行程序并行算法的设计和并行程序的编制成为大规模并行机应用的主要障碍。,并行计算现状(并行编程模式),OpenMP:串行程序的循环语句前插入特定的制导语句,告知编译系统一些有助于对其进行并行的信息,以及/或是强制编译系统按照指定的方式将其并行化主要是SMP/DSM,某些MPP也开始发展结合编译系统的自动并行化功能使用某些自动化工具,可对程序结构及数据流分析,自动插入适当的OpenMP语句优点:简单,不需对原算法/程序作大的改动,缺点:只适合某些机型,且可扩展性不如消息传递对某些具有强数据相关的过
8、程需改变计算顺序,或修改算法,并行计算现状(并行编程模式),DSM编程模式建立在某种内存协议之上,通过软件或者软硬件结合的方式实现处理器间内存的共享通过要求DSM并行程序中对内存的读写遵循一定的要求来减小维护内存一致性的开销,并行计算现状(并行编程模式),高性能FORTRAN(HPF)基于数据并行的编程语言,用户通过指导语句指示编译系统将数据分布到各处理器上,并根据分布情况生成并行程序,针对Fortran90/95适合于SMP/DSM/MPP/Cluster系统优点:编程简单,串并行程序一致缺点:并行过程对用户透明度不高,性能编译系统和用户对编译系统的了解程度;不同的编译器需做不通的优化,影响
9、移植性,并行计算现状(并行编程模式),消息传递编程模式并行程序由一组独立的进程组成,相互通过发送消息实现数据交换并行应用程序开发的最底层编程方式之一,很多其他并行开发语言/工具将程序转化成消息传递类型实现。常用的平台:PVM(Parallel Virtue Machine)和MPI(Message Passing Interface)优点:通用性好,用PVM和MPI编写的程序可用于任何并行机;缺点:编制、调试困难,有时需对程序算法做大的改动,并行计算现状(并行编程模式),MPI+OpenMP用于SMP组成的机群系统,节点间一消息传递方式,节点内不同处理器之间通过共享内存并行可以充分利用计算资源
10、,并行算法的概念,并行算法:是一些可同时执行的诸进程的集合,这些进程相互作用和协调动作从而达到给定问题的求解。并行性条件 数据相关性:流相关、反相关、输出相关相关性判别条件 输入集合I1,I2,输出集合U1,U2,I1U2=;I2U1=;U1U2=,并行算法的分类,数值并行算法:数值计算非数值并行算法:符号运算同步并行算法:向量算法、SIMD、MIMD同步异步并行算法:不需相互等待独立并行算法:进程间完全独立细粒度并行算法:基于向量和循环系级并行中粒度并行算法:较大的循环级并行大粒度并行算法:任务级并行(区域分解),多线程库标准 Win32 API.POSIX threads.编译制导标准 O
11、penMP 可移植共享存储并行编程标准.消息传递库标准 MPI PVM,并行编程标准,并行算法的发展,基于向量运算的并行算法设计阶段基于多向量处理机的并行算法设计阶段SIMD类并行机上的算法设计阶段MIMD类并行机上的并行算法设计阶段现代并行算法设计以MIMD为主,要求可扩展性、可移植性,并行软件程序员的工作,指令层,非常细的粒度数据层,细粒度控制层,中粒度任务层,大粒度 前两层大都由硬件和编译器负责处理,程序员通常处理后两层的并行,并行计算性能评测,机器的峰值速度用户能得到的实际速度Benchmark top500 LINPACK www.top500.org加速比、效率可扩展性:体系结构、
12、软件、算法性能依赖因素:算法设计:并行性、计算量 程序设计:体系结构特点的利用(通信、存储、cache)、负载平衡、并行粒度,并行计算性能评测,加速比性能定律p/logp 1/fGustafson定律:时间不变,提高规模(精度)S=f+p(1-f)=p+f(1-p)=p-f(p-1)Sun和Ni定律:存储受限的加速定律S=(f+(1-f)G(p)/(f+(1-f)G(p)/p)G(p)=1:Amdahl;G(p)=p,Gustafson,并行计算性能评测,可扩放性评测标准(目的)确定某类问题用哪种并行算法与哪种并行体系结构结合,可以有效地利用大量处理器;运行于某种体系结构的并行机上的某种算法,
13、根据在小规模机器上的运行性能,预测在大规模机器上的性能对固定的问题规模,确定最有的处理机数和加速比指导改进算法、体系结构,以利用可扩充的大量处理器,并行计算性能评测,可扩放性评测标准:等效率度量标准:随着系统规模的增加,测量增加多少运算量会保持效率不变。E=s/p等速度度量标准:系统规模增加时,若保持速度不变,每个处理器增加浮点操作的量V=Wp/pTp等计算时间/通信开销比率度量标准:系统规模增加时,保持计/通比不变所需要增加的问题规模。计算时间/通信开销比率:并行计算时间与系统开销之比。,并行计算性能评测,基准测试程序:测试计算机系统的性能综合型核心型数学库应用型并行型,并行计算模型,什么是
14、并行计算模型?将并行计算机的基本特征抽象出来,形成一个抽象的计算模型,作为并行算法分析、设计、性能预测的基础。,编程模型计算模型体系结构模型机器模型,用户,系统,并行计算模型,PRAM模型(Parallel Random Access MAchine),并行速记存取机器,也叫共享存储的SIMD模型,一种抽象的并行计算模型容量无限大的共享存储器有限/无限个功能相同的处理器,具有简单的算术运算和逻辑判断功能;任何时刻各处理器均可以通过共享内存交换数据,并行计算模型,PRAM模型:优点:适合于并行算法的表达,分析和比较;使用简单处理器间通信、存储管理和进程同步等细节均隐含于模型中;易于设计算法,且稍
15、加修改即可运行于不同的处理机缺点:同步模型,不能反映现实中许多系统的异步性;假设每个处理器可在单位时间访问共享存储器的任一单元,忽略了存取竞争和有限带宽等是不现实的;假设处理机有限或无限,对并行任务的增大不加限制。,并行计算模型,BSP(Bulk Synchronous Parallel)模型处理器/存储器模块,(简称处理器)p处理器间点对点消息传递的选路器,g执行以时间间隔L为周期的路障同步器L计算由一系列用全局同步分开的周期为L的超步(Superstep)组成。在各步中,各处理器均执行局部计算,并通过选路器接收和发送信息;然后做全局检查,确定该步是否已由所有处理器完成:是进入下一超步;否则
16、,下一个L周期分配给为完成的超步。,并行计算模型,BSP模型特点:处理器与选路器分开,选路器只有点对点的消息传递路障方式实现的同步在粗粒度,提供了执行紧耦合同步式算法的有效方式假定局部操作在一个时间步完成,每一超步中,每一处理器至多传送或接收有限条信息每个PRAM模型所设计的算法,均可在每个BSP处理器上模拟一些PRAM处理器的方法实现。,并行计算模型,logP模型:分布存储的,点到点通信的多处理机模型,通信网络由一组参数来描述,不涉及具体的网络结构,也不假定算法一定用显示的消息传递操作描述。L(Latency):网络中消息从源到目的地所遭到的延迟。O(Overhead):发送/接收一条消息所
17、需的额外开销。G(Gap):处理器可以连续进行消息发送/接收的最小时间间隔。处理器通信带宽的倒数P(Processor):处理器/存储器模块数。L,g:反映网络的容量。L,o,g均可表示为处理器周期的整数倍,并行计算模型,logP模型的特点表述了分布存储并行机的性能瓶颈。隐藏了网络的拓扑结构无需说明编程风格或通信协议,可用于共享存储、消息传递和数据并行。如果g=0;L=0;o=0,logP 等同于PRAM,同时也是BSP的改进和细化,并行计算模型,C3模型:(Computation,Communication,Congestion)p处理器数,l信包的长度,s执行发送的建立时间;h表示延迟与体
18、系结构无关的粗粒度并行计算模型,旨在反映计算复杂度,通信模式和通信期间潜在的拥挤等因素对粗粒度网络算法的影响考虑了网络链路拥挤和处理器拥挤对并行算法的影响,并行计算模型,L:通信延迟时间o:CPU准备发送或接收开销g:CPU连续发送或接收的最小时间间隔,倒数为处理机的通信带宽P:处理机个数,并行计算模型,BSP和LogP的相互比较:本质等价,可互相模拟,BSP模拟LogP进行的计算,慢常数倍,反之慢对数倍BSP为算法和程序提供了更多的方便,LogP提供了较好的机器资源的控制BSP在结构化编程风格方面的优点大于精确度方面的损失,并行计算模型,并行化方法,分而治之模型并行、算法并行、程序并行自然并
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 算法 设计
链接地址:https://www.31ppt.com/p-2419882.html