欢迎来到天天文库
浏览记录
ID:59253932
大小:1.04 MB
页数:9页
时间:2020-09-08
《MPI并行计算考试简答题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、并行计算机分类什么是SIMD并行计算机?可以同时执行一条指令处理多个数据的计算机什么是MIMD并行计算机?可以同时执行多条指令处理多个数据的计算机什么是SPMD并行计算机?同时执行一个程序处理多个数据的计算机什么是MPMD并行计算机?同时执行多个程序处理多个数据的计算机什么是分布式内存并行计算机?各处理器不共享内存的并行计算机什么是共享内存并行计算机?处理器共享内存的并行计算机并行编程模式隐式并行、数据并行、消息传递、共享变量现在串行编程语言几乎都是高级语言,为什么在并行计算领域编程语言却还相对级别较低?并行计算目前还缺乏统一的模型和标准你知道的并行语言有
2、哪些?HPF,各种并行C,并行C++,并行PASCAL你认为串行语言和并行语言的区别有哪些?是否提供并行的结构,是否提供并行的语义并行算法的分类是怎样的?粗粒度/细粒度并行算法,同步/异步并行算法同步并行算法在具有什么特点的并行计算机上可以高效实现?SIMD类并行计算机粗粒度的并行算法在什么条件下性能优于细粒度的并行算法?并行的粒度越小就有可能开发更多的并行性提高并行度这是有利的方面但是另一个不利的方面就是并行的粒度越小通信次数和通信量就相对增多这样就增加了额外的开销,因此合适的并行粒度需要根据计算量、通信量、计算速度、通信速度进行综合平衡这样才能够取得高
3、效率。一个好的并行算法的前提是什么?一个好的并行算法要既能很好地匹配并行计算机硬件体系结构的特点又能反映问题内在并行性如何设计适合机群系统的并行算法?对于机群系统一次通信的开销要远远大于一次计算的开销,因此要尽可能降低通信的次数或将两次通信合并为一次通信,基于同样的原因,机群计算的并行粒度不可能太小,因为这样会大大增加通信的开销,如果能够实现计算和通信的重叠那将会更大地提高整个程序的执行效率。并行算法的一般设计过程:PCAM设计过程该过程分为四步:任务划分、通信分析、任务组合和处理器映射,简称PCAM设计过程。MPI是不是一门并行语言?为什么?不是,它只是
4、一个消息传递库目前MPI支持哪些语言?FORTRAN77/C/Fortran90/C++MPI的三个主要目标是什么?功能强/移植性好/性能高目前MPI的主要免费实现有哪些?MPICH/LAM/CHIMPMPI环境定义的三种缓冲区应用缓冲区、系统缓冲区、用户向系统注册的通信用缓冲区。MPI程序一般分为几个部分? 1头文件 2变量声明 3程序开始 4程序体5程序结束MPI程序中的输出语句和一般串行程序中输出语句的执行结果有什么不同?MPI程序中的输出语句每一个进程都执行,执行时有几个进程就有几条输出语句,而串行程序中输出语句只有本进程输出结果。不同进程对同一个
5、内容的输出,其顺序是什么?是随机的。编写一个C+MPI的程序,实现每一个进程都打印出自己的进程号,总的进程数,本进程所在的机器名以及"SAYHELLOTOMPI"。#include"mpi.h" #include #include intmain(intargc,char**argv) { intmyid,numprocs; intnamelen; charprocessor_name[MPI_MAX_PROCESSOR_NAME]; MPI_Init(&argc,&argv);/*程序初始化
6、*/ 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",myid,numprocs,processor_name); MPI_Finalize();/*结束*/ret
7、urn0 }为了实现基本的MPI通信功能,至少需要几个MPI调用?不多于6个MPI程序的第一条和最后一条可执行语句应为什么语句,如果不是这些语句,会导致什么样的后果?初始化和结束语句,否则后果不可预测MPI消息传递包括哪几个阶段?组装,传递,拆卸MPI消息的组成是怎样的?消息信封和消息内容任意源和任意标识的作用是什么?提供对不特定源和标识的匹配编写一个简单的实现发送和接收功能的程序。 #include"mpi.h" main(argc,argv) intargc; char**argv; { charmessage[20]; intm
8、yrank; MPI_Init(&argc,&argv);
此文档下载收益归作者所有