w**t 发帖数: 1068 | 1 程序用fortran写的。我想把t传给其他cpu,下面的程序哪里错了?我实现不了传递。
谢谢大侠帮助!
real(8) t
main_pc=0
if (rank .eq. main_pc) then
do dest=1, size-1
call MPI_SEND(t, 1, MPI_REAL, dest, 0, MPI_COMM_WORLD, err)
enddo
else
call MPI_RECV(t, 1, MPI_REAL, 0, 0, MPI_COMM_WORLD, status, err)
endif | s**i 发帖数: 381 | 2 your t is double precision but MPI_REAL is single precision.
Use MPI_DOUBLE_PRECISION instead
【在 w**t 的大作中提到】 : 程序用fortran写的。我想把t传给其他cpu,下面的程序哪里错了?我实现不了传递。 : 谢谢大侠帮助! : real(8) t : main_pc=0 : if (rank .eq. main_pc) then : do dest=1, size-1 : call MPI_SEND(t, 1, MPI_REAL, dest, 0, MPI_COMM_WORLD, err) : enddo : else : call MPI_RECV(t, 1, MPI_REAL, 0, 0, MPI_COMM_WORLD, status, err)
| l*w 发帖数: 646 | 3 Why not use broadcast?
【在 w**t 的大作中提到】 : 程序用fortran写的。我想把t传给其他cpu,下面的程序哪里错了?我实现不了传递。 : 谢谢大侠帮助! : real(8) t : main_pc=0 : if (rank .eq. main_pc) then : do dest=1, size-1 : call MPI_SEND(t, 1, MPI_REAL, dest, 0, MPI_COMM_WORLD, err) : enddo : else : call MPI_RECV(t, 1, MPI_REAL, 0, 0, MPI_COMM_WORLD, status, err)
|
|