并行计算(陈国良版)课后答案
并行计算期末试题及答案

并行计算期末试题及答案1. 基础概念部分并行计算是一种计算模式,它使用多个处理单元同时执行计算操作,以加快计算速度。
在现代计算机系统中,我们常常使用多核处理器、图形处理器(GPU)或者分布式系统来实现并行计算。
1.1 并行计算的优势并行计算具有以下几个优势:加速计算速度:通过同时执行多个计算任务,可以极大地提高计算效率。
解决大规模问题:并行计算可以处理大规模和复杂的问题,提供更精确的结果。
降低能耗:通过合理利用处理器资源,可以降低计算任务的能耗。
应用广泛:并行计算可以应用于各个领域,如科学计算、大数据分析、机器学习等。
1.2 并行计算的分类并行计算按照任务之间的关系可以分为两类:数据并行:将数据划分为多个子集,同时在不同的处理器上进行计算,然后将计算结果汇总。
常见的应用包括矩阵运算、图像处理等。
任务并行:将任务划分为多个子任务,每个子任务由一个独立的处理器执行,最后将各个子任务的结果合并。
常见的应用包括并行搜索算法、并行排序等。
2. 并行计算的算法设计2.1 并行算法设计要点在设计并行算法时,需要考虑以下几个要点:任务划分:将计算任务划分为多个子任务,确保各个子任务之间的计算工作均衡,并保持任务之间的独立性。
任务调度:合理安排各个处理器上的任务执行顺序和时间,最大程度地减少通信开销和等待时间。
数据通信:处理器之间需要进行数据交换和通信,应选择合适的通信方式,并考虑通信延迟和带宽等因素。
数据同步:在多个处理器之间,可能需要进行数据同步操作,确保各个处理器之间的数据一致性。
2.2 并行算法实例:并行矩阵乘法并行矩阵乘法是一个常见的数据并行算法,可以有效地利用多核处理器加速大规模矩阵运算。
具体算法如下:步骤1:将输入矩阵划分为若干个小矩阵,每个小矩阵分配给一个处理器。
步骤2:每个处理器计算相应小矩阵的部分结果。
步骤3:将各个处理器计算得到的部分结果进行求和,得到最终的矩阵乘积结果。
3. 并行计算的应用举例3.1 科学计算在科学计算领域,有大量的计算任务需要处理大规模的数据和复杂的数学模型。
并行计算习题答案

并行计算习题答案并行计算习题答案在计算机科学领域,随着技术的不断发展,计算速度的提升成为了一个重要的课题。
并行计算作为一种有效的解决方案,被广泛应用于各个领域。
本文将通过回答一些并行计算习题,来探讨并行计算的原理和应用。
1. 什么是并行计算?并行计算是指同时执行多个计算任务的一种计算模式。
它通过将一个大问题分解为多个小问题,并在多个处理单元上同时执行这些小问题,从而加快计算速度。
并行计算可以应用于各种领域,包括科学计算、图像处理、人工智能等。
2. 并行计算的优势是什么?并行计算具有以下几个优势:- 加速计算速度:通过同时执行多个任务,可以大大提高计算速度,从而节省时间和资源。
- 处理大规模问题:并行计算可以处理大规模问题,将问题分解为多个小问题,分别在不同处理单元上计算,从而提高计算效率。
- 提高系统可靠性:并行计算中的多个处理单元可以相互协作,当一个处理单元发生故障时,其他处理单元可以继续工作,从而提高系统的可靠性。
3. 并行计算的模型有哪些?并行计算的模型有多种,常见的包括:- SIMD(单指令流多数据流)模型:所有处理单元执行相同的指令,但可以处理不同的数据。
- MIMD(多指令流多数据流)模型:每个处理单元可以执行不同的指令,处理不同的数据。
- SPMD(单程序多数据流)模型:所有处理单元执行相同的程序,但可以处理不同的数据。
4. 并行计算中的通信方式有哪些?并行计算中的通信方式包括:- 共享内存:多个处理单元共享同一块物理内存,通过读写内存来实现数据的传递和共享。
- 消息传递:处理单元之间通过发送和接收消息来进行通信,可以通过直接通信或者通过中间件来实现。
5. 如何评估并行计算的性能?评估并行计算的性能可以从以下几个方面考虑:- 加速比:加速比是指并行计算相对于串行计算的速度提升比例,可以通过计算并行计算时间与串行计算时间的比值得到。
- 效率:效率是指并行计算的实际加速比与理论加速比之间的比值,可以反映并行计算的利用率。
并行体系结构(陈国良版)课后答案

第一章绪论1.1 什么是并行计算机?答:简单地讲,并行计算机就是由多个处理单元组成的计算机系统,这些处理单元相互通信和协作,能快速高效求解大型的复杂的问题。
1.2 简述Flynn分类法:答:根据指令流和数据流的多重性将计算机分为:1)单指令单数据流SISD2)单指令多数据流SIMD3)多指令单数据流MISD4)多指令多数据流MIMD1.3 简述当代的并行机系统答:当代并行机系统主要有:1)并行向量机(PVP)2)对称多处理机(SMP)3)大规模并行处理机(MPP)4)分布式共享存储(DSM)处理机5)工作站机群(COW)1.4 为什么需要并行计算机?答:1)加快计算速度2)提高计算精度3)满足快速时效要求4)进行无法替代的模拟计算1.5 简述处理器并行度的发展趋势答:1)位级并行2)指令级并行3)线程级并行1.6 简述SIMD阵列机的特点答:1)它是使用资源重复的方法来开拓计算问题空间的并行性。
2)所有的处理单元(PE)必须是同步的。
3)阵列机的研究必须与并行算法紧密结合,这样才能提高效率。
4)阵列机是一种专用的计算机,用于处理一些专门的问题。
1.7 简述多计算机系统的演变答:分为三个阶段:1)1983-1987年为第一代,代表机器有:Ipsc/1、Ameteks/14等。
2)1988-1992年为第二代,代表机器有:Paragon、Intel delta等。
3)1993-1997年为第三代,代表机器有:MIT的J-machine。
1.8 简述并行计算机的访存模型答:1)均匀存储访问模型(UMA)2)非均匀存储访问模型(NUMA)3)全高速缓存存储访问模型(COMA)4)高速缓存一致性非均匀访问模型(CC-NUMA)1.9 简述均匀存储访问模型的特点答:1)物理存储器被所有处理器均匀共享。
2)所有处理器访问任何存储字的时间相同。
3)每台处理器可带私有高速缓存。
4)外围设备也可以一定的形式共享。
1.10简述非均匀存储访问模型的特点答:1)被共享的存储器在物理上分布在所有的处理器中,其所有的本地存储器的集合构成了全局的地址空间。
并行计算课程的教学方法

并行计算课程的教学方法
陈国良;孙广中;徐云;吴俊敏
【期刊名称】《中国大学教学》
【年(卷),期】2004(000)002
【摘要】教育部高等学校计算机科学与技术教学指导委员会,曾于1998年将并行计算课程定位在高等学校计算机专业高年级本科生或研究生以及面向计算学科的非计算机专业的研究生层次上。
设置该课程的宗旨是为了我国培养面向21世纪的厚基础、宽口径、强能力、高素质具有时代性多样化人才的需要。
为此在编写此课程的教材时着重强调专业知识的宽广和内容的先进。
【总页数】3页(P35-37)
【作者】陈国良;孙广中;徐云;吴俊敏
【作者单位】中国科学技术大学;中国科学技术大学;中国科学技术大学;中国科学技术大学
【正文语种】中文
【中图分类】G64
【相关文献】
1.变革高中历史教学方法适应新课程改革要求——浅谈在新课程下高中历史教学方法的改革与创新
2.变革高中历史教学方法适应新课程改革要求——浅谈在新课程下高中历史教学方法的改革与创新
3.以国家精品课程建设推动教学方法改革--国家精品课程"天气学"教学方法探索实践
4.“并行计算”课程中课程思政教育研究与实践
5.多核时代"并行计算"课程教学模式研究与实践
因版权原因,仅展示原文概要,查看原文内容请购买。
并行计算试题及答案

计算机学院研究生《并行计算》课程考试试题(2010级研究生,2011.1)1.(12分)定义图中节点u 和v 之间的距离为从u 到v 最短路径的长度。
已知一个d 维的超立方体,1)指定其中的一个源节点s ,问有多少个节点与s 的距离为i ,其中0≤i ≤d 。
证明你的结论。
2)证明如果在一个超立方体中节点u 与节点v 的距离为i ,则存在i !条从u 到v 的长度为i 的路径。
1)有id C 个节点与s 的距离为i 。
证明:由超立方体的性质知:一个d 维的超立方体的每个节点都可由d 位二进制来表示,则与某个节点的距离为i 的节点必定在这d 位二进制中有i 位与之不同,那么随机从d 位中选择i 位就有id C 种选择方式,即与s 的距离为i 得节点就有id C 个。
2)证明:由1)所述可知:节点u 与节点v 的距离为i 则分别表示u 、v 节点的二进制位数中有i 位是不同的。
设节点u 表示为:121D .........j j i j i d D D D D D +-+,节点v 表示为:''121D .........j j i j i dD D D D D +-+,则现在就是要求得从121D .........j j i j i d D D D D D +-+变换到''121D .........j j i j i d D D D D D +-+ 的途径有多少种。
那么利用组合理论知识可知共有*(1)*(2)*...*2*1i i i --即!i 中途径。
所以存在i !条从u 到v 的长度为i 的路径。
2.(18分)6个并行程序的执行时间,用I-VI 表示,在1-8个处理器上执行了测试。
下表表示了各程序达到的加速比。
对其中的每个程序,选出最适合描述其在16个处理器上性能的陈述。
a ) 在16个处理器上的加速比至少比8个处理器上的加速比高出40%。
b ) 由于程序中的串行程序比例很大,在16个处理器上的加速比不会比8个处理器上的加速比高出40%。
并行计算习题答案

并行计算——结构.算法.编程 陈国良(第3版)2.1 对于一颗K 级二叉树(根为0级,叶为k-1级),共有N=2^k-1个节点,当推广至m-元树时(即每个非叶节点有m 个子节点)时,试写出总节点数N 的表达式。
答:推广至M 元树时,k 级M 元树总结点数N 的表达式为:N=1+m 1+m 2+...+m (k-1)=(1-m k )*1/(1-m);4.11 一个在p 个处理器上运行的并行程序加速比是p-1,根据Amdahl 定律,串行分量为多少?答:p/(1+f(p-1))=p-1, f=1/(p-1)25.5假定开始时P i (1《i 《n)存有数据 d i ,所谓累加求和是指用∑=i j i d 1,来代替中的原始值d i ,算法5.3给出了在PRAM 模型上累加求和算法。
Input: di are kept in Pi, whereOutput: replaces di in processor PiBeginfor j=0 to logn-1 dofor i=2j +1 to n par-do(i) di= d i + d i –2j(ii) Pi=diend forend forEnd(1)试用n=8为例子,按照上述算法逐步计算出累加和。
(2)分析算法的时间复杂度。
6.333215413 33 8240 727.2(1)例:A={1,3,6,8,11,13} p=6;B={2,4,5,7,10,12,14} ,q=7p=3, q=3A={1,3,6*,8,11,13*}B={2,4,5*,7,10 ,12*,14},B’={2,4,5,6*,7,10 12,13*,14}A11={1,3} , A12={8,11} , A13={} B11={2,4,5} , B12={7,10 12} , B13={14} A11={1,3*} , A12={8,11*} ,B11={2,4*,5} , B12={7,10* , 12} ,B11’={2, 3* , 4,5} , B12’={7,10 , 11* , 12} ,A111={1},A112={} A121={8},A122={}B111={2},B112={4,5} B121={7,10 },B122={12}A111={1 *} A121={8 *}B111={2 *} B121={7,10 * }B111’={1 *,2 } B121’={7, 8 *,10 }A1111={}, A1112={} A1211={}, A1212={}B1111={}, B1111={} B1211={7}, A1212={}6.7(1)pat = abaababa(m = 8)WIT[1] = 0,WIT[2] = 1,w=1,j=2,s=2-1+1=2 pat[w] = a pat[s]=bWIT[3] = 2,w=1,j=3,s=3-1+1=3 pat[w] = pat[s]=aw=2,j=3,s=3-1+2=4 pat[w] = b pat[s]=aWIT[4] = 4 w=1,j=4,s=4-1+1=4 pat[w] = pat[s]=aw=2,j=4,s=4-1+2=5 pat[w] = pat[s]=bw=3,j=4,s=4-1+3=6 pat[w] = pat[s]=aw=4,j=4,s=4-1+4=7 pat[w] = a pat[s]=b 为非周期串6.8 (2)p=6,q=9j=q-p+1=9-6+1=4w=wit[j]=wit[4]=4T(q+w-1)=t(9+4-1)=b<>P(4)=awit[q]= wit[9]=w=4duel=p=6。
并行计算题目答案汇总

并⾏计算题⽬答案汇总第1题(1)什么是并⾏计算?(2)它的优点有哪些?(3)可以通过哪些结构完成并⾏计算?1.并⾏计算就是在并⾏计算或分布式计算机等⾼性能计算系统上所做的超级计算。
(P3)2.计算极⼤地增强了⼈们从事科学研究的能⼒,⼤⼤地加速了把科技转化为⽣产⼒的过程,深刻地改变着⼈类认识世界和改造世界的⽅法和途径。
计算科学的理论和⽅法,作为新的研究⼿段和新的设计与创造技术的理论基础,正推动着当代科学与技术向纵深发展。
(P4)3.单指令多数据流SIMD、对称多处理机SMP、⼤规模并⾏处理机MPP、⼯作站机群COW、分布共享存储DSM多处理机。
(P22)第2题什么是⽹络计算?它的特点?它与分布式计算、集群计算的关系?(P104)⽹络计算:在⼯作站机群COW环境下进⾏的计算称为⽹络计算。
特点:⽹络计算结合了客户机/服务器结构的健壮性、Internet⾯向全球的简易通⽤的数据访问⽅式和分布式对象的灵活性,提供了统⼀的跨平台开发环境,基于开放的和事实上的标准,把应⽤和数据的复杂性从桌⾯转移到智能化的⽹络和基于⽹络的服务器,给⽤户提供了对应⽤和信息的通⽤、快速的访问⽅式。
与分布式计算、集群计算的关系:分布式计算是⼀门计算机科学,它研究如何把⼀个需要⾮常巨⼤的计算能⼒才能解决的问题分成许多⼩的部分,然后把这些部分分配给许多计算机进⾏处理,最后把这些计算结果综合起来得到最终的结果。
集群计算是使⽤多个计算机,如典型的个⼈计算机或UNIX⼯作站;多个存储设备;冗余互联,来组成⼀个对⽤户来说单⼀的⾼可⽤性的系统。
因此,⽹络计算与分布式计算和集群计算都是属于计算密集型,数据密集型和⽹络密集型应⽤。
第3题表征并⾏系统的性能指标有哪些?并⾏系统的加速⽐如何定义?它能否完全确定系统的性能?为什么?a.表征并⾏系统的性能指标主要有:CPU和存储器的基本性能指标,通信开销以及系统机器的成本、价格与性价⽐,还有系统加速⽐和系统可扩放性(p88页3.3);其中CPU和存储器的基本性能指标包括:⼯作负载,并⾏执⾏时间,存储器的层次结构和存储器的带宽。
并行程序设计导论第四章课后题答案(2024)

2024/1/29
1
目录
2024/1/29
• 课后题概述与解题思路 • 并行计算基本概念回顾 • 数据并行和任务并行编程技巧 • 同步与通信机制在并行程序中的应用 • 性能评价与调试方法分享 • 实例分析:典型课后题解答过程展示
2
01 课后题概述与解题思路
2024/1/29
并行化设计
将程序中的可并行部分进行并行处理,利用多核CPU或分布式系统的 计算能力提高程序性能。
数据结构优化
根据问题的特点选择合适的数据结构,以减少内存占用和提高数据访 问效率。
代码优化
通过编译器优化选项、内联函数、减少函数调用等手段提高代码执行 效率。
22
06 实例分析:典型课后题解 答过程展示
并行性能优化
通过分析并行程序的性能瓶颈,采用合适的优化策略,如减少通信 开销、提高缓存利用率等,提高并行程序的执行效率。
14
04 同步与通信机制在并行程 序中的应用
2024/1/29
15
同步机制原理及作用
2024/1/29
同步机制原理
通过设定同步点或同步操作,确保并 行程序中的各个进程或线程在关键点 上达到一致状态,避免数据竞争和结 果不确定性。
重点复习并行程序设计的基本概念、原理和方法,理解并掌握相关术语和定义。通过对比和分析选项,找出 正确答案。
简答题
在理解基本概念的基础上,结合实际应用场景和问题背景,进行深入分析和思考。注意答案的条理性和逻辑 性,尽量用简洁明了的语言进行表述。
编程题
首先明确题目要求和目标,设计合理的算法和数据结构。在编写代码时,注意并行化策略的选择和实现,以 及同步和通信机制的处理。最后对程序进行测试和调试,确保正确性和性能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章互连网络对于一颗K级二叉树(根为0级,叶为k-1级),共有N=2^k-1个节点,当推广至m-元树时(即每个非叶节点有m个子节点)时,试写出总节点数N的表达式。
答:推广至M元树时,k级M元树总结点数N的表达式为:N=1+m^1+m^2+...+m^(k-1)=(1-m^k)*1/(1-m);二元胖树如图所示,此时所有非根节点均有2个父节点。
如果将图中的每个椭圆均视为单个节点,并且成对节点间的多条边视为一条边,则他实际上就是一个二叉树。
试问:如果不管椭圆,只把小方块视为节点,则他从叶到根形成什么样的多级互联网络答:8输入的完全混洗三级互联网络。
四元胖树如图所示,试问:每个内节点有几个子节点和几个父节点你知道那个机器使用了此种形式的胖树答:每个内节点有4个子节点,2个父节点。
CM-5使用了此类胖树结构。
试构造一个N=64的立方环网络,并将其直径和节点度与N=64的超立方比较之,你的结论是什么答:A N=64的立方环网络,为4立方环(将4维超立方每个顶点以4面体替代得到),直径d=9,节点度n=4B N=64的超立方网络,为六维超立方(将一个立方体分为8个小立方,以每个小立方作为简单立方体的节点,互联成6维超立方),直径d=6,节点度n=6一个N=2^k个节点的 de Bruijin 。
试问:该网络的直径和对剖宽度是多少答:N=2^k个节点的 de Bruijin网络直径d=k 对剖宽带w=2^(k-1)一个N=2^n个节点的洗牌交换网络如图所示。
试问:此网络节点度==网络直径==网络对剖宽度==答:N=2^n个节点的洗牌交换网络,网络节点度为=2 ,网络直径=n-1 ,网络对剖宽度=4一个N=(k+1)2^k个节点的蝶形网络如图所示。
试问:此网络节点度=网络直径=网络对剖宽度=答:N=(k+1)2^k个节点的蝶形网络,网络节点度=4 ,网络直径=2*k ,网络对剖宽度=2^k对于如下列举的网络技术,用体系结构描述,速率范围,电缆长度等填充下表中的各项。
(提示:根据讨论的时间年限,每项可能是一个范围)答:如图所示,信包的片0,1,2,3要分别去向目的地A,B,C,D。
此时片0占据信道CB,片1占据信道DC,片2占据信道AD,片3占据信道BA。
试问:1)这将会发生什么现象2)如果采用X-Y选路策略,可避免上述现象吗为什么答: 1)通路中形成环,发生死锁2)如果采用X-Y 策略则不会发生死锁。
因为采用X-Y 策略时其实质是对资源(这里是通道)进行按序分配(永远是x 方向优先于y 方向,反方向路由是y 方向优先于x 方向),因此根据死锁避免的原则判断,此时不会发生死锁。
在二维网孔中,试构造一个与X-Y 选路等价的查表路由。
答: 所构造路由表描述如下:1)每个节点包括两张路由表x 表和y 表2)每个节点包含其以后节点信息,如节点【1,2】x 表内容为:【2,2】【3,2】y 表内容为:【1,3】选路方法:节点路由时进行查表:先查x 表即进行x 方向路由,如果查表能指明下一跳方向则直接进入下一跳。
如果不能则继续查y 表,直到到达目的地。
第四章 对称多处理机系统参照图,试解释为什么采用WT 策略进程从2P 迁移到1P 时,或采用WB 策略将包含共享变量X 的进程从1P 迁移到2P 时,会造成高速缓存的不一致。
处理器高速缓存共享存储器迁移写通写总线过回之前图 进程迁移所造成的不一致性答:采用WT 策略进程从2P 迁移到1P 后,2P 写共享变量X 为X ’,并且更新主存数据为X ’,此时1P 共享变量值仍然为X ,与2P 和主存X ’不一致。
采用WB 策略进程从1P 迁移到2P 后,1P 写共享变量X 为X ’,但此时2P 缓存与主存变量值仍然为X ,造车不一致。
参照图所示,试解释为什么:①在采用WT 策略的高速缓存中,当I/O 处理器将一个新的数据'X 写回主存时会造成高速缓存和主存间的不一致;②在采用WB 策略的高速缓存中,当直接从主存输出数据时会造成不一致。
处理器I/O (写直达)总线输入输出(写回)高速缓存I/O处理机图 绕过高速缓存的I/O 操作所造成的不一致性答:①中I/O 处理器将数据X ’写回主存,因为高速缓存采用WT 策略,此时P1和P2相应的高速缓存值还是X ,所以造成高速缓存与主存不一致。
②直接从主存输出数据X ,因为高速缓存采用WB 策略,可能高速缓存中的数据已经被修改过,所以造成不一致。
4.3 试解释采用WB策略的写更新和写无效协议的一致性维护过程。
其中X 为更新前高速缓存中的拷贝,'X 为修改后的高速缓存块,I 为无效的高速缓存块。
(b)处理器P 1执行写无效操作后(c)处理器P 1执行写更新操作后(a)写操作前答:处理器P1写共享变量X 为X ’,写更新协议如图(c)所示,同时更新其他核中存在高速缓存拷贝的值为X ’;写无效协议如图(b)所示,无效其他核中存在高速缓存拷贝,从而维护了一致性过程。
4.4 两种基于总线的共享内存多处理机分别实现了Illinois MESI 协议和Dragon 协议,对于下面给定的每个内存存取序列,试比较在这两种多处理机上的执行代价,并就序列及一致性协议的特点来说明为什么有这样的性能差别。
序列①r1 w1 r1 w1 r2 w2 r2 w2 r3 w3 r3 w3;序列②r1 r2 r3 w1 w2 w3 r1 r2 r3 w3 w1;序列③r1 r2 r3 r3 w1 w1 w1 w1 w2 w3;所有的存取操作都针对同一个内存位置,r/w 代表读/写,数字代表发出该操作的处理器。
假设所有高速缓存在开始时是空的,并且使用下面的性能模型:读/写高速缓存命中,代价1个时钟周期;缺失引起简单的总线事务(如BusUpgr,BusUpd),60个时钟周期;缺失引起整个高速缓存块传输,90时钟周期。
假设所有高速缓存是写回式。
答:读写命中、总线事务、块传输分别简记为H、B、T。
MESI协议:①BTH H H H BTH BH H H BTH BH H H 共5B+12H+3T=582时钟周期②BTH BTH BTH BH BTH BTH BTH BTH H BH BTH 共10B+12H+8T=1330时钟周期③BTH BTH BTH H BH H H H BTH BTH共6B+10H+4T=730时钟周期。
Dragon协议:①BTH H H H BTH BTH H BTH BTH BTH H BTH 共7B+12H+7T=882时钟周期②BTH BTH BTH BTH BTH BTH H H H H BTTH BTH 共8B+12H+8T=1212时钟周期③BTH BTH BTH H BTH BTH BTH BTH BTH BTH 共9B+10H+9T=1360时钟周期。
由结果得出,①、③序列用MESI 协议时间更少,而②序列用Dragon协议时间更少。
综上可知,如果同一块在写操作之后频繁被多个核读操作采用Dragon协议更好一些,因为Dragon协议写操作后会更新其它核副本。
如果一个同多次连续对同一块进行写操作MESI协议更有效,因为它不需要更新其它核副本,只需要总线事务无效其它核即可。
考虑以下代码段,说明在顺序一致性模型下,可能的结果是什么假设在代码开始执行时,所有变量初始化为0。
a.P1P2P3A=1U=A V=BB=1W=Ab.P1P2P3P4A=1U=A B=1W=BV=B X=A答:顺序一致性模型性下,保护每个进程都按程序序来发生内存操作,这样会有多种可能结果,这里假设最简单情况,即P1、P2、P3依次进行。
则a中U = V = W = 1,b中U=X=W=1,V=0。
4.6参照4.6.1中讨论多级高速缓存包含性的术语,假设L1和L2都是2-路组相联,n2>n1,b1=b2,且替换策略用FIFO来代替LRU,试问包含性是否还是自然满足如果替换策略是随机替换呢答:如果采用FIFO替换策略包含性自然满足,因为L1和L2都是2路组相联,FIFO保证了L1与L2在发生替换时会换出相同的缓存块,维护了包含性。
如果采取随机替换策略,存在L1与L2替换不是相同块的情况,故不满足包含性。
4.7针对以下高速缓存情况,试给出一个使得高速缓存的包含性不满足的内存存取序列L1 高速缓存容量32字节,2-路组相联,每个高速缓存块8个字节,使用LRU替换算法;L2 高速缓存容量128字节,4-路组相联,每个高速缓存块8个字节,使用LRU替换算法。
答:假设m1、m2、m3块映射到一级Cache和二级Cache的同一组中,考虑如下内存存取序列R m1,R m2,R m1,R m3,由LRU替换算法知道,当R m3执行后,L1中被替换出的是m2,L2中被替换出的是m1,此时m1块在L1却不在L2中,不满足包含性。
4.8在中关于分事务总线的讨论中,依赖于处理器与高速缓存的接口,下面情况有可能发生:一个使无效请求紧跟在数据响应之后,使得处理器还没有真正存取这个高速缓存块之前,该高速缓存块就被使无效了。
为什么会发生这种情况,如何解决答:考虑如下情景:SMP目录一致性协议中,核1读缺失请求数据块A,主存响应请求传送数据块A给核1,同时核2对数据块A进行写操作,到主存中查得核1拥有副本,向核1发使无效请求。
如此,一个使无效请求紧跟在数据响应之后。
解决方法,可以使每个核真正存取高速缓存块后向主存发回应,然后再允许其它对此块操作的使无效或其它请求。
4.9利用LL-SC操作实现一个Test&Set操作。
答:Test&Set: ll reg1,location /*Load-locked the location to reg1 */bnz reg1,lock /* if locatin was locked,try again*/mov reg2,1 /*set reg2 1*/sc location,reg2 /*store reg2 conditional into location*/4.10在4.7.4部分描述具有感觉反转的路障算法中,如果将Unlock语句不放在if条件语句的每个分支中,而是紧接放在计数器增1语句后,会发生什么问题为什么会发生这个问题答:再进入下一个路障时可能会发生计数器重新清0现象,导致无法越过路障。
考虑如下情景:第一次进入路障时,最后两个进入路障的进程分别为1、2。
假设最后进入路障的进程为2进程,2进程执行共享变量加一操作并解锁。
然后2进程执行一条if条件语句,此时由于某种原因换出或睡眠,而此时共享变量的值已经为p。
如果1进程此时正执行if条件语句,则清零计数器,设置标志,其它进程越过路障。