Dear all: I ran this simple fortran code and got unexpected result:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! program reduce implicit none include 'mpif.h' integer :: ierr, rank real*8 :: send(5) call mpi_init(ierr) call mpi_comm_rank(mpi_comm_world,rank,ierr) send = real(rank) print *, rank,':',send call mpi_allreduce(MPI_IN_PLACE,send,size(send),mpi_real8,mpi_sum,mpi_comm_world,ierr) print *, rank,'#',send call mpi_finalize(ierr) end program reduce !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! When running with 3 processes mpirun -np 3 reduce The results I'm expecting is the sum of all 3 vectors, but I got the unexpected result: 0 : 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2 : 2.0000000000000000 2.0000000000000000 2.0000000000000000 2.0000000000000000 2.0000000000000000 1 : 1.0000000000000000 1.0000000000000000 1.0000000000000000 1.0000000000000000 1.0000000000000000 0 # 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 1 # 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 2 # 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 During compilation and running there were no errors or warnings. I install openMPI via fink. I believe somehow fink messed up during installation. Instead of installing MPI from source (which takes hours on my machine), I would like to know if there is a better than to find out what the problem is, so that I could fix my current installation rather than reinstall MPI from scratch. -- David Zhang University of California, San Diego