并行计算总复习之秘笈
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并行计算总复习
第一章:
1并行计算与串行计算在算法和编程上有哪些显著差异?
答:·并行算法设计与并行计算机处理器的拓扑连接相关
·并行算法设计和采用的并行计算模型有关。
·并行计算有独自的通讯函数
·并行算法设计时,如何将问题分解成独立的子问题是科学研究问题,并非所有的问
题都可以进行分解。
2多核与多处理机的异同点?
多处理机:把多个处理器通过网络互连形成一个新机器。可以是专用,也可以是通用。拓扑连接是可以改变的。
多核:在过去单个处理器芯片上实现多个“执行核”。但这些执行核都有独立的执行命令集合和体系结构。这些独立的执行核+超线程SMT技术组成多核处理器
3对单处理器速度提高的主要限制是什么?
答:晶体管的集成密度,功耗和CPU表面温度等
第二章
1 SIMD 和MIMD 所代表的计算模型是什么?主要区别和各自的系统结构示意图。SPMD的含义是什么?
SIMD指单指令多数据流模型;MIMD指多指令多数据流模型;
SPMD指单程序多数据流模型,在SIMD中把指令改为程序表示每个处理器并行的执行程序。
SIMD MIMD
硬件较少处理器较多处理器
内存一个寻址系统,存储
量小多个寻址系统,存储量大
耗费较高,难开发易于开发(多个商业
组件可用)
加速高取决于应用
2 若按通讯方式对并行算法进行分类有几种分类方法,各自的特点是什么?
基于共享地址空间:并行平台支持一个公共的数据空间,所有处理器都可以访问这些空间。处理器通过修改存储在共享地址空间的数据来实现交互。
基于消息传递:消息传递平台有p个处理节点构成,每个节点有自己的独立地址空间。运行在不同节点上的进程之间的交互必须用消息来完成,称为消息传递。这种消息交换用来传递数据、操作以及使多个进程间的行为同步。
3 在理想并行计算模型中(并行随机访问计算机parallel random access machine(PRAM), EREW, ERCW CREW, 和CRCW表示的意思是什么?
EREW:互斥读互斥写,这一类的PRAM独占访问内存单元,不允许并发的读写操作。最弱的PRAM模型,对内存访问提供最小的并发性。
CREW:并发读互斥写。对内存单元允许多读,但对内存位置多写是串行的
ERCW:互斥读并发写。对内存单元允许多写,但多读是串行的。
CRCW:并发读并发写。对内存单元允许多读多写。最强大
4 能画出多处理机系统中处理单元的基本互连结构图,Mesh, hypercube, 网络,注意对顶点
编号的要求。
Mesh:
二维网格中每个维有sqrt(p)个节点,p为处理器的数目。
hypercube:p为处理器数目,超立方体结构有logP维,每维上有两个节点
一个前面加1实现,这样标号0110的节点和标号0101的节点相隔两个链路因为他们有两位
不同,性质以此类推。
网络:
设p个处理器processor(输入),p个存储区bank(输出);该网络有sqrt(p)级
输入:i;输出:j
j=2i,0<=i<=p/2-1;
j=2i+1-p, p/2<=i<=p-1.
数据选路时,假设从s(二进制表示)传送到t,从最高位起开始比较,相同的位走直通,不同的位走交叉。
5 知道对静态网络的常用测度:直径,连通性,二分宽度(bisection width), cost.
直径:网络中两个处理节点之间的最长距离称为网络直径。(越小越好)
连通性:网络中任意两个节点间路径多重性的度量。连通性的一个度量是把一个网络分成两个不连通的网络需要删除的最少弧数目。(越大越好)
二分宽度:把网络分成两个相等网络时必须删去的最小通信链路数目。(越大越好)
cost:网络中所需的通信链路的数量或线路数量。
6 能说出一种解决多处理器系统中cache和内存数据一致性问题的方法。(侦听和基于目录)用无效协议维持一致性,并用基于目录的系统来实现一致性协议。
基于目录:
为全局内存增加一个目录,维护一个bitmap,表示已缓存的处理器及相应的数据项状态。三状态协议含有无效、脏以及共享三种状态。
工作原理:当一个处理器P1修改了共享数据,P1修改bitmap,state 为dirty,它自己可以继续修改。当另一处理器P2需要读该数据,目录告诉它p1目前拥有该数据,并通知p1更新状态,并把数据送给P2.
优点:减少数据无谓的移动和更新(把空间分的更细)
缺点:连接复杂性高O(mp)
7 能给出store-and-forward routing 和cut-through routing的思想。通讯费用是如何计算的?延迟时间,t s, t h, t w
store-and-forward routing :在此过程中,消息穿过有多个链路的路径时,路径上的每个中间节点接受和存储完整的消息后,就把消息转发给下一个节点。
T = t s+(m t w+ t h )l ,t h 为消息头导致的开销。l 为链路数。m 为消息字长。
cut-through routing :在此过程中,消息被分成固定大小的单元,称为数据片。首先从源节点向目的节点发送跟踪程序以建立两点间的连接。连接完成后,数据片就一个接一个的发送。中间节点无需等待所有消息到达就可以发送数据片。当某一数据片被中间节点接收后,该数据片被传到下一节点。与store-and-forward routing 不同,每个中间节点无需用缓冲区空间存储完整的信息。因此,中间节点只需要使用更少的内存和带宽,速度也快得多。
T = t s + m t w + t h*l ,t h 为消息头导致的开销。l 为链路数。m 为消息字长。 Tcomm= ts+lth+mtw ;
1)startuptime (Ts): 在数据包上加上必要的头、尾信息,错误检测矫正信息、执行路由算法时间以及建立节点与路由器之间的接口。
2)per-hop time (Th): node latency from u to v;
3 )per-word-transfer time(Tw)(每个字的传输时间),如果通道带宽为r 个字符每秒,每个字符的传输时间为Tw=1/r
8 对Mesh 的X-Y_routing 和对Hypercube 的E-Cube routing 的路由规则。
Mesh 的X-Y_routing :消息首先沿X 为出发,直到到达目标节点的列,再沿Y 维到达目的节点。其路径长度为L = |Sx-Dx|+|Sy-Dy|;Sx ,Sy 为源节点坐标;Dx ,Dy 为目标节点坐标。 Hypercube 的E-Cube routing :考虑节点数为p 的d 维超立方体。令Ps 和Pd 分别为源节点和目标节点的编号。在E-Cube 算法中,节点Ps 计算Ps (+) Pd 的值并沿k 维发送消息,其中k 是Ps (+) Pd 中的最低非零有效位的位置。每个中间节点Ps 收到信息,计算出Ps (+) Pd ,再将消息沿着与最低非零有效位对应的维转发,直到消息到达目标节点。
9 如何把linear array, mesh 和hypercube 相互嵌入?G(i,d)函数的计算。 ·linear array 嵌入到hypercube :
含2d 个节点的linear array 可以嵌入到d 维超立方体中,只需把linear array 中的节点i 映射到hypercube 的节点G (i,x )上。函数G (i ,x )定义如下: G (0,1)=0; G (1,1)=1;
G (i ,x+1)= G (i ,x ) i<2x G (i ,x+1)=2x +G(21+x -1-i,x) i ≥2x
(已知d 位葛莱码,对原项加前缀0,反映项加前缀1,可得到d+1位葛莱码)
·mesh 嵌入到hypercube :
将s r 22⨯mesh 嵌入到到s r +2个节点的hypercube 中,只须将mesh 上的节点(i,j )映射到hypercube 的节点G(i,r-1)||G(j,s-1)上,即node(i,j) —>G(i,r-1)||G(j,s-1)
·mesh 嵌入到linear array