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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5题每题20分 1)简述MPI 6个函数格式定义,作用,参数含义。 MPI简介:消息传递接口的标准,用于开发基于消息传递的并行程序,目的是为用户提供一个实际可用的、可移植的、高效和灵活的消息传递接口库,能够在PC Windows和所有主要的Unix工作站以及并行机上实现。MPI是一个库,不是一种语言,实现并行必须依托于某种语言:FORTRAN,C MPI主要函数: MPI_Init,初始化函数:MPI程序通过调用MPI_Init函数进行MPI环境,并完成所有的初始化工作,这个函数通常是MPI程序的第一个函数调用。 格式如下: int MPI_Init( int *argc, char ***argv ) MPI_Finalize,结束函数:MPI通过调用MPI_Finalize函数从MPI环境中退出,它是MPI程序的最后一个MPI函数调用,否则程序的执行结果是不可预知的。 格式如下: int MPI_Finalize(void) ; MPI_Comm_rank,获取进程的编号:MPI程序通过MPI_Comm_Rank函数调用获取当前进程在指定通信域中的编号,有了该编号,不同的进程就可以将自身和其他进程区分开来,从而实现进程间的并行和合作。 格式如下:nt MPI_Comm_rank(MPI_Comm comm, int *rank) MPI_Comm_size,获取指定通信域的进程数:MPI通过调用MPI_Comm_size函数获取指定通信域的进程个数,进程可根据它来确定自己应该完成的任务比例。 格式如下:int MPI_Comm_size(MPI_Comm comm, int *size) MPI_Send消息发送函数:MPI_Send函数用于发送一个消息到目标进程。其格式如下: int MPI_Send( void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm_comm) buf : 消息发送的起始地址 count :发送消息的数量 datatype: 发送数据的类型 dest: 标识目标进程 tag: 发送消息时打上的标签 comm: 通信类型 MPI_Recv,消息接收:MPI_Recv函数用于从指定进程接收一个消息,格式如下: int MPI_Recv( void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm, comm, MPI_Status *status ) buf : 消息接收后存放地址 count : 接收数量 datatype : 接收数据类型 source : 发送消息的进程 tag : 消息的标签 comm : 通信类型 status : 接收状态 1.2)举例简单的应用解释如何通信。 每个进程会属于一个或多个通信域。 一个简单的例子 /* simple.c */ #include “mpi.h” /*MPI头文件*/ #include stdio.h int main(argc, argv) int argc ; char **argv ; { int rank, size, tag = 1 ; int senddata, recvdata ; MPI_Status status ; MPI_Init( argc, argv ) ; /*MPI的初始化*/ MPI_Comm_rank( MPI_COMM_WORLD, rank ) ; /*该进程的编号 */ MPI_Comm_size( MPI_COMM_WORLD, size ); /* 总的进程数目*/ if ( rank == 0 ){ int senddata, recvdata ; MPI_Status status ; MPI_Init( argc, argv ) ; /*MPI的初始化*/ MPI_Comm_rank( MPI_COMM_WORLD, rank ) ; /*该进程的编号 */ MPI_Comm_size( MPI_COMM_WORLD, size ); /* 总的进程数目*/ if ( rank == 0 ){ senddata = 9999 ; MPI_Send( senddata, 1, MPI_INT, 1, tag, MPI_COMM_WORLD ) ; /* 发送数据到进 程1 */ } if (

文档评论(0)

ygxt89 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档