华工综合的高性能复习题考试复习用综述.docx
《华工综合的高性能复习题考试复习用综述.docx》由会员分享,可在线阅读,更多相关《华工综合的高性能复习题考试复习用综述.docx(23页珍藏版)》请在冰豆网上搜索。
华工综合的高性能复习题考试复习用综述
华工综合的高性能复习题
2008年11月
1.解释以下基本概念
HPC,HPCC,Distributedcomputing,Metacomputing,Gridcomputing
MIMD,SIMD,SISD
PVP,SMP,MPP,DSM,Cluster,Constellation
UMA,NUMA,CC_NUMA,CORMA,NORMA
HPC:
高性能计算是计算机科学的一个分支,研究并行算法和开发相关软件,致力于开发高性能计算机(HighPerformanceComputer)。
计算密集型(Compute-Intensive)应用
数据密集型(Data-Intensive)应用
网络密集型(Network-Intensive)应用
HPCC:
高性能计算和通信(High-PerformanceComputingand
Communications:
HPCC)
分布式高性能计算、高速网络和Internet的使用
分布式计算(DistributedComputing)
更着重于功能而不是性能的增加
网格计算(GridComputing)
分布式高性能计算(Distributed,HighPerformanceComputing:
DHPC),或称元计算(Metacomputing)
单指令单数据流:
SISD普及程度:
MIMD>SIMD>MISD
单指令多数据流:
SIMD
多指令单数据流:
MISD
多指令多数据流:
MIMD
⏹对称多处理(共享存储并行)机(SMP:
SymmetricMultiProcessing);
⏹分布共享存储多处理机(DSM:
DistributedSharedMemory);
⏹大规模并行机(MPP:
MassivelyParallelProcessors);
⏹工作站(微机)机群(COW:
ClusterOfWorkstation、BeowulfPC-Cluster);
⏹并行向量多处理机(PVP:
ParallelVectorProcessors)
均匀访存模型(UMA:
UniformMemoryAccess)
非均匀访存模型(NUMA:
NonuniformMemoryAccess)
Cache一致性非均匀访存模型(CC-NUMA:
Coherent-CacheNonuniformMemoryAccess)
分布式访存模型(DMA:
DistributedMemoryAccess)
2.试比较PVP、SMP、MPP、DSM和Cluster并行机结构的不同点,以典型系统举例说明。
SMP:
对称多处理器,共享存储,高速缓存一致性,低通信延迟,不可扩放性
SSMP:
可扩放共享存储多处理机,共享存储,扩放性好
CC-NUMA:
非均匀存储访问,高速缓存一致性,扩放性好
MPP:
大规模处理器数,分布存储,使用物理分布的存储器和I/O,扩放性好
DSM:
存储器物理分布,通过目录实现共享存储
3.列出常用静态和动态网络的主要参数(节点度、直径、对剖带宽和链路数)以及复杂度、
网络性能、扩展性和容错性等。
常用的标准互联网络有哪些?
并行机规模:
并行机包含的结点总数,或者包含的CPU总数;
结点度:
互联网络拓扑结构中联入或联出的一个结点的边的条数,称为该结点的度;
结点距离:
两个结点之间跨越的图的边的条数;
网络直径:
网络中任意两个结点之间的最长距离;
点对点带宽:
图中边对应的物理联接的物理带宽;
点对点延迟:
图中任意两个结点之间的一次零长度消息传递必须花费的时间。
延迟与结点间距离相关,其中所有结点之间的最小延迟称为网络的最小延迟,所有结点之间的最大延迟称为网络的最大延迟;
折半宽度:
对分网络成两个部分(它们的结点个数至多相差1)所必须去掉的边的网络带宽的总和;
总通信带宽:
所有边的带宽之和
快速以太网、FDDI、Switcher、ATM、Myrinet、nfiniband、Qudrics、HiPPI
4.比较UMA、NUMA(CC-NUMA、COMA、NCC-NUMA)和NORMA存储器体系结构
的主要特征,并以典型系统来说明其优缺点。
UMA(UniformMemoryAccess)模型是均匀存储访问模型的简称。
其特点是:
物理存储器被所有处理器均匀共享;
所有处理器访问任何存储字取相同的时间;
每台处理器可带私有高速缓存;
外围设备也可以一定形式共享。
NUMA(NonuniformMemoryAccess)模型是非均匀存储访问模型的简称。
特点是:
被共享的存储器在物理上是分布在所有的处理器中的,其所有本地存储器的集合就组成了全局地址空间;
处理器访问存储器的时间是不一样的;访问本地存储器LM或群内共享存储器CSM较快,而访问外地的存储器或全局共享存储器GSM较慢(此即非均匀存储访问名称的由来);
每台处理器照例可带私有高速缓存,外设也可以某种形式共享
COMA(Cache-OnlyMemoryAccess)模型是全高速缓存存储访问的简称。
其特点是:
各处理器节点中没有存储层次结构,全部高速缓存组成了全局地址空间;
利用分布的高速缓存目录D进行远程高速缓存的访问;
COMA中的高速缓存容量一般都大于2级高速缓存容量;
使用COMA时,数据开始时可任意分配,因为在运行时它最终会被迁移到要用到它们的地方。
CC-NUMA(Coherent-CacheNonuniformMemoryAccess)模型是高速缓存一致性非均匀存储访问模型的简称。
其特点是:
大多数使用基于目录的高速缓存一致性协议;
保留SMP结构易于编程的优点,也改善常规SMP的可扩放性;
CC-NUMA实际上是一个分布共享存储的DSM多处理机系统;
它最显著的优点是程序员无需明确地在节点上分配数据,系统的硬件和软件开始时自动在各节点分配数据,在运行期间,高速缓存一致性硬件会自动地将数据迁移至要用到它的地方。
NORMA(No-RemoteMemoryAccess)模型是非远程存储访问模型的简称。
NORMA的特点是:
所有存储器是私有的;
绝大数NUMA都不支持远程存储器的访问;
在DSM中,NORMA就消失了。
5.比较并行计算模型PRAM、BSP和logP。
评述它们的差别、相对优点以及在模型化真
实并行计算机和应用时的局限性。
PRAM模型由Fortune和Wyllie1978年提出,又称SIMD-SM模型。
有一个集中的共享存储器和一个指令控制器,通过SM的R/W交换数据,隐式同步计算
优点:
适合并行算法表示和复杂性分析,易于使用,隐藏了并行机的通讯、同步等细节。
缺点:
不适合MIMD并行机,忽略了SM的竞争、通讯延迟等因素
BSP模型
由Valiant(1990)提出的,“块”同步模型,是一种异步MIMD-DM模型,支持消息传递系统,块内异步并行,块间显式同步。
p:
处理器数(带有存储器)
l:
同步障时间(Barriersynchronizationtime)
g:
带宽因子(timesteps/packet)=1/bandwidth
▪计算过程
由若干超级步组成,
每个超级步计算模式为左图
优缺点
强调了计算和通讯的分离,
提供了一个编程环境,易于
程序复杂性分析。
但需要显
式同步机制,限制至多h条
消息的传递等。
logP模型
由Culler(1993)年提出的,是一种分布存储的、点到点通讯的多处理机模型,其中通讯由一组参数描述,实行隐式同步。
模型参数
L:
networklatency
o:
communicationoverhead
g:
gap=1/bandwidth
P:
#processors
注:
L和g反映了通讯网络的容量
优缺点
捕捉了MPC的通讯瓶颈,隐藏了并行机的网络拓扑、路由、协议,可以应用到共享存储、消息传递、数据并行的编程模型中;但难以进行算法描述、设计和分析。
BSPvs.LogP
BSPLogP:
BSP块同步BSP子集同步BSP进程对同步=LogP
BSP可以常数因子模拟LogP,LogP可以对数因子模拟BSP
BSP=LogP+Barriers-Overhead
BSP提供了更方便的程设环境,LogP更好地利用了机器资源
BSP似乎更简单、方便和符合结构化编程
6.比较在PRAM模型和BSP模型上,计算两个N阶向量内积的算法及其复杂度。
设两个向量分别为A和B
PRAM:
Step1:
每个处理器处理A的N/P个数值和B的N/P个数值,共N/P次乘法和N/P次加法
Setp2:
按照树递归方法计算局部和,共logP
BSP:
2n/P+logP*g+logP*l+logP
7.什么是加速比(speedup)、并行效率(efficiency)和可扩展性(scalability)?
如何描
述在不同约束下的加速比?
约束条件:
8.如何进行并行计算机性能评测?
什么是基准测试程序?
P95
基准测试程序(Benchmark)用于测试和预测计算机系统的性能,揭示不同结构机器的长处和短处,为用户决定购买或使用那种机器最合适他们的应用要求提供决策。
/////////////////////////////////////////
9.什么是可扩放性测量标准?
等效率函数的涵义是什么?
什么是可扩放性测量标准:
等效率测度(ffiii)•EfficiencyMetrics)
效率:
加速比/处理器数
简单情况下能得分析结果
•等速度测度(SpeedMetrics)
速度:
每秒处理的数据量
便于通过实验数据得到结果
•平均时延测度(LatencyMetrics)
时延:
理想并行时间与实际并行时间的差距
便于通过实验数据得到结果
等效率函数的涵义:
如果问题规模W保持不变,处理器数p增加,开销To增大,效率E下降。
为了维持一定的效率(介于0与1之间),当处理数p增大时,需要相应地增大问题规模W的值由此定义函数fE(P)为问题规模W随处理器数变化。
fE(p)p的函数,为等效率函数。
10.什么是分治策略的基本思想?
举例说明如何应用平衡树方法、倍增技术、和流水线技术。
并行算法的基本设计技术
•平衡树方法
•倍增技术
•分治策略
•划分原理
•流水线技术
什么是分治策略的基本思想:
将原问题划分成若干个相同的子问题分而治之,若子问题仍然较大,则可以反复递归应用分
治策略处理这些子问题,直至子问题易求解。
举例说明如何应用平衡树方法:
设计思想
树叶结点为输入,中间结点为处理结点,由叶向根或由根向叶逐层并行处理。
•示例P149
求最大值
计算前缀和
举例说明如何应用倍增技术:
设计思想
又称指针跳跃(pointerjumping)技术,特别适合于处理链表或有向树之类的数据结构;
当递归调用时,所要处理数据之间的距离逐步加倍,经过k步后即可完成距离为2k的所有数据的计算。
示例
表序问题P152运行时间:
t(n)=O(logn)p(n)=n(算法610)p(n)是处理器数目
求森林的根P153运行时间:
t(n)=O(logn)(算法611)
举例说明如何应用流水线技术:
设计思想
将算法流程划分成p个前后衔接的任务片断,每个任务片断的输出作为下个任务片断的输入
所有任务片断按同样的速率产生出结果。
示例
脉动算法
11.什么是均匀划分、方根划分、对数划分和功能划分?
如何用划分方法解决PSRS排序、
归并排序和(m,n)选择问题?
划分原理
•设计思想
将原问题划分成p个独立的规模几乎相等的子问题
p台处理器并行地求解各子问题
•划分重点在于:
子问题易解,组合成原问题的解方便
什么是均匀划分、方根划分、对数划分和功能划分:
均匀划分:
n个元素A[1..n]分成p组,每组A[(i-1)n/p+1..in/p],i=1~p
方根划分:
n个元素A[1..n]分成A[(i-1)n^(1/2)+1..in^(1/2)],i=1~n^(1/2),p=n^(1/2)
时间复杂度:
若p=q=n,t(n)=O(loglogn)p(n)=n
对数划分:
n个元素A[1…n]分成A[(i-1)logn+1…ilogn],i=1~n/logn
功能划分:
n个元素A[1..n]分成等长的p组,每组满足某种特性
如何用划分方法解决PSRS排序问题:
如何用划分方法解决归并排序问题:
如何用划分方法解决m,n)选择问题:
12.对于图5.2(a)的加权有向图,试给出一个并行算法,逐步求出D2,D4和D8中各元素,
并给出算法的时间复杂度。
P134
时间分析:
每次矩阵乘时间O(logn)(调用算法9.6,DNS矩阵乘法),共作⎡logn⎤次乘法
t(n)=O(log2n),p(n)=n3
13.并行算法设计的一般过程PCAM是指什么?
各个步骤中的主要判据是什么?
划分(Partitioning)
通信(Communication)
组合(Agglomeration)
映射(Mapping)
•划分:
分解成小的任务开拓并发性
•通信:
确定诸任务间的数据交换,监测划分的合理性
•组合:
依据任务的局部性组合成更大的任务
•映射:
将每个任务分配到处理器上,提高算法的性能
划分判据
•划分是否具有灵活性?
•划分是否避免了冗余计算和存储?
•划分任务尺寸是否大致相当?
•任务数与问题尺寸是否成比例?
•功一是否能分解是种更深层次的分解,合理?
通信判据
•所有任务是否执行大致相当的通信?
•是否尽可能的局部通信?
•通信操作是否能并行执行?
•同步任务的计算能否并行执行?
组合判据
•增加粒度是否减少了通信成本?
•重复计算是否已权衡了其得益?
•是否保持了灵活性和可扩展性?
•组合的任务数是否与问题尺寸成比例?
•是否保持了类似的计算和通信?
•有没有减少并行执行的机会?
映射判据
•采用集中式负载平衡方案,是否存在通信瓶颈?
采用动态负载平衡方案,调度策略的成本如何?
14.什么是域分解和功能分解?
如何将全局通信转换为局部通信?
什么是表面-容积效应
和重复计算?
映射的策略是什么?
什么是域分解和功能分解:
域分解
•划分的对象是数据,可以是算法的输入数据、中间处理数据和输出数据
•将数据分解成大致相等的小数据片
•划分时考虑数据上的相应操作
•如果一个任务需要别的任务中的数据,则会产生任务间的通信
功能分解
•划分的对象是计算,将计算划分为不同的任务,其出发点不同于域分解
•划分后,研究不同任务所需的数据。
如果这些数据不相交的,则划分是成功的;如果数据有相当的重叠,意味着要重新进行域分解和功能分解
•功能分解是一种更深层次的分解
如何将全局通信转换为局部通信:
可以使用分治策略来提高并行性。
表面-容积效应:
通讯量与任务子集的表面成正比,计算量与任务子集的体积成正比;
增加重复计算有可能减少通讯量
重复计算:
重复计算减少通讯量,但增加了计算量,应保持恰当的平衡;
重复计算的目标应减少算法的总运算时间
映射的策略是什么
可并发执行的任务放在不同的处理器上,增强并行度
需要频繁通信的任务置于同一处理器上以提高局部性
15.掌握算法5.2,5.5,6.1,6.4,6.8,6.9,6.10,6.11,9.5,9.6的基本原理。
16.比较并行矩阵乘法Cannon和DNS的时间复杂度和加速比。
•CANNON算法描述:
①对准:
所有块Ai,j(0≤i,j≤)向左循环移动i步;
所有块Bij(0≤ij≤p1
)向上循环移动j步;
p-1
Bi,i,②所有处理器Pi,j做执行Ai,j和Bi,j的乘-加运算;
③移位:
p-A的每个块向左循环移动一步;
B的每个块向上循环移动一步;
④转②执行p-1次;
CANNON时间复杂度:
•算法有p1/2次循环
•在每次循环,有(n/p1/2)×(n/p1/2)的矩阵乘
法:
Θ(n3/p3/2)
•计算复杂度:
Θ(n3/p)
•在每个循环,每个处理器发送和接收两个大小
为(n/p1/2)×(n/p1/2)的数据块
•通信复杂度:
Θ(n2/p1/2)
•串行算法:
Θ(n3)
•并行开销:
Θ(p1/2n2)
DNS:
基本思想:
通过一到一和一到多的播送办法,使得处理器(k,i,j)拥有ai,k和bk,j,进行本地相乘,再沿k方向进行单点积累求和,结果存储在处理器(0,i,j)中
处理器编号:
处理器数p=n3=(2q)3=23q,处理器Pr位于位置(k,i,j),这里r=kn2+in+j,(0≤i,j,k≤n-1)。
位于(k,i,j)的处理器Pr的三个寄存器Ar,Br,Cr分别表示为A[k,i,j],B[k,i,j]和C[k,i,j],初始时均为0
算法描述:
算法:
初始时ai,j和bi,j存储于寄存器A[0,i,j]和
B[0,i,j];
①数据复制:
A,B同时在k维复制(一到一播送)
A在j维复制(一到多播送)
B在i维复制(一到多播送)
②相乘运算:
所有处理器的A、B寄存器两两相乘
③求和运算:
沿k方向进行单点积累求和
时间复杂度:
处理器数目为n3,运行时间为O(logn)
17.熟悉五种主要的并行编程风范,并阐述与并行算法设计技术的关系。
相并行
•一组超级步(相)
•步内各自计算
•步间通信、同步
•BSP(4.2.3)
•方便差错和性能分析
•计算和通信不能重叠
分治并行
•父进程把负载分割并指派给子进程
•递归
•重点在于归并
•分治设计技术(6.2)
•难以负载平衡
流水线并行
•一组进程
•流水线作业
•流水线设计技术(6.5)
主-从并行
•主进程:
串行、协调任务
•子进程:
计算子任务
•划分设计技术(6.1)
与相并行结合
•主进程易成为瓶颈
工作池并行
•初始状态:
一件工作
•进程从池中取任务执行
•可产生新任务放回池中
•直至任务池为空
•易与负载平衡
•临界区问题(尤其消息传递)
18.进程通信的同步方式和聚集方式有哪些?
列举主要的通信模式。
•同步方式:
parfor(i:
=1;iatomic{x:
=x+1;y:
=y-1}
}
路障同步
原子同步:
不可分的操作
控制同步(路障,临界区):
进程的所有操作均必须等待到达某一控制状态
数据同步(锁,条件临界区,监控程序,事件):
使程序执行必须等待到某一数据状态
•聚集方式:
归约(reduction)
扫描(scan)
19.共享存储编程模型和分布存储编程模型的特征有哪些?
举例说明。
•共享存储概况:
PVP,SMP,DSM的自然模型
•特点:
多线程:
SPMD,MPMD
异步
单一地址空间
显式同步
隐式数据分布
隐式通信(共享变量的读/写)
分布式:
多地址空间;消息传递通信;编程、移植困难;可伸缩性好.单地址空间
20.什么是OpenMP的编程模型、体系结构、控制结构和数据域子句?
OpenMP应用编程接口API(Application
ProgrammingInterface)是在共享存储体系结构上的一个编程模型
•基于线程的并行(ThreadBasedParallelism)
一个有多个线程的共享存储进程
显式并行:
编程人员可以控制并行化
•基于编译制导(CompilerDirectiveBased)
并行化是通过嵌在C/C++或Fortran源码中的编译制导来说明的
•支持嵌套并行化(NestedParallelismSupport)
并行区域可以嵌套其他的并行区域
•支持动态线程(DynamicThreads)
可以改变并行区域中执行的线程数目
体系结构:
控制结构:
并行域结构
parallel
•共享工作结构
sections,for,single
•组合的并行共享工作结构
parallelfor,parallelsection
•同步结构
master,critical,barrier,atomic,flush,ordered
数据域子句:
•数据域属性子句(Datascopeattribute
clauses):
显式地定义变量的作用范围
private子句
shared子句
default子句
firstprivate子句
lastprivate子句
copyin子句
reduction子句
•Dataenvironment(数据环境)
threadprivate编译制导语句
21.什么是MPI的消息、数据类型、通信域?
如何应用MPI的扩展数据类型?
一个消息好比一封信,消息的内容即信的内容,在MPI中成为消息缓冲,消息的接收者即信的地址,在MPI中成为消息封装
MPI的消息类型分为两种:
预定义类型和派生数据类型.派生数据类型:
MPI通过提供预定义数据类型来解决异构计算中的互操作性问题,建立它与具体语言的对应关系;MPI引入派生数据类型来定义由数据类型不同且地址空间不连续的数据项组成的消息;
进程集合加上通信频道被称为通信域,通信域包括进程组和通信上下文等内容,用于描述通信进程间的通信关系。
22.什么是MPI的阻塞通信和非阻塞通信?
点到点通信模式有哪些?
MPI群集通信模式?
阻塞通信:
必须等到消息从本地送出之后才可以执行后续的语句
非阻塞通信:
不必须等到消息从本地送出之后就可以执行后续的语句。
点到点通信:
共有下面四种通信模式
同步(synchronous)通信模式
缓冲(buffered)通信模式
标准(standard)通信模式
就绪(ready)通信模式
•群集通信,按照通信方向的不同,又可以分为三种:
一对多通信,多对一通信和多对多通信
•一对多通信:
一个进程向其它所有的进程发送消息,这个负责发送消息的进程叫做Root进程
•多对一通信:
一个进程负责从其它所有的进程接收消息,这个接收的进程也叫做Root进程
•多对多通信:
每一个进程都向其它所有的进程发送或者接收消息
23.试用OpenMP和MPI编写计算pai的程序。
24.了解求计算内积、排序、串匹配、cannon和DNS等算法的MPI和OpenMP实现。
25.什么