- UID
- 1484
- 性别
- 男
混子
- 积分
- 182
- F 币
- 122 元
- 最后登录
- 2016-8-1
- 贡献
- 53 点
- 注册时间
- 2015-11-20
- 权杖
- 0 枚
惯用编译器:Intel Visual Fortran for Windows
入门
混子
- F 币
- 122 元
- 贡献
- 53 点
|
一、在不使用if语句的时候,结果只有rank=0的输出,而rank=1堵死了
[Fortran] 纯文本查看 复制代码
program main
implicit none
include 'mpif.h'
integer rank,ierr,status(mpi_status_size)
integer i,j
i=3
j=5
call mpi_init(ierr)
call mpi_comm_rank(mpi_comm_world,rank,ierr)
call mpi_send(i,1,mpi_integer,1,99,mpi_comm_world,ierr)
write(*,1) rank,i,j
call mpi_recv(j,1,mpi_integer,0,99,mpi_comm_world,status,ierr)
write(*,1) rank,i,j
1 format(1x,'rank=',i3,5x,'i=',i3,5x,'j=',i3)
call mpi_finalize(ierr)
end
二、使用mpi_sendrecv时无论时卡住,无输出;不过如果将发送地址和接收地址都设置成0,倒是可以实现赋值功能(╯‵□′)╯
[Fortran] 纯文本查看 复制代码
program main
include 'mpif.h'
integer rank,ierr,status(mpi_status_size)
integer i,j
i=3
j=5
call mpi_init(ierr)
call mpi_comm_rank(mpi_comm_world,rank,ierr)
call mpi_sendrecv(i,1,mpi_integer,1,99,j,1,mpi_integer,0,99,mpi_comm_world,status,ierr)
write(*,1) rank,i,j
1 format(1x,'rank=',i3,'i=',i3,'j=',i3)
call mpi_finalize(ierr)
end 另外求大师推荐几本合适的书,方便初学者自学。谢谢大家!
|
|