电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

中国科技大学并行计算课件12并行程序设计基础

  • 资源ID:269980698       资源大小:203KB        全文页数:45页
  • 资源格式: PPT        下载积分:5金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要5金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

中国科技大学并行计算课件12并行程序设计基础

十二、并行程序设计基础Date1H.An Copyright Parallel Programming并行程序设计基础 12.1 并行程序设计概述 12.2 进程 12.3 线程 12.4 同步 12.5 通信 12.6 并行程序设计模型Date2H.An Copyright Parallel Programming并行程序设计概述 并行程序设计难的原因 并行语言的构造方法 并行性问题 交互/通信问题 五种并行编程风范 计算圆周率的样本程序Date3H.An Copyright Parallel Programming1 并行程序设计难的原因v 技术先行,缺乏理论指导v 程序的语法/语义复杂, 需要用户自已处理 任务/数据的划分/分配 数据交换 同步和互斥 性能平衡v 并行语言缺乏代可扩展和异构可扩展, 程序移植困难, 重写代码难度太大v 环境和工具缺乏较长的生长期, 缺乏代可扩展和异构可扩展Date4H.An Copyright Parallel Programming2 并行语言的构造方法串行代码段for ( i= 0; iN; i+ ) Ai=bi*bi+1;for (i= 0; iN; i+) ci=Ai+Ai+1;(a) 使用库例程构造并行程序id=my_process_id();p=number_of_processes();for ( i= id; iN; i=i+p) Ai=bi*bi+1;barrier();for (i= id; iN; i=i+p) ci=Ai+Ai+1;例子: MPI,PVM, Pthreads(b) 扩展串行语言my_process_id,number_of_processes(), and barrier()A(0:N-1)=b(0:N-1)*b(1:N)c=A(0:N-1)+A(1:N)例子: Fortran 90(c) 加编译注释构造并行程序的方法#pragma parallel#pragma shared(A,b,c)#pragma local(i) # pragma pfor iterate(i=0;N;1)for (i=0;iN;i+) Ai=bi*bi+1;# pragma synchronize# pragma pfor iterate (i=0; N; 1)for (i=0;iN;i+)ci=Ai+Ai+1;例子:SGI power C Date5H.An Copyright Parallel Programming三种并行语言构造方法比较2 并行语言的构造方法Date6H.An Copyright Parallel Programming3 并行性问题3.1 进程的同构性vSIMD: 所有进程在同一时间执行相同的指令vMIMD:各个进程在同一时间可以执行不同的指令 SPMD: 各个进程是同构的,多个进程对不同的数据执行相同的代码(一般是数据并行的同义语)常对应并行循环,数据并行结构,单代码 MPMD:各个进程是异构的, 多个进程执行不同的代码(一般是任务并行,或功能并行,或控制并行的同义语)常对应并行块,多代码 要为有1000个处理器的计算机编写一个完全异构的并行程序是很困难的Date7H.An Copyright Parallel Programming并行块parbegin S1 S2 S3 .Sn parendS1 S2 S3 .Sn可以是不同的代码并行循环: 当并行块中所有进程共享相同代码时parbegin S1 S2 S3 .Sn parend S1 S2 S3 .Sn是相同代码简化为parfor (i=1; i=n, i+) S(i)进程的同构性3 并行性问题Date8H.An Copyright Parallel Programming用单代码方法说明SPMD要说明以下SPMD程序:parfor (i=0; i=N, i+) foo(i)用户需写一个以下程序:pid=my_process_id();numproc=number_of _processes();parfor (i=pid; i=N, i=i+numproc) foo(i)此程序经编译后生成可执行程序A, 用shell脚本将它加载到N个处理结点上:run A numnodes NSPMD程序的构造方法用数据并行程序的构造方法要说明以下SPMD程序:parfor (i=0; i=N, i+) Ci=Ai+Bi;用户可用一条数据赋值语句:C=A+B或forall (i=1,N) Ci=Ai+Bi进程的同构性3 并行性问题Date9H.An Copyright Parallel Programming用SPMD伪造MPMD要说明以下MPMD程序:parbegin S1 S2 S3 parend 可以用以下SPMD程序:parfor (i=0; i0) beginfork (foo(C);C:=boo(C);end3 并行性问题静态并行性: 程序的结构以及进程的个数在运行之前(如编译时, 连接时或加载时)就可确定, 就认为该程序具有静态并行性. 动态并行性: 否则就认为该程序具有动态并行性. 即意味着进程要在运行时创建和终止Date11H.An Copyright Parallel ProgrammingProcess A:begin Z:=1fork(B);T:=foo(3);endProcess B:begin fork(C);X:=foo(Z);join(C);output(X+Y);endProcess C:begin Y:=foo(Z);end开发动态并行性的一般方法: Fork/Join静态和动态并行性3 并行性问题Fork: 派生一个子进程Join: 强制父进程等待子进程Date12H.An Copyright Parallel Programming3.3 进程编组目的:支持进程间的交互,常把需要交互的进程调度在同一组中一个进程组成员由:组标识符+ 成员序号 唯一确定.3.4 划分与分配原则: 使系统大部分时间忙于计算, 而不是闲置或忙于交互; 同时不牺牲并行性(度).划分: 切割数据和工作负载分配:将划分好的数据和工作负载映射到计算结点(处理器)上分配方式显式分配: 由用户指定数据和负载如何加载隐式分配:由编译器和运行时支持系统决定就近分配原则:进程所需的数据靠近使用它的进程代码3 并行性问题Date13H.An Copyright Parallel Programming并行度(Degree of Parallelism, DOP):同时执行的分进程数. 并行粒度(Granularity): 两次并行或交互操作之间所执行的计算负载. 指令级并行 块级并行 进程级并行 任务级并行并行度与并行粒度大小常互为倒数: 增大粒度会减小并行度. 增加并行度会增加系统(同步)开销 3 并行性问题Date14H.An Copyright Parallel Programming4 交互通信问题交互:进程间的相互影响4.1 交互的类型v通信:两个或多个进程间传送数的操作 通信方式: 共享变量 父进程传给子进程(参数传递方式) 消息传递 Date15H.An Copyright Parallel Programmingv同步:导致进程间相互等待或继续执行的操作 同步方式: 原子同步 控制同步(路障,临界区) 数据同步(锁,条件临界区,监控程序,事件)例子:原子同步parfor (i:=1; in; i+) atomicx:=x+1; y:=y-1路障同步parfor(i:=1; in; i+)Pi barrierQi 临界区parfor(i:=1; in; i+)criticalx:=x+1; y:=y+1数据同步(信号量同步)parfor(i:=1; in; i+)lock(S); x:=x+1; y:=y-1; unlock(S)4 交互通信问题Date16H.An Copyright Parallel Programmingv聚集(aggregation):用一串超步将各分进程计算所得的部分结果合并为一个完整的结果, 每个超步包含一个短的计算和一个简单的通信或/和同步.聚集方式: 归约 扫描交互的类型4 交互通信问题例子: 计算两个向量的内积parfor(i:=1; in; i+)Xi:=Ai*Biinner_product:=aggregate_sum(Xi);Date17H.An Copyright Parallel Programming4.2 交互的方式4 交互通信问题 交互代码 C P1P2Pn相对于交互代码C,可对进程P定义如下状态: 到达(arrived): P刚到达C,但还未进入 在内(in): P在代码中 完成(finished):P刚完成执行代码C,但还未离开 在外(out): P不在代码中(未到达或已离开)同步的交互: 所有参与者同时到达并执行交互代码C异步的交互: 进程到达C后, 不必等待其它进程到达即可执行CDate18H.An Copyright Parallel Programming交互方式与入口/出口条件的组合4 交互通信问题锁定的发送: 消息已发完, 但不一定已收到锁定的接收: 消息已收到非锁定的发/收: 只是发出发/收的请求Date19H.An Copyright Parallel Programming4.3 交互的模式按交互模式是否能在编译时确定分为: 静态的 动态的按有多少发送者和接收者参与通信分为 一对一:点到点(point to point) 一对多:广播(broadcast),播撒(scatter) 多对一:收集(gather), 归约(reduce) 多对多:全交换(Tatal Exchange), 扫描(scan) , 置换/移位(permutation/shift)4 交互通信问题Date20H.An Copyright Parallel Programming1 3 5 P1P2P31 3 5,1 P1P2P31 3 5 P1P2P31,1 3,1 5,1 P1P2P31,3,5 P1P2P31,3,5 3 5 P1P2P31 3 5 P1P2P31,3,5 3 5 P1P2P3(a) 点对点(一对一): P1发送一个值给P3(b) 广播(一对多): P1发送一个值给全体 (c) 播撒(一对多): P1向每个结点发送一个值(d) 收集(多对一): P1从每个结点接收一个值4 交互通信问题Date21H.An Copyright Parallel Programming1 3 5 P1P2P31,5 3,1 5,3 P1P2P31,2,3 4,5,6 7,8,9 P1P2P31,4,7 2,5,8 3,6,9 P1P2P31 3 5 P1P2P31,1 3,4 5,9 P1P2P31 3 5 P1P2P31,9 3 5 P1P2P3(e) 全交换(多对多): 每个结点向每个结点发送一个不同的消息(f) 移位(置换, 多对多): 每个结点向下一个结点发送一个值并接收来自上一个结点的一个值.(g) 归约(多对一): P1得到和1+3+5=9(h) 扫描(多对多): P1得到1, P2得到1+3=4, P3得到1+3+5=94 交互通信问题Date22H.An Copyright Parallel Programming 相并行(Phase Parallel) 分治并行(Divide and Conquer Parallel) 流水线并行(Pipeline Parallel) 主从并行(Master-Slave Parallel) 工作池并行(Work Pool Parallel)5 五种并行编程风范Date23H.An Copyright Parallel Programming相并行(Phase Parallel) 一组超级步(相) 步内各自计算 步间通信、同步 BSP(4.2.3) 方便差错和性能分析 计算和通信不能重

注意事项

本文(中国科技大学并行计算课件12并行程序设计基础)为本站会员(东***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.