您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > MPI并行计算考试简答题
并行计算机分类什么是SIMD并行计算机?可以同时执行一条指令处理多个数据的计算机什么是MIMD并行计算机?可以同时执行多条指令处理多个数据的计算机什么是SPMD并行计算机?同时执行一个程序处理多个数据的计算机什么是MPMD并行计算机?同时执行多个程序处理多个数据的计算机什么是分布式内存并行计算机?各处理器不共享内存的并行计算机什么是共享内存并行计算机?处理器共享内存的并行计算机并行编程模式隐式并行、数据并行、消息传递、共享变量现在串行编程语言几乎都是高级语言,为什么在并行计算领域编程语言却还相对级别较低?并行计算目前还缺乏统一的模型和标准你知道的并行语言有哪些?HPF,各种并行C,并行C++,并行PASCAL你认为串行语言和并行语言的区别有哪些?是否提供并行的结构,是否提供并行的语义并行算法的分类是怎样的?粗粒度/细粒度并行算法,同步/异步并行算法同步并行算法在具有什么特点的并行计算机上可以高效实现?SIMD类并行计算机粗粒度的并行算法在什么条件下性能优于细粒度的并行算法?并行的粒度越小就有可能开发更多的并行性提高并行度这是有利的方面但是另一个不利的方面就是并行的粒度越小通信次数和通信量就相对增多这样就增加了额外的开销,因此合适的并行粒度需要根据计算量、通信量、计算速度、通信速度进行综合平衡这样才能够取得高效率。一个好的并行算法的前提是什么?一个好的并行算法要既能很好地匹配并行计算机硬件体系结构的特点又能反映问题内在并行性如何设计适合机群系统的并行算法?对于机群系统一次通信的开销要远远大于一次计算的开销,因此要尽可能降低通信的次数或将两次通信合并为一次通信,基于同样的原因,机群计算的并行粒度不可能太小,因为这样会大大增加通信的开销,如果能够实现计算和通信的重叠那将会更大地提高整个程序的执行效率。并行算法的一般设计过程:PCAM设计过程该过程分为四步:任务划分、通信分析、任务组合和处理器映射,简称PCAM设计过程。MPI是不是一门并行语言?为什么?不是,它只是一个消息传递库目前MPI支持哪些语言?FORTRAN77/C/Fortran90/C++MPI的三个主要目标是什么?功能强/移植性好/性能高目前MPI的主要免费实现有哪些?MPICH/LAM/CHIMPMPI环境定义的三种缓冲区应用缓冲区、系统缓冲区、用户向系统注册的通信用缓冲区。MPI程序一般分为几个部分?1头文件2变量声明3程序开始4程序体5程序结束MPI程序中的输出语句和一般串行程序中输出语句的执行结果有什么不同?MPI程序中的输出语句每一个进程都执行,执行时有几个进程就有几条输出语句,而串行程序中输出语句只有本进程输出结果。不同进程对同一个内容的输出,其顺序是什么?是随机的。编写一个C+MPI的程序,实现每一个进程都打印出自己的进程号,总的进程数,本进程所在的机器名以及SAYHELLOTOMPI。#includempi.h#includestdio.h#includemath.hintmain(intargc,char**argv){intmyid,numprocs;intnamelen;charprocessor_name[MPI_MAX_PROCESSOR_NAME];MPI_Init(&argc,&argv);/*程序初始化*/MPI_Comm_rank(MPI_COMM_WORLD,&myid);/*得到当前进程号*/MPI_Comm_size(MPI_COMM_WORLD,&numprocs);/*得到总的进程数*/MPI_Get_processor_name(processor_name,&namelen);/*得到机器名*/fprintf(stderr,Process%dof%dSAYHELLOTOMPIon%s\n,myid,numprocs,processor_name);MPI_Finalize();/*结束*/return0}为了实现基本的MPI通信功能,至少需要几个MPI调用?不多于6个MPI程序的第一条和最后一条可执行语句应为什么语句,如果不是这些语句,会导致什么样的后果?初始化和结束语句,否则后果不可预测MPI消息传递包括哪几个阶段?组装,传递,拆卸MPI消息的组成是怎样的?消息信封和消息内容任意源和任意标识的作用是什么?提供对不特定源和标识的匹配编写一个简单的实现发送和接收功能的程序。#includempi.hmain(argc,argv)intargc;char**argv;{charmessage[20];intmyrank;MPI_Init(&argc,&argv);/*MPI程序的初始化*/MPI_Comm_rank(MPI_COMM_WORLD,&myrank);/*得到当前进程的标识*/if(myrank==0)/*若是0进程*/{/*先将字符串拷贝到发送缓冲区message中,然后调用MPI_Send语句将它发出,用strlen(message)指定消息的长度,用MPI_CHAR指定消息的数据类型,1指明发往进程1,使用的消息标识是99,MPI_COMM_WORLD是包含本进程(进程0)和接收消息的进程(进程1)的通信域。发送方和接收方必须在同一个通信域中。由通信域来统一协调和控制消息的发送和接收*/strcpy(message,Hello,process1);MPI_Send(message,strlen(message),MPI_CHAR,1,99,MPI_COMM_WORLD);}elseif(myrank==1)/*若是进程1*/{/*进程1直接执行接收消息的操作,这里它使用message作为接收缓冲区,由此可见,对于同一个变量,在发送进程和接收进程中的作用是不同的。它指定接收消息的最大长度为20,消息的数据类型为MPI_CHAR字符型,接收的消息来自进程0,而接收消息携带的标识必须为99,使用的通信域也是MPI_COMM_WORLD,接收完成后的各种状态信息存放在status中。接收完成后,它直接将接收到的字符串打印在屏幕上。*/MPI_Recv(message,20,MPI_CHAR,0,99,MPI_COMM_WORLD,&status);printf(received:%s:,message);}MPI_Finalize();/*MPI程序结束*/}指出下面两条调用的消息数据和消息信封部分MPI_SEND(buf,count,datatype,dest,tag,comm)MPI_RECV(buf,count,datatype,source,tag,comm,status)在MPI中如何计时?使用MPI_WTIME函数如何终止MPI程序的执行?使用MPI_ABORT调用什么是安全的发送和接收序列?一个进程先执行发送操作,另一个进程先执行相应的接收操作。什么是注定要死锁的发送和接收序列?两个进程都先执行接收操作,再执行发送操作什么是不安全的发送和接收序列?两个进程都先执行发送操作什么是主从模式的MPI程序设计,有何特点?主从模式的MPI程序中不同的进程分工是不同的,比如可以是有的负责数据的收集,有的负责数据的处理,而有的负责数据的输出,他们所起的作用是不同的。什么是对等模式的MPI程序设计,它又有什么特点?对于对等模式的MPI程序,每一个进程都进行类似的工作,相互之间没有特别的不同,在代码上表现为各进程可重用的代码非常多。什么是标准通信模式?举例说明。用户不需要对缓冲区进行管理,一切由MPI环境进行管理比如MPI_SEN、MPI_RECV语句。什么是缓存通信模式?举例说明。用户必须提供缓冲区并提供对缓冲区的管理,比如MPI_BSEND语句什么是同步通信模式?举例说明。发送调用的返回意味着接收操作已经开始,比如MPI_SSEND语句。什么事就绪通信模式?举例说明。必须等到接收操作开始后才能够发送的调用,比如MPI_RSEND语句。除了标准通信模式外,其它三种通信模式有没有接收调用的形式?没有。非阻塞通信的基本特点是什么?通信语句的调用不必等到通信的完成。非阻塞通信可以分为那些不同的种类?可以有非阻塞发送和非阻塞接收两大类。什么是组通信?组通信有两个基本的特点,一是组内所有的进程都参加,二是各进程组通信调用的参数形式是一致的。组通信和点到点通信的主要区别是什么?组通信需要多方参加,而点到点通信需要两方参加;组通信中各进程的调用形式是一致的,而点到点通信则在调用形式上有不同。组通信中实现通信功能的调用有那些?主要有广播、散发、收集、全互换等组通信中那个调用可以实现同步功能?MPI_Barrier调用组通信中实现计算功能的调用有那些?有归约、组归约、扫描等调用显式指针文件操作和独立指针文件操作的主要区别是什么?显式文件指针操作必须指定文件读取得位置,而独立指针文件操作只是从当前文件指针的位置开始读写操作。线程(thread)是进程上下文(context)中执行的代码序列,又被称为轻量级进程(lightweightprocess) 在支持多线程的系统中,进程是资源分配的实体,而线程是被调度执行的基本单元。线程与进程的区别区别一:调度区别二:并发性区别三:拥有资源区别四:系统开销第六章:OpenMPOpenMP概述编译制导语句其他的见课件12~60页4、简述MPI点对点通信与MPI集合通信的区别。1)在通信子中的所有进程都必须调用相同的集合通信函数。2)每个进程传递给MPI集合通信函数的参数必须是“相容的”。3)参数output_data_p只用在dest_process上。然而,所有进程仍需要传递一个与output_data_p相对应的实际参数,即使它的值只是NULL。4)点对点通信函数是通过标签和通信子来匹配的。集合通信函数不使用标签,只通过通信子和调用的顺序来进行匹配。聚合通信函数根据数据的流向可分为一对多(一个进程对多个进程,如广播、数据散发)、多对一(多个进程对一个进程,如数据收集、归约)和多对多(多个进程对多个进程)三种类型的操作.在一对多和多对一操作中,有一个进程扮演着特殊的角色,称为该操作的根进程(root).x5、简述并行计算机的三种内存架构。答:1.共享内存2.分布式内存3.混合型分布式共享内存
本文标题:MPI并行计算考试简答题
链接地址:https://www.777doc.com/doc-2888929 .html