老师好,我想问下我用MPI并行,想要把进程1的数据输出给进程0,为什么接收到的进程0的数据异常呢?
[Fortran] 纯文本查看 复制代码 02 | call MPI_SEND ( TmpEx , 1 , MPI_REAL , 0 , 19 , MPI_COMM_WORLD , ierr ) |
03 | call MPI_SEND ( TmpEy , 1 , MPI_REAL , 0 , 20 , MPI_COMM_WORLD , ierr ) |
04 | call MPI_SEND ( TmpEz , 1 , MPI_REAL , 0 , 21 , MPI_COMM_WORLD , ierr ) |
05 | call MPI_SEND ( TmpHx , 1 , MPI_REAL , 0 , 22 , MPI_COMM_WORLD , ierr ) |
06 | call MPI_SEND ( TmpHy , 1 , MPI_REAL , 0 , 23 , MPI_COMM_WORLD , ierr ) |
07 | call MPI_SEND ( TmpHz , 1 , MPI_REAL , 0 , 24 , MPI_COMM_WORLD , ierr ) |
09 | call MPI_Barrier ( MPI_COMM_WORLD , IERR ) |
10 | write ( * , * ) , '发送前' , 'rank号' , rank |
11 | Write ( * , '(I3,7e20.10e3)' ) oby 1 , Ctime ( mstart ( num ) + mstop ( num ) -1 ) , TmpHx , TmpHy , TmpHz , & |
16 | call MPI_RECV ( TmpEx , 1 , MPI_REAL , 1 , 19 , MPI_COMM_WORLD , STATUS , ierr ) |
17 | call MPI_RECV ( TmpEy , 1 , MPI_REAL , 1 , 20 , MPI_COMM_WORLD , STATUS , ierr ) |
18 | call MPI_RECV ( TmpEz , 1 , MPI_REAL , 1 , 21 , MPI_COMM_WORLD , STATUS , ierr ) |
19 | call MPI_RECV ( TmpHx , 1 , MPI_REAL , 1 , 22 , MPI_COMM_WORLD , STATUS , ierr ) |
20 | call MPI_RECV ( TmpHy , 1 , MPI_REAL , 1 , 23 , MPI_COMM_WORLD , STATUS , ierr ) |
21 | call MPI_RECV ( TmpHz , 1 , MPI_REAL , 1 , 24 , MPI_COMM_WORLD , STATUS , ierr ) |
23 | call MPI_Barrier ( MPI_COMM_WORLD , IERR ) |
24 | write ( * , * ) , '接收后' , 'rank号' , rank |
25 | Write ( * , * ) oby 1 , Ctime ( mstart ( num ) + mstop ( num ) -1 ) , TmpHx , TmpHy , TmpHz , & |
|