- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[PPT]-多核体系结构与并行编程模型计算机科学导论第八讲
多核体系结构与并行编程模型计算机科学导论第八讲;课 程 内 容;讲 座 提 纲;对称多处理器
对称多处理器的体系结构;几个概念的粗略解释
任务:一般性的抽象术语,指由软件完成的一个活动。例如,矩阵分块乘就是把矩阵乘分成多个任务, 以便于在对称多处理器上并行执行这些任务
进程:任务在程序中的对应物,它有自己的数据和代码,需要在处理器上运行直至结束。进程是操作系统为其进行资源分配和调度的独立单位
线程:是把进程细分出现的实际运行单位,线程是进程中一段顺序执行的语句序列。把进程分成若干线程是为了提高进程执行过程中的并行性。线程是操作系统调度的基本单位
下面未严格区分进程和线程;几个概念的粗略解释
并行(parallel): 多个可以同时执行的任务,在多处理器上同时执行
并发(cuncorrent):多个可以同时执行的任务,在单处理器上交错执行
并发是逻辑上同时发生,而并行是逻辑上和物理上都同时发生。下面不区分并行和并发;对称多处理器
对称多处理器的体系结构;基 本 知 识;基 本 知 识;基 本 知 识;基 本 知 识;基 本 知 识;基 本 知 识;内存一致性模型;内存一致性模型;内存一致性模型;内存一致性模型;内存一致性模型;内存一致性模型;顺序一致性模型
比严格一致性弱的模型
在多处理器共享内存情况下,所有处理器的内存访问操作都按照某个顺序逐个执行,并且每个处理器执行的单个线程,严格按照程序规定的顺序逐语句地进行内存访问操作
P1: W(x)1
P2: W(x)2
P3: R(x)2 R(x)1
P4: R(x)2 R(x)1
;顺序一致性模型
比严格一致性弱的模型
在多处理器共享内存情况下,所有处理器的内存访问操作都按照某个顺序逐个执行,并且每个处理器执行的单个线程,严格按照程序规定的顺序逐语句地进行内存访问操作
P1: W(x)1
P2: W(x)2
P3: R(x)2 R(x)1
P4: R(x)1 R(x)2
;顺序一致性模型
比严格一致性弱的模型
在多处理器共享内存情况下,所有处理器的内存访问操作都按照某个顺序逐个执行,并且每个处理器执行的单个线程,严格按照程序规定的顺序逐语句地进行内存访问操作
比顺序一致性还弱的有多种弱内存模型
大多数程序员假定并行程序的运行满足顺序一致
性,但现实中几乎所有的并行程序都在某种弱内存
模型下运行,而且不同的并行语言和处理器的内存
模型不同;顺序一致性模型
例:互斥使用临
界区的并行线程
若两个线程严格按照给出的语句顺序逐条执行,
则它们能实现互斥功能,因为r1和r2不可能同时为0
现实中,编译器和处理器内部进行的优化都会导
致内存操作的实际顺序和代码中的语句顺序不一致,
例:上述两线程的前两个语句被编译器交换次序,
使得两个条件判断都为真,两个线程都进入临界区;内存一致性模型的重要性
它作为系统实现和程序员之间的接口,对处理器体系结构的实现、并行语言的设计和实现、并行程序的开发和验证都有重要意义
以并行语言的设计和实现为例
编译器的优化算法会调整源程序中的内存操作顺序,使得目标程序和源程序的顺序不一致
目标程序的执行顺序又可能被处理器进一步改变
并行语言的设计和实现必须考虑到这两种情况及其效果的叠加,对源程序可能表现出的行为进行准确描述(并行语言的内存模型),便于正确编程;编程语言内存一致性模型的现状
由于优化算法的多样性,编程语言内存模型比体
系结构的内存模型复杂
Gosling等为第一版Java语言给出的内存一致性模型, 无法支持常用的优化算法, 是一个失败的模型
Manson等给出的Java模型,虽被语言新标准所采纳,但模型十分晦涩,是Java语言中最复杂部分, 极少有人能正确理解其含义
Boehm和Adve试图为C++提供一个简单的模型,但很多地方有歧义或不清晰;共享变量并行编程模型;共享变量并行编程模型;共享变量并行编程模型;共享变量并行编程模型;共享变量并行编程模型;共享变量并行编程模型;共享变量并行编程模型;共享变量并行编程模型;条件变量
共享变量的一种实现方式
例:生产者/消费者问题
一个典型的同步问题,
也称有限缓冲区问题
生产者向缓冲区中写入
数据
消费者从缓冲区取得数
据并对数据进行操作
生产者和消费者并行执行;条件变量
右边是生产者线程,条
件变量C使用锁L来完成
对共享数据的访问,可对
条件变量C执行3种原子
操作(LC 的初值为false)
1. wait(L): 释放自身持有
的锁
您可能关注的文档
- X-ray diffraction(X射线衍射).ppt
- X-ray Image Segmentation using Active Shape Models:基于主动形状模型的X射线图像分割.ppt
- X-Ray Microdiffraction on Diamond-shaped NiTi for :X射线衍射仪对NiTi为菱形.ppt
- X-ray Photoelectron Spectroscopy (XPS)X射线光电子能谱(XPS).ppt
- X-ray probes of black hole disks - Stanford University:X射线探测黑洞盘-斯坦福大学.ppt
- X-RAY基本操作.ppt
- X-ray摄影及影像冲洗打印.ppt
- x-射线简介.ppt.ppt
- X-ray衍射方向.ppt.ppt
- XPS和俄歇电子能谱_能源化工_工程科技_专业资料.ppt.ppt
文档评论(0)