并行化程序设计方法.ppt_第1页
并行化程序设计方法.ppt_第2页
并行化程序设计方法.ppt_第3页
并行化程序设计方法.ppt_第4页
并行化程序设计方法.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 并行化程序设计方法,并发: 并发是指一个进程中的多个线程交替执行。 并发线程在单个处理器上运行。,多线程应用程序中的并发性,Thread 2,Thread 1,引言,并行: 并行是指多个线程同时执行。 并行线程能在多个处理器上执行。,多线程应用程序中的并行性,引言,1.并行化程序开发流程,第一部分,第二部分,第三部分,2.并行化程序设计,2.并行化程序设计,问题的可并行性 是否可以将问题划分为不同的功能模块分别完成 针对需要处理的数据是否可以划分为若干数据块同时操作 是否可以将一个复杂的过程划分为若干个子操作流水执行,2.并行化程序设计,相关性分析 确定必要的通信和同步机制; 分析这些

2、并行化可能会带来的额外的开销 开销是否是必要的? 是否是有价值的? 是否是可以承受的? 额外的开销可能包括程序本身的开销,也可能是经济,资源,人力等方面开销。,2.并行化程序设计,问题1:数据竞争 解决方法:临界区、互斥、同步。 临界区 互斥 同步 问题2:死锁 解决方法:先来先服务 举例说明。,2.并行化程序设计,问题分解 最常用的分解模式有任务分解,数据分解和数据流分解。 任务分解是将问题划分为多个功能模块分别由不同的线程去执行;举例。 数据分解是将待处理数据分成若干不同的数据块交由不同的线程去执行;举例。 数据流分解是将一个复杂的操作划分成若干个简单的子操作,数据在子操作间按照一定的顺序

3、依次计算。举例。,2.并行化程序设计,数据的求和累加; 下列程序如何并行: for(int i=0;i20;i+) for(int i=0;i40;i+) doSomething(); ,2.并行化程序设计,算法设计结构 任务分解采用各任务并行,分而治之的设计结构 数据分解依据对数据的处理过程采用几何分解,递归分解等设计结构 数据流分解采用流水线等设计结构。,3. 并行编程模型选择,显式模型 Win32 API POSIX线程库Pthreads 隐式模型 OpenMP TBB 可选其它编程模型:MPI,PVM 通过例子比较显示模型和隐式模型的区别。,3. 并行编程模型选择,Win32 API

4、线程的创建:createThread() 线程的终止:ExitThread() 线程的挂起与恢复:SuspendThread(), ResumeThread() 线程的等待:WaitForSingleObject() WaitForMultipleObjects() OpenMP 无需开发人员显式处理复杂的线程创建、同步、负载平衡、销毁等技术细节。,4. 性能调优,性能指标 加速比 效率 粒度 负载平衡,调优工具 Intel VTune Intel Thread Checker Intel Thread Profiler,加速比 Speedup = Serial Time / Parallel

5、 Time Amdahls 定律 Speedup = 1 / S+(1-S)/n +H(n) (强调并行比例),4. 性能调优,Painting a picket fence requires: 30 minutes of preparation (serial). One minute to paint a single picket(300 picket). 30 minutes to clean up (serial). 1、2、10、100 painters,Example: Painting a Picket Fence,4. 性能调优,Consider how speedup is computed for different numbers of painters:,4. 性能调优,效率: (Speedup / Number of Threads) * 100%. Consider how efficiency is computed with different numbers of painters:,4. 性能调优,粒度 粒度表示程序处理数据的规模 两种类型粒度 粗粒度 细粒度,Example: Field and Farmers,4. 性能调优,负载平衡 让每个处理核尽可能处于相同的繁忙程度 有效

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论