- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行计算与多核程序设计理论课7-8 多核对线程的支持 陈天洲,施青松,胡威 {tzchen, zjsqs, ehu}@ 2009年12月4日,玉泉校区曹西101 Agenda 多线程在多核上的加速能力 多线程对单线程的修改 加速多线程程序 处理器对多线程的硬件支持 多核存储管理对多线程的影响 核间通讯对多线程的影响 超线程对多线程的影响 多线程程序对硬件平台选型 多核多线程程序 线程化的优点 创建速度较进程快 资源利用率高 便于数据共享 线程化的缺点 增加程序设计的复杂性 程序调试较难 数据竞争、同步、死锁 多线程的执行 硬件多线程 每个线程运行在不同逻辑处理器上 优先级相同 硬件的通信开销 真正的并行执行 软件多线程 运行在同一个逻辑处理器上 OS动态改变优先级 共享本地存储器 通信开销小 互斥容易解决 数据流程图 对于数组运算 E = A*(B+C*D); 其中,A、B、C和D都是具有n个元素的数组 案例 1个计算任务在单个核的计算机上运行的启动时间为1秒,运算时间为10秒,数据结果汇总的时间为1秒。如果将该计算任务放在多核处理器的计算机上运行,将运算部分分解成多个线程并行执行。 (1)假如任务的启动和数据汇总操作不能并行执行,运算部分可以进行任意的任务分解,任务之间的通信量可以忽略,也不考虑任务分解后存储系统对性能的影响。问在处理器核的数量分别为2、4、8、16时的任务执行时间和加速比。 (2)上述情况下,假如每两个处理器核之间的通信时间为0.1秒,每对处理器核的通信串行进行,问在核的数量分别为2、4、8、16时的任务执行时间和加速比。 解:(1) 任务在单个核的计算机上运行时间为12秒; 在双核计算机上的运行时间为1+10/2+1 = 7秒,加速比为12/7 = 1.71; 在4核计算机上的运行时间为1+10/4+1 = 4.5秒,加速比为12/4.5 = 2.67; 在8核计算机上的运行时间为1+10/8+1 = 3.25秒,加速比为12/3.25 = 3.69; 在16核计算机上的运行时间为1+10/16+1 = 2.63秒,加速比为12/2.63 = 4.56。 解:(2) 任务在单个核的计算机上没有通信时间,运行时间为12秒; 在双核计算机上的通信时间为1?0.1,运行时间为1+10/2+1+0.1 = 7.1秒,加速比为12/7.1 = 1.69; 在4核计算机上的通信时间为6?0.1=0.6,运行时间为1+10/4+1+0.6 = 5.1秒,加速比为12/5.1 = 2.35; 在8核计算机上的通信时间为28?0.1=2.8,运行时间为1+10/8+1+2.8 = 6.05秒,加速比为12/6.05 = 1.98; 在16核计算机上的通信时间为120?0.1=12,运行时间为1+10/16+1+12 = 14.63秒,加速比为12/14.63 = 0.82,即比单核计算机的计算时间更长。 解 Agenda 多线程在多核上的加速能力 多线程对单线程的修改 加速多线程程序 处理器对多线程的硬件支持 多核存储管理对多线程的影响 核间通讯对多线程的影响 超线程对多线程的影响 多线程程序对硬件平台选型 多核程序员需要仔细加载多线程到多核上,以提高性能 需要优化代码,充分利用处理器资源 需要修改哪些内容? 1、存储缓存,解决伪共享问题 2、线程优先级 伪共享 伪共享, false share 多核处理器访问内存位置 包含所请求内存位置的一部分实际内存(缓存代码行)被复制到高速缓存中 将来可满足对同一内存位置(时间局部性)或其周围位置(空间局部性)的引用 直至系统决定有必要保持高速缓存和内存之间的一致性 单核会运行很好。 然而多核情况不同了 同时来自不同核的相同缓存代码行中的单个元素更新 会使整个缓存代码行无效,即使这些更新在逻辑上是彼此独立的 每次对缓存代码行的单个元素进行更新时,都会将此代码行标记为无效 其他访问同一代码行中不同元素的处理器将看到该代码行已标记为无效,即使所访问的元素未被修改,也会强制它们从内存或其他位置获取该代码行的较新副本 原因 基于缓存代码“行”保持缓存一致性,而不是针对“单个元素”的 后果 互连通信和开销方面都将有所增长 正在进行缓存代码行更新的时候,禁止访问该代码行中的元素 在出现以下所有情况时,伪共享会使性能下降 由多个处理器修改共享数据。 多个处理器更新同一缓存代码行中的数据。 这种更新发生的频率非常高(例如,在紧凑循环中) 注意,在循环中只读状态的共享数据不会导致伪共享 case study 当多进程程序操作同一个int型数组int a[100]时 如果进程0只访问a[0],进程1只访问a[1],进程2只访问a[2],... 每个进程不应该发生数据共享 因为一
您可能关注的文档
- (最新最全)2011年高考试卷+模拟新题分类汇编E 物质结构 元素周期律(高考真题+模拟新题).doc
- [.Mascot检索软件在蛋白质质谱鉴定中应用.pdf
- [NI技术] LabWindowCVI中多线程技术.docx
- [必修三]2010-2011学年度福州市第二学期期中高一模块考试.doc
- [名校联盟]浙江省建德市新安江高级中学2012届高三3月月考理科综合试卷(无答案).doc
- [上海]展览馆基坑围护及土方开挖施工方案.doc
- _杂交_与_桥联_以他克林衍生物为代表探讨开发多靶点抗阿尔茨海莫氏病药物新策略.pdf
- 《传统文化和文化传统》教案.doc
- 【全程学习方略】2011版高中生物 3.1 细胞膜——系统边界课件 新人教版必修1.ppt
- 2 型糖尿病胰岛素抵抗中医药的研究述评.doc
- 2009并行计算与多核程序设计09-10windows多线程编程.ppt
- 2009并行计算与多核程序设计13-14多核多线程研讨课.ppt
- 2009并行计算与多核程序设计15-16OpenMP程序设计.ppt
- 2009级毕业设计-基于双目图像分割区域匹配技术研究.doc
- 2010-2011学年辽宁省分重点中学高一下学期期末考试化学试卷.doc
- 2010生物高考复习《分子与细胞》专题系列课件04《细胞基本结构》.ppt
- 2011安徽省中学生生物学竞赛预赛试卷.doc
- 2011北京市宣武区第一学期期末质量检测九年级化学.doc
- 2011二级建造师考试.doc
- 2011高考第二轮热点专题训练6.doc
文档评论(0)