资源描述:
《多核编程和并行运算期末复习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5题每题20分1.1)简述MPI6个函数格式定义,作用,参数含义。MPI简介:消息传递接口的标准,用于开发基于消息传递的并行程序,目的是为用户提供一个实际可用的、可移植的、高效和灵活的消息传递接口库,能够在PCWindows和所有主要的Unix工作站以及并行机上实现。MPI是一个库,不是一种语言,实现并行必须依托于某种语言:FORTRAN,CMPI主要函数:MPI_Init,初始化函数:MPI程序通过调用MPI_Init函数进行MPI环境,并完成所有的初始化工作,这个函数通常是MPI程序的第一个函数调用。格式如下:intMPI_
2、Init(int*argc,char***argv)MPI_Finalize,结束函数:MPI通过调用MPI_Finalize函数从MPI环境中退出,它是MPI程序的最后一个MPI函数调用,否则程序的执行结果是不可预知的。格式如下:intMPI_Finalize(void);MPI_Comm_rank,获取进程的编号:MPI程序通过MPI_Comm_Rank函数调用获取当前进程在指定通信域中的编号,有了该编号,不同的进程就可以将自身和其他进程区分开来,从而实现进程间的并行和合作。格式如下:ntMPI_Comm_rank(MPI_
3、Commcomm,int*rank)MPI_Comm_size,获取指定通信域的进程数:MPI通过调用MPI_Comm_size函数获取指定通信域的进程个数,进程可根据它来确定自己应该完成的任务比例。格式如下:intMPI_Comm_size(MPI_Commcomm,int*size)MPI_Send消息发送函数:MPI_Send函数用于发送一个消息到目标进程。其格式如下:intMPI_Send(void*buf,intcount,MPI_Datatypedatatype,intdest,inttag,MPI_Comm_com
4、m)buf:消息发送的起始地址count:发送消息的数量datatype:发送数据的类型dest:标识目标进程tag:发送消息时打上的标签comm:通信类型MPI_Recv,消息接收:MPI_Recv函数用于从指定进程接收一个消息,格式如下:intMPI_Recv(void*buf,intcount,MPI_Datatypedatatype,intsource,inttag,MPI_Comm,comm,MPI_Status*status)buf:消息接收后存放地址count:接收数量datatype:接收数据类型source:发
5、送消息的进程tag:消息的标签comm:通信类型status:接收状态1.2)举例简单的应用解释如何通信。每个进程会属于一个或多个通信域。16一个简单的例子/*simple.c*/#include“mpi.h”/*MPI头文件*/#includeintmain(argc,argv)intargc;char**argv;{intrank,size,tag=1;intsenddata,recvdata;MPI_Statusstatus;MPI_Init(&argc,&argv);/*MPI的初始化*/MPI_Com
6、m_rank(MPI_COMM_WORLD,&rank);/*该进程的编号*/MPI_Comm_size(MPI_COMM_WORLD,&size);/*总的进程数目*/if(rank==0){intsenddata,recvdata;MPI_Statusstatus;MPI_Init(&argc,&argv);/*MPI的初始化*/MPI_Comm_rank(MPI_COMM_WORLD,&rank);/*该进程的编号*/MPI_Comm_size(MPI_COMM_WORLD,&size);/*总的进程数目*/if(rank
7、==0){senddata=9999;MPI_Send(&senddata,1,MPI_INT,1,tag,MPI_COMM_WORLD);/*发送数据到进程1*/}if(rank==1){MPI_Recv(&recvdata,1,MPI_INT,0,tag,MPI_COMM_WORLD,&status);/*从进程0接收数据*/}MPI_Finalize();/*MPI的结束函数*/return(0);}另一个例子实现sum(a+b),并且把求和结果打印出来。这里a,b都是n维空间的向量,并且每个元素都为整数。#include
8、“mpi.h”/*MPI头文件*/#include#includeintmain(argc,argv)intargc;char**argv;{16intrank,size,i,tag=1;int*a,*b,n;n=100;a