第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和存储器的基本性能指标包括:工作负载,并行执行时间,存储器的层次结构和存储器的带宽。b.并行系统的加速比,是指对于一个给定的应用,并行算法的执行速度相对于串行算法的执行速度另快了多少倍。c.加速比并不能完全确定系统的性能;因为评价并行计算性能的指标,除了加速比外,并行计算的可扩放性也是主要性能指标之一即并行系统性能随处理器数的增加而按比例提高的能力。(个人理解的,大家参考第三章吧~)第4题节点度的定义?它在并行计算中的作用。(第9页)作用:百度也没找到答案。定义:射入或射出一个节点的边数称为节点度。在单向网络中,入射和出射边之各称为节点度。第5题等效率函数的定义、作用及应用。(P89)参考答案:为了维持一定的效率E(介于0与1之间),当处理器数p增大时,需要相应地增大问题规模W的值。由此定义函数为问题规模W随处理器数P变化的函数,称此函数为等效率函数。等效率函数是等效率度量标准,而等效率度量是并行计算可扩放性评测的依据之一。应用举例:按照等效率函数的定义,对于某一并行算法(或并行程序),为了维护运行效率保持不变,随着处理器数目的增加,若只需增加较小的工作量(即问题规模),比如说W随p呈线性或亚线性增长,则表示该算法具有良好的可扩放性;若需要增加非常大的问题规模,比如说W随p呈指数级增长,则表示该算法是不可扩放的。第6题6.1等速度函数的定义,作用及应用?答:该题的答案在课本P90-P91面。可以自行参考课本复习。6.2表面-容积效应的定义及应用?答:该题答案在课本P168面(2,3,4段)。同学们可以参考复习。第7题页数:P164全局通信:是指有很多任务参与交换数据的一种通信模式,全局通信中,每个任务与很多别的任务通信。局部通信:局部通信时,每个任务只与较少的几个近邻通信。结构化通信:结构化通信值,一个任务和其近邻形成规整结构(如树、网格等)。非结构化通信:非结构化通信中,通信网则可能是任意图。第8题表面—容积效应的定义、应用?(P168)答:定义是一个任务的通信需求比例于它所操作的子域的表面积,而计算需求却比例于子域的容积。其应用是:表面—容积效应启发我们,在其他条件等同的情况下,高维分解一般更有效,因为相对于一个给定的容积(计算)它减少的表面积(通信),因此从效率的角度,增加力度的最好办法是在所有的维组合任务。第9题mpi编程模型中的基本通信概述MPI(MessagePassingInterface)定义:MPI是94年5月发布的一种消息传递接口。它实际上是一个消息传递函数库的标志说明,吸取了众多消息传递系统的优点,是目前国际上最流行的并行编程环境之一。具有的优点:具有可移植性和易用性,有完备的异步通信功能;有正式和详细的精确定义。何为通信体:在基于MPI编程模型中,计算是由一个或多个彼此调用库函数进行消息收、发通信的进程所组成。所谓通信体,就是一个进程组加上进程活动环境,其中进程组就是一组有限和有序的进程的集合。最基本的MPI:MPI_INIT:启动MPI计算;MPI_FINALIZE:结束MPI计算;MPI_COMM_SIZE:确定进程数;MPI_COMM_RANK:确定自己的进程的标识符;MPI_SEND:发送一条消息;MPI_RECV:接受一条消息;群体通信:群体通信提供了MPI中独立的安全的消息传递。不同的通信库使用了独立的通信体,它隔离了内部和外部的通信,避免了在通信库被调用的和退出时的同步,也保证了在同一通信体的通信操作胡不干扰。点到点通信的数据传送有阻塞和非阻塞两者机制;阻塞和非阻塞有四种通信模式:1、标准模式;2、缓冲模式;3、同步模式;4、就绪模式;第10题什么事共享存储并行编程?P323第二段在共享存储的编程模式中,各个处理器可以对共享存储器中的数据进行存取,数据对每个处理器而言都是可访问到的,不需要在处理器之间进行传送,即数据通信时通过读/写共享存储单元来完成.它的基本思路是什么?P323第三段粗体字1任务划分;2任务调度2.1静态调度2.1.1确定模式2.1.2非确定模式2.2动态调度3.任务同步4任务通信.第11题MPI基本函数有哪些?每一个函数的作用及使用?参考:352页。每一函数的作用:参考352~353页①有六个基本函数MPI_INIT:启动MPI计算;MPI_FINALIZE:结束MPI计算;MPI_COMM_SIZE:确定进程数;MPI_COMM_RANK:确定自己的进程标识符;MPI_SEND:发送一条消息;MPI_RECV:接收一条消息;第12题找不到第13题MPI的基本函数有哪些?每个函数的作用及使用?MPI中有1.doubleMPI_Wtime(void)取得当前时间,计时的精度有doubleMPI_Wtick(void)取得C/C++time.h有clock_tclock(void)取得当前时间,计时的精度有常数CLOCKS_PER_SEC定义。2.IntMPI_Init(int*argc,char***argv)MPI的初始化例行函数,用于初始化MPI运行的环境,必须调用,还是首先调用,仅调用一次。3.MPI_Finalize(void)结束MPI执行的环境,该函数一旦被调用,就不能调用MPI的其它的函数(包括MPI_init)4.MPI_Send(void*buf,intcount,MPI_Datatypedatatype,intdest,inttag,MPI_Commcomm)将缓冲区的count个datatype数据类型的数据发送到目的进程阻塞型:需要等待指定的操作的实际完成,或至少所涉及的数据被MPI系统完全的备份后才返回如:MPI_Send和MPI_Recv都是阻塞型的。5.MPI_Recv(void*buf,intcount,MPI_Datatypedatatype,intsource,inttag,MPI_Commcomm.,MPI_Status*status)从指定进程source接收信息,并且该数据的类型和本接收进程指定的数据类行一样6.MPI_Isend(void*buf,intcount,MPI_Datatypedatatype,intdest,inttag,MPI_Commcomm.,MPI_Requst*request)非阻塞地发送信息。在发送数据完成之前,对数据操作是把安全的,因为随时可能与正在后台执行的MPI操作发生冲突。所以用户使用非阻塞型发送数据必须调用其他函数来等待或查询操作完成的情况。该函数递交一个信息发送的请求MPI系统在后台完成消息的发送,请求的句柄通过Request变量返回给MPI进程,供随后查询/等待消息的完成用注意:阻塞型和非阻塞型相差一个I。7.MPI_Wait(MPI_Request*request,MPI_Status*status)通信请求的完成与检测MPI_Wait是阻塞型函数,必须等待通信的完成才返回。该检测函数等待,检测一个通信器请求的完成成功返回时,status中包含关于所完成的通信的信息,相应的通信请求被释放,request被程MPI_REQUST_NULL。8.MPI_Test(MPI_Request*request,int*flag,MPI_Status*status)MPI_TEST与MPI_Wait刚好相反的。MPI_TEST是非阻塞函数该函数检测指定的通信请求,不论通信是否完成都立刻返回9.MPI_Iprobe(intsource,inttag,MPI_Commcomm.,int*flag,MPI_Status*status)消息的探测函数是属于非阻塞函数,它不论是否有符合条件的消息都立刻返回10.MPI_Probe(intsource,inttag,MPI_Commcomm.,MPI_Status*status)消息的探测检查要接收的信息是否到达信息到达了才能返回MPI_Probe属于阻塞型函数,它等待直到一个符合条件的消息到达后才返回如果探测到符合条件的消息flag=true,否则flag=false11.MPI_Get_count(MPI_Status*status,MPI_Datatypedatatype,int*count)该函数返回以指定的数据类型为单位,接收到数据的个数,接收信息是使用的是最大个数,搞函数准确地知道接收信息的个数12.MPI_Type_contiguous(intcount,MPI_Datatypeoldtype,MPI_Datatype*newtype)新数据类型newtype由count个老数据类型olodtype按域(extent)连续存放构成.新定义数据类型函数。如:count=5,OLDTYPE=INYTRGER,则新的数据类型NEWTYPE为5个整数13.MPI_Type_vector(intcount,intblocklength,intstride,MPI_Datatypeoldtype,MPI_Datatype*newtype)新数据类型newtype由count个数据块构成。每个数据块由blockelength个连续存放的oldtype构成。相邻的两个数据块的位移相差stridexextent(oldtype)个字节新定义数据类型如:count=3,BLOCKLENGTH=2,STRIDE=3,OLDTYPE=INTEGER,则调用此函数后得到的新的数据类型NEWTYPE为6个整数组成,其中在原始数组中从开始取2个隔1隔再取2个,再隔一个取2个构成14..MPI_Type_indexed(intcount,intarray_of_blocklengths,int*array_of_displacements,MPI_Datatype,oldtype,MPI_Datatype*newtype)新的数据类型newtype由count个数据块构成,第i个数据块包含arry_of_blocklengths(i)个连续存放的oldtype,字节位移为arry_of_displacements(i)*extent(oldtype)。ARR