多核编程和并行运算期末复习

多核编程和并行运算期末复习

ID:13535000

大小:111.67 KB

页数:16页

时间:2018-07-23

多核编程和并行运算期末复习_第1页
多核编程和并行运算期末复习_第2页
多核编程和并行运算期末复习_第3页
多核编程和并行运算期末复习_第4页
多核编程和并行运算期末复习_第5页
资源描述:

《多核编程和并行运算期末复习》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、5题每题20分1.1)简述MPI6个函数格式定义,作用,参数含义。MPI简介:消息传递接口的标准,用于开发基于消息传递的并行程序,目的是为用户提供一个实际可用的、可移植的、高效和灵活的消息传递接口库,能够在PCWindows和所有主要的Unix工作站以及并行机上实现。MPI是一个库,不是一种语言,实现并行必须依托于某种语言:FORTRAN,CMPI主要函数:MPI_Init,初始化函数:MPI程序通过调用MPI_Init函数进行MPI环境,并完成所有的初始化工作,这个函数通常是MPI程序的第一个函数调用。格式如下:intMPI_I

2、nit(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_Co

3、mmcomm,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_comm)b

4、uf:消息发送的起始地址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_Comm_ran

6、k(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==0){s

7、enddata=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“mpi.h”

8、/*MPI头文件*/#include#includeintmain(argc,argv)intargc;char**argv;{16intrank,size,i,tag=1;int*a,*b,n;n=100;a

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。