并行计算期末试题理工.doc
- 文档编号:1222022
- 上传时间:2023-04-30
- 格式:DOC
- 页数:7
- 大小:209.50KB
并行计算期末试题理工.doc
《并行计算期末试题理工.doc》由会员分享,可在线阅读,更多相关《并行计算期末试题理工.doc(7页珍藏版)》请在冰点文库上搜索。
并行计算期末试题
适用专业:
理工类
考试说明:
1、将试卷答案以学号命名为word文件,如115042101.doc,上传到ftp:
//172.17.124.203/upload。
2、第一、二大题,直接将答案写在题后;第三、四题要求将程序补充、编写完整并将运行结果截图插在题目后面。
一、简述题(每小题4分,共20分)。
1、简述openmp编译制导指令master,single,critical,atomic的功能。
1.master制导语句指定代码段只能被主线程执行
2.single编译制导语句指定内部代码只能由线程组中的一个线程执行。
线程组中没有执行single语句的线程会一直等待代码块的结束,使用nowait子句除外。
3.critical制导语句表明域中的代码一次只能由一个线程执行,其他线程被阻塞在临界区
4.atomic制导语句指定特定的存储单元将被原子更新
2、简述openmp编译制导子句shared,private的功能?
简述openmp编译制导指令threadprivate的功能。
1.private子句表示它列出的变量对于每个线程是局部的。
2.shared子句表示它所列出的变量被线程组中所有的线程共享,所有线程都能对它进行读写访问。
3.threadprivate语句使一个全局文件作用域的变量在并行域内变成每个线程私有,每个线程对该变量复制一份私有拷贝并在多个并行域中保持。
3、简述openmp函数omp_set_num_threads,omp_get_num_threads,omp_get_thread_num的功能;环境变量OMP_NUM_THREADS的功能。
omp_set_num_threads
omp_get_num_threads
omp_get_thread_num
OMP_NUM_THREADS:
定义执行中最大的线程数
4、简述MPI点对点通信与MPI集合通信的区别。
1)在通信子中的所有进程都必须调用相同的集合通信函数。
2)每个进程传递给MPI集合通信函数的参数必须是“相容的”。
3)参数output_data_p只用在dest_process上。
然而,所有进程仍需要传递一个与output_data_p相对应的实际参数,即使它的值只是NULL。
4)点对点通信函数是通过标签和通信子来匹配的。
集合通信函数不使用标签,只通过通信子和调用的顺序来进行匹配。
5、简述并行计算机的三种内存架构。
答:
1.共享内存2.分布式内存3.混合型分布式共享内存
二、与并行计算相关的名词术语翻译(英译汉,每小题1分,共20分)。
1、Task任务
2、ParallelTask并行任务
3、SerialExecution串行执行
4、ParallelExecution并行执行
5、Pipelining流水线技术
6、SharedMemory共享内存
7、SymmetricMulti-Processor(SMP)对称多处理器
8、DistributedMemory分布式存储
9、Communications通信
10、Synchronization同步
11、Granularity粒度
12、ObservedSpeedup测量加速比
13、ParallelOverhead并行开销
14、MassivelyParallel大规模并行
15、EmbarrassinglyParallel易并行计算
16、Scalability可扩展性
17、Multi-coreProcessors多核处理器
18、ClusterComputing集群计算
19、Supercomputing/HighPerformanceComputing高性能计算
20、Cloudcomputing云计算
三、补充程序(每小题10分,共30分)
1、下列OpenMP程序要求运行时获取每个线程的id号并输出,主线程获取总的线程数并输出。
请补充适当的OpenMP编译制导指令和函数调用,要求运行时启动4个线程。
#include
#include
intmain(intargc,char*argv[]){
intnthreads,tid;
/*Forkateamofthreadswitheachthreadhavingaprivatetidvariable*/
#pragmaompparallelprivate(tid)
{
/*Obtainandprintthreadid*/
tid=omp_get_thread_num();
printf("HelloWorldfromthread=%d\n",tid);
/*Onlymasterthreaddoesthis*/
if(tid==0)
{
nthreads=omp_get_num_threads();
printf("Numberofthreads=%d\n",nthreads);
}
}/*Allthreadsjoinmasterthreadandterminate*/
}
2、下列OpenMP程序完成对数组a和b相应元素分别求和、求积的任务,请用OpenMP任务(功能)划分的编译制导指令进行并行化。
#include
#defineN1000
intmain(intargc,char*argv[])
{
inti;
floata[N],b[N],c[N],d[N];
/*Someinitializations*/
for(i=0;i a[i]=i*1.5; b[i]=i+22.35; } #pragmaompparallelshared(a,b,c,d)private(i) { #pragmaompsectionsnowait { #pragmaompsection for(i=0;i c[i]=a[i]+b[i]; #pragmaompsection for(i=0;i d[i]=a[i]*b[i]; }/*endofsections*/ }/*endofparallelsection*/ } 3、下列MPI程序运行时要求启动4个进程,每个进程要求获取自己的进程号、进程运行所在的机器名称、启动的进程个数并输出。 请补充适当的MPI函数。 #include"mpi.h" #include #include #defineMASTER 0 intmain(intargc,char*argv[]) { intnumtasks,taskid,len; charhostname[MPI_MAX_PROCESSOR_NAME]; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&numtasks); MPI_Comm_rank(MPI_COMM_WORLD,&taskid); MPI_Get_processor_name(hostname,&len); printf("Hellofromtask%don%s! \n",taskid,hostname); if(taskid==MASTER) printf("MASTER: NumberofMPItasksis: %d\n",numtasks); MPI_Finalize(); } 四、并行程序设计(第1题10分,第2题20分,共30分) 1、编程求Sum=1+2+…N。 (要求使用openmp) 2、 #include #include"mpi.h" #defineN1000 intmain(intargc,char*argv[]) { intsum,i,total; intnumprocs,myid; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&myid); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); for(i=myid+1;i<=N;i+=numprocs) sum+=i; MPI_Reduce(&sum,&total,1,MPI_INT,MPI_SUM,0,MPI_COMM_WORLD); if(myid==0)printf("sum=%d\n",total); MPI_Finalize(); return0; } 2、请分别用OpenMP和MPI并行编程的方法求PI的近似值。 #include #include staticlongnum_steps=100000; doublestep; #defineNUM_THREADS2 intmain() { inti; doublex,pi,sum[NUM_THREADS]; step=1.0/(double)num_steps; omp_set_num_threads(NUM_THREADS);// #pragmaompparallel { doublex; intid; id=omp_get_thread_num(); for(i=id,sum[id]=0.0;i x=(i+0.5)*step; sum[id]+=1.0/(1.0+x*x); } } for(i=0,pi=0.0;i { pi+=sum[i]*step; } printf(“pi=%f”,pi); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 计算 期末 试题 理工