![并行编程综述课件_第1页](http://file4.renrendoc.com/view12/M0B/0C/10/wKhkGWbe6rqAD07TAAJOu8tTnXQ166.jpg)
![并行编程综述课件_第2页](http://file4.renrendoc.com/view12/M0B/0C/10/wKhkGWbe6rqAD07TAAJOu8tTnXQ1662.jpg)
![并行编程综述课件_第3页](http://file4.renrendoc.com/view12/M0B/0C/10/wKhkGWbe6rqAD07TAAJOu8tTnXQ1663.jpg)
![并行编程综述课件_第4页](http://file4.renrendoc.com/view12/M0B/0C/10/wKhkGWbe6rqAD07TAAJOu8tTnXQ1664.jpg)
![并行编程综述课件_第5页](http://file4.renrendoc.com/view12/M0B/0C/10/wKhkGWbe6rqAD07TAAJOu8tTnXQ1665.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
并行编程综述并行编程处于令人遗憾的状况:并行软件开发远落后于并行硬件的进展。缺少合适的并行软件是阻碍主流用户接纳并行计算的主要原因。与顺序计算相比,当今的并行系统软件和应用软件不仅数量很少,而且功能性也相当原始。隧道之末总有阳光。一、并行编程缘何艰难在并行编程中有许多不同的模型。是一个更复杂的智力活动。并行程序的编译器、调试程序、以及特征分析器(profiler)要比串行程序落后得多。1.顺序编程长期以来已建立了许多算法范例一些实现指导用户从事算法设计。2.并行编程
并行编程处于初级阶段;对于并行问题的应用,不太可能有一个现成的并行代码;并行代码的机器不同。并行编程也不支持成熟、通用和稳定的工具;并行算法范例仍未能被很好地理解或被广泛地接受;不存在单一、通用的机器模型;并行编程的模型有两级,而在每一级上又有许多不同模型。与顺序语言在编程或自然模型级上缺少代可扩展和异构可扩展的能力这些并行语言大多数在当前系统上使用的并行语言均是Fortran或C的某种扩展。一个编程模型即是程序员在开发一个并行程序时所见到和使用的模型。一个自然模型是由一个特定并行计算机平台所提供的、用户可见的最低层的编程模型。其他的编程模型可在此自然模型上加以实现。例如,在一个SGIPowerChallenge计算机上(它是SMP),自然模型为共享变量模型(如SGIPowerC)。数据并行(如HPF)和消息传送(如MPl)可在其顶部实现。3.并行编程进展尽管以上的回顾较为悲观,但在并行编程领域已有了许多进步:已开发了许多并行算法。尽管大多数算法基于非现实的PRAM模型,但其中某些在作适当修正后可以实用。已涌现一小批简单的并行算法范例,且已逐步为用户所接受。自然模型正集中趋向于两种模型:适用于PVP、SMP和DSM的单地址空间的共享变量模型;适用于MPP和机群的多地址空间的消息传递模型。SIMD模型已从主流、通用并行计算机淡出,但对于如同语言、图象和多媒体处理的专用嵌入式应用仍非常有用。高层并行编程模型
趋向于3种标准模型:数据并行(如HPF)、消息传递(如HPVM和MPl)共享变量(如HANSIX3H5)。此外还有一种模型----串转并;用户只需编写顺序程序,其中的蕴式并行性由并行化编译器(如Kap)进行析取。4.吞吐率处理在一个问题的处理上,并行少,串行多。增加多个独立顺序作业的系统吞吐率。顺序程序并行系统(SPPS)模型,也称为吞吐率处理。二、并行编程环境1.一个典型的并行处理系统如图所示的结构无论是算法还是源代码均需显式地并行化。编译器将源代码翻译成二进制代码在并行平台上运行,该平台包含操作系统和在它之下的并行计算机硬件。任何编程语言均有运行时间支持系统,它是与用户代码连接程序。2.环境工具
一个环境工具是指任何硬件和软件的实用程序,以帮助用户程序的开发和执行。编程环境(或简称环境):所有这类工具集合。工具的实例包括操作系统实用程序、程序设计语言、编译器以及运行时间库等。
环境工具是那些通常与操作系统或程序设计语言无关的工具集。环境工具包括以下类型:作业管理工具包括网络排队系统(NQS)和负载共享工具(LSF)。调试工具性能工具它们用来监控用户应用程序以识别性能瓶颈之所在。三、并行编程方法
目前在实际的并行计算机中广泛使用的并行编程模型有4种:蕴式;数据并行;消息传递;共享变量。有三种扩展方法:库子程序、新语言构造以及编译器命令。库子程序除了在顺序语言中可用的标准库外,加入一组新的库函数,以支持并行化和交互操作。这种库的实例包括MPI消息传递以及POSIXPthreads多线程库。新构造扩展程序设计语言使其具有某些新构造,以支持并行化和交互。例如Fortran90中密集数据操作。编译器命令程序设计语言不变,但加入称为编译器命令(或pragmas)的格式化注解。示例:用一段简单代码来说明这些方法。所有3个并行程序均执行相同的如图所示的串行C代码的计算。串行代码段for(i=0;i<N;i++)A[i]=b[i]*b[i+1];for(i=0;i<N;i++)c[i]=A[i]+A[i+1];使用库例程的等效并行代码id=my_process_id();p=numberofprocesses();for(i=id;i<N;i=i+p)A[i]=b[i]*b[i+1];barrier();for(i=id;i<N;i=i+p)c[i]=A[i]+A[i+1];串行代码段for(i=0;i<N;i++)A[i]=b[i]*b[i+1];for(i=0;i<N;i++)c[i]=A[i]+A[i+1];Fortran90中使用数组操作的等效代码my-processid(),number_of_processes(),andbarrier()A(0:N-1)=b(0:N-1)*b(1:N)c=A(0:N-1)+A(1:N)串行代码段for(i=0;i<N;i++)A[i]=b[i]*b[i+1];for(i=0;i<N;i++)c[i]=A[i]+A[i+1];SGIpowerC中使用pragma的等效代码#pragmaparallel#pragmashared(A,b,c)#pragmalocal(i){#pragma
pforiterate(i=0;N:1)
for(i=0;i<N;i++)#pragmasynchronize#pragma
pforiterate(i=0;N:1)
for(i=0;i<N;i++)c[i]=A[i]+A[i+1];}三种方法的比较:可用3种方法实现任何编程模型在任何并行平台上,3种方法和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新型流动人卫激光测距仪合作协议书
- 2025年羟乙基乙二胺合作协议书
- 2025年中高档数控机床合作协议书
- 人教版 七年级英语下册 UNIT 8 单元综合测试卷(2025年春)
- 2021-2022学年河南省南阳市唐河县七年级(上)期中地理试卷-附答案详解
- 中国古代文学史1考试试题及答案
- 2025年个人签订合同委托(2篇)
- 2025年个人门面房屋租赁合同经典版(三篇)
- 2025年产品维护服务合同机器或程序(2篇)
- 2025年个人车位出租协议经典版(三篇)
- DZ∕T 0080-2010 煤炭地球物理测井规范(正式版)
- 小学生心理健康教育学情分析
- 2024年高考语文一轮复习:文言文文意概括简答题知识清单 (二)
- 超级大脑:孩子六维能力培养指南
- 纵隔肿物的护理查房
- 新能源汽车概论题库
- 设备维保的维修成本和维护费用
- 客运站员工安全生产教育培训
- 口腔预防儿童宣教
- 绿城桃李春风推广方案
- 颅脑损伤的生物标志物
评论
0/150
提交评论