PPT多核体系结构与并行编程模型计算机科学导论第八讲.ppt
《PPT多核体系结构与并行编程模型计算机科学导论第八讲.ppt》由会员分享,可在线阅读,更多相关《PPT多核体系结构与并行编程模型计算机科学导论第八讲.ppt(51页珍藏版)》请在三一办公上搜索。
1、多核体系结构与并行编程模型计算机科学导论第八讲,计算机科学技术学院陈意云0551-63607043,http:/,狼辙翠胎稽橡晃售攀苫渝鳃怜曝榴兼厄补蒸池画矮壹机吉囱辗尼晓耕惮仁(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,课 程 内 容,课程内容围绕学科理论体系中的模型理论,程序理论和计算理论1.模型理论关心的问题 给定模型M,哪些问题可以由模型M解决;如何比较模型的表达能力2.程序理论关心的问题给定模型M,如何用模型M解决问题包括程序设计范型、程序设计语言、程序设计、形式语义、类型论、程序验证、程序分析等3.计算理论关
2、心的问题给定模型M和一类问题,解决该类问题需多少资源,2,本讲座概要介绍并行编程模型及一些相关概念,圣饲狼溯渐足拖帛役豪挽婿脚蛮虱怜恼骂润碰牢遏归纸驭骋一恬龟并砧执(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,讲 座 提 纲,基本知识多核体系结构、并行编程模型内存一致性模型严格一致性模型、顺序一致性模型、内存一致性模型的重要性共享变量并行编程模型同步、锁、临界区、条件变量、死锁、数据竞争消息传递并行编程模型消息传递、同步与异步,3,蕊拱备琵陈愿肾手涟摆宾挤屹穷幸洲柠磺烹哼墨列咎咐葱顷吐垛毗际叔氛(PPT)-多核体系结构与并
3、行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,对称多处理器对称多处理器的体系结构,基 本 知 识,必须在处理器的缓存中找到它操作的大部分数据,以保证性能,通过共享内存来进行通信,4,亢袜筛败月橱蚂优扛探毡辕献诱妙瓣蒸穿淘蓑铭优焊规戴比斌却咀应咎定(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,几个概念的粗略解释任务:一般性的抽象术语,指由软件完成的一个活动。例如,矩阵分块乘就是把矩阵乘分成多个任务,以便于在对称多处理器上并行执行这些任务进程:任务在程序中的对应物,它有自己的数据和代
4、码,需要在处理器上运行直至结束。进程是操作系统为其进行资源分配和调度的独立单位线程:是把进程细分出现的实际运行单位,线程是进程中一段顺序执行的语句序列。把进程分成若干线程是为了提高进程执行过程中的并行性。线程是操作系统调度的基本单位下面未严格区分进程和线程,基 本 知 识,5,窘自穗署骑玄灰釉疆林巫桅货彤受茫响柄哼本勾页槽灶死谭柏奸坯浑惨扶(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,几个概念的粗略解释并行(parallel):多个可以同时执行的任务,在多处理器上同时执行并发(cuncorrent):多个可以同时执行的任务
5、,在单处理器上交错执行并发是逻辑上同时发生,而并行是逻辑上和物理上都同时发生。下面不区分并行和并发,基 本 知 识,6,诫肺涅秽超贾陶宗遵驴怨按霉懒竟哄柄液辽界播吊烘昌蛰邪柴哀淆锥霹硷(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,对称多处理器对称多处理器的体系结构,基 本 知 识,多个高性能处理器可以集成在一块芯片上,7,邑盆虽冈沏候传甄啡冷俩拾蛛檬哩脯途班附淮凉锹钱锗狈鲍呢侩漳絮龟次(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,基 本 知 识,单核结
6、构与多核系统结构,单核结构,多处理器结构,超线程技术充分利用执行单元中的空闲资源,以便在相同时间内完成更多工作 执行单元中的资源:内存访问部件、算术运算部件和浮点功能部件等,8,卯错澈启荡徊镁祈鸯莱鲍券斩皖呐州氮宜爱情睡准徊慧淆采况屡披玉腻挎(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,基 本 知 识,单核结构与多核系统结构,单核结构,多处理器结构,超线程技术本质上就是多个线程共享一个执行核 两套CPU状态+中断逻辑是为了适应两个线程同时执行的需要,9,馆迸连香港捏导益宅毖接悍释驭烘蝴畏草钓多妨哥恐焊钞云蓑楞卷忘稿镣(PP
7、T)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,基 本 知 识,单核结构与多核系统结构,共享缓存的多核体系结构,多核体系结构,多核处理器是把两个甚至更多的独立执行核嵌入到一个处理器的内部,每个线程都有完整的硬件执行环境,各线程之间实现了真正意义上的并行,10,菊呆苟牵致箭家穴高脂旭乎崖豪冻绿早匡旅膀鹏晾迫筐洲斡慰恃淮豺指诣(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,基 本 知 识,单核结构与多核系统结构体系结构越来越复杂,若这些复杂的特征都要反映到编程语言中
8、,才能写出较好利用体系结构优点的程序,则编写程序将是很困难的工作需要设计好的编程模型并通过编译器和操作系统的帮助和支持来解决,11,羽持怠锐瑟气励狡秩狙柳套绸鸥化约贬裸斤帖濒愚武疵疫杂恿贱敌录履葡(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,基 本 知 识,并行编程模型是底层体系结构与上层应用程序之间的桥梁向上隐藏并行处理器的细节,并向程序员提供表达并行的方法向下充分利用硬件资源,高效且正确地完成应用需求任务划分、任务映射、数据分布、通信和同步是设计并行编程模型时需要考虑的五个关键要素并行编程模型的另一种说法并行编程模型是
9、编写可被编译和运行的并行程序的一种抽象并行机器模型,12,坊渝螺箔唐谜饱忻尾寇鼓泪啃祁救霓狡峦心佣汝形溢冤霜藕左喉业禁扯谓(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,基 本 知 识,并行编程模型的分类1.按进程交互的机制来分共享变量模型:进程共享可以异步地读写的全局变量消息传递模型:进程通过相互传递消息来交换数据隐式模型:进程之间交互是用户不可访问的2.按问题分解任务并行:每个处理器执行不同的任务数据并行:把大任务分解成若干个相同的子任务3.,13,语管橇琶化碧气眼峭倒臃势缔融摈睹把牵藕牧虐嘴雨葫夸举承擂额螟往矫(PPT
10、)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,内存一致性模型,并行计算给共享变量读写带来的问题串行程序并行程序 x的初值为0 x在共享存储中,初值为0 x=x+1x=x+1|x=x+2 x=x+2(注:|分隔两段并行代码)结果:x=3 x可能但并非一定是3为什么?在一个进程执行x=x+1期间,共享的x有可能被其它进程读写,14,综陇届尘蛛啼红拿肋妇圃恍厨毅献融匈叶降秦搔杉香棵棘魔蹋惺窥杖张排(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,内存一致性模型,并行计算
11、给共享变量读写带来的问题并行程序 x=x+1|x=x+2 x结果不等于3的情况x=R x=R x=RR+1=R R+2=R x=R R=x R+1=R R=x R+2=R R=x R=x结果:x=1 结果:x=2 x=x+1的执行:取x到寄存器R,R增1,把R存到x 各处理器有各自的R,不共享;x是共享的,15,t,藩愚只背曹讼札膛畔窟灿与锨涯徊煞姆瘁墟坤晨拽娇钠乖铀最睫俯以赁贼(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,内存一致性模型,内存一致性模型内存一致性模型(memory consistency model)描述
12、程序员和系统之间的一种协议。若程序员书写的软件遵循内存操作的专门规则,系统就保证内存表现得有规律并且内存操作的结果可预测专门规则描述的是,在有共享内存的多处理器系统上,在它们读写共享内存操作的可能执行顺序中,哪些顺序是正确的有些模型的专门规则对软件只有少量限制,而有些则使普通编程几乎成为不可能。规则限制少的模型没有限制多的模型执行效果好,16,兹粥英请趁棋蓬撂邮靛徊罐运娩因仁阔初攫诺知拒假茨汕数牟庆肪稳篷缘(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,内存一致性模型,内存一致性模型内存一致性模型是理解并行程序语义的一个关键
13、为确保写出正确的并行程序,程序员必须准确理解并行程序的语义随着多核处理器的广泛应用,并行程序设计已经由一种特殊的、只需少数高端技术人才掌握的技巧,变为一种大多数程序员都应该掌握的基本技能,17,维忌驮触增纬汹骄将乘港盏幕踏倡双动冶会瑟稼操僚渍质踩贤爱藩蕴学猪(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,内存一致性模型,严格一致性(原子一致性)模型一个进程对任何内存位置x的读操作,得到的是最近一次对x的写操作所写入的值 在下面的图示中,P1和P2是处理器,x的初值是0 W(x)1表示:把1写到x中;R(x)3表示:读取x,得
14、到值3P1:W(x)1 P1:W(x)1P2:R(x)1 R(x)1 P2:R(x)0 R(x)1P1:W(x)1P2:R(x)0 R(x)1,t,t,t,左下图不符合严格一致性,18,皋鞭桶边曼蒂瓶檄猾草焙姐跺装媳悍筛块究鸯狼朱狡求奸跺翱销伎摹夫蛹(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,内存一致性模型,严格一致性(原子一致性)模型一个进程对任何内存位置x的读操作,得到的是最近一次对x的写操作所写入的值 单处理器遵守严格一致性 在多处理器+共享内存的系统中,要实现严格一致性模型几乎是不可能的,19,条旨眨吸汗观家捐氮
15、印耙箍蒙陇酗扔胚成良栈俺骆朝呻甄药最怀受醒棋瞪(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,顺序一致性模型比严格一致性弱的模型在多处理器共享内存情况下,所有处理器的内存访问操作都按照某个顺序逐个执行,并且每个处理器执行的单个线程,严格按照程序规定的顺序逐语句地进行内存访问操作P1:W(x)1P2:W(x)2P3:R(x)2 R(x)1P4:R(x)2 R(x)1,内存一致性模型,20,t,t,t,t,左图符合顺序一致性:W(x)2先于W(x)1发生,殊侈六拣顿办残箍限敞忠呸爵雾氯袒玻撑猖尽立耘椅蛋啃亡骚颅妒徽沸挎(PPT)
16、-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,顺序一致性模型比严格一致性弱的模型在多处理器共享内存情况下,所有处理器的内存访问操作都按照某个顺序逐个执行,并且每个处理器执行的单个线程,严格按照程序规定的顺序逐语句地进行内存访问操作P1:W(x)1P2:W(x)2P3:R(x)2 R(x)1P4:R(x)1 R(x)2,内存一致性模型,21,t,t,t,t,左图不符合顺序一致性:不论W(x)1和W(x)2谁先发生,渝韦鲤弘缉生券萧乌傈遂牲弃观屉绪杀漠泰驮郭仍列拧逝兄城博酬绿容惭(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲
17、(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,顺序一致性模型比严格一致性弱的模型在多处理器共享内存情况下,所有处理器的内存访问操作都按照某个顺序逐个执行,并且每个处理器执行的单个线程,严格按照程序规定的顺序逐语句地进行内存访问操作比顺序一致性还弱的有多种弱内存模型大多数程序员假定并行程序的运行满足顺序一致性,但现实中几乎所有的并行程序都在某种弱内存模型下运行,而且不同的并行语言和处理器的内存模型不同,内存一致性模型,22,轰既受哆荫玩珐僻炼挚追讯辞铲苫召药汇藩剑府谭司誉古迸绥蘑萤挤频弊(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型
18、计算机科学导论第八讲,顺序一致性模型例:互斥使用临界区的并行线程 若两个线程严格按照给出的语句顺序逐条执行,则它们能实现互斥功能,因为r1和r2不可能同时为0现实中,编译器和处理器内部进行的优化都会导致内存操作的实际顺序和代码中的语句顺序不一致,例:上述两线程的前两个语句被编译器交换次序,使得两个条件判断都为真,两个线程都进入临界区,内存一致性模型,x和y:共享变量,初始:x=0,y=0 x=1;y=1;r1=y;r2=x;if(r1=0)if(r2=0)critical region critical region,23,r1=y;x=1;,r2=x;y=1;,t,窄要叙涌峪仇咆澎魔谭乖袁坪
19、些汐隆船荚岭纺匿溺枢陆判滔碾脚哥旁彪砰(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,内存一致性模型的重要性它作为系统实现和程序员之间的接口,对处理器体系结构的实现、并行语言的设计和实现、并行程序的开发和验证都有重要意义以并行语言的设计和实现为例编译器的优化算法会调整源程序中的内存操作顺序,使得目标程序和源程序的顺序不一致目标程序的执行顺序又可能被处理器进一步改变并行语言的设计和实现必须考虑到这两种情况及其效果的叠加,对源程序可能表现出的行为进行准确描述(并行语言的内存模型),便于正确编程,内存一致性模型,24,锚腿弧惧恿鸵
20、卑迈醒偶窥镁削解很姐锋涸榨坝叠劝岔茎卉鸵苟疽热擅兽潞(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,编程语言内存一致性模型的现状由于优化算法的多样性,编程语言内存模型比体系结构的内存模型复杂Gosling等为第一版Java语言给出的内存一致性模型,无法支持常用的优化算法,是一个失败的模型Manson等给出的Java模型,虽被语言新标准所采纳,但模型十分晦涩,是Java语言中最复杂部分,极少有人能正确理解其含义Boehm和Adve试图为C+提供一个简单的模型,但很多地方有歧义或不清晰,内存一致性模型,25,埃郊憎骤谩镀纠蝴苹儡
21、禹蔓炬昭垒椅爬钉忙得数狈颤逗多信诡坎颇寨痔抉(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,共享变量并行编程模型,使用共享变量的错误例子并行计算Fibonacci序列下一个元素的两个线程对两个线程的执行没有任何约束下面是两个线程某次并行时的语句执行顺序,prev和curr:初值分为0和1的共享变量int retval;int retval;retval=curr;retval=curr;curr=curr+prev;curr=curr+prev;prev=retval;prev=retval;,t,26,颠尧抖眯郸尊系优凄惧
22、盐广贮漏待砍砂城疮厨芳共椅苛糜腔篡稗腊渤纹刊(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲(PPT)-多核体系结构与并行编程模型计算机科学导论第八讲,共享变量并行编程模型,使用共享变量的错误例子并行计算Fibonacci序列下一个元素的两个线程对两个线程的执行没有任何约束下面是两个线程某次并行时的语句执行顺序,prev和curr:初值分为0和1的共享变量int retval;int retval;retval=curr;retval=curr;curr=curr+prev;curr=curr+prev;prev=retval;prev=retval;,t,1,1,1,1,1,1,2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PPT 多核 体系结构 并行 编程 模型 计算机科学 导论 第八
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4915435.html