注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

AlexYoung

做好大家都必须要做的事,发展自己感兴趣的事,结束圣人所不齿的事...

 
 
 

日志

 
 

MPI发送与接收等价于广播数组的例子@[CVF6.6.0+MPICH_NT_1.2.5]  

2012-08-30 17:27:06|  分类: CVF6.6.0+MPICH_N |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

源程序如下:

program mpisendrecvtest
!  use mpi
  implicit none
  include 'mpif90.h'
  integer::myrank,ierr,numprocs,dest,status(mpi_status_size),tag,source
!  integer,allocatable::tag(:)
  real::a(4)
  !-----进入MPI系统
  call MPI_Init(ierr)
  call MPI_Comm_rank(MPI_COMM_WORLD,myrank,ierr)
  call MPI_Comm_size(MPI_COMM_WORLD,numprocs,ierr)

!   相当于实现一个广播数组的功能
 tag = 5
 source= myrank-1
 if(source.eq.-1) source=numprocs-1
 dest =myrank+1
 if(dest.eq.numprocs) dest=0
 if(myrank.eq.0) then
   call random_number(a)
   call MPI_Send(a(1),size(a),MPI_real,dest,tag,MPI_COMM_WORLD,ierr)
   call MPI_Recv(a(1),size(a),MPI_real,source,tag,MPI_COMM_WORLD,status, ierr)
 else
   call MPI_Recv(a(1),size(a),MPI_real,source,tag,MPI_COMM_WORLD,status, ierr)
   call MPI_Send(a(1),size(a),MPI_real,dest,tag,MPI_COMM_WORLD,ierr)
   print*,a
 endif

  call mpi_finalize(ierr)
end

 

其中,include的头文件为自己将mpif.h中的第一列的'c',改为'!'之后另存的头文件,专门用于f90自由格式的fortran程序。


  评论这张
 
阅读(301)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017