Hi, I tried openmpi-3.0.0rc1.tar.gz using Intel Fortran 2017 and gcc on a current MacOS system. For this version, it seems to me that MPI_IN_PLACE returns incorrect results (while other MPI implementations, including some past OpenMPI versions, work fine).
This can be seen with a simple Fortran example code, shown below. In the test, the values of all entries of an array “test_data” should be 1.0d0 if the behavior were as intended. However, the version of OpenMPI I have returns 0.d0 instead. I’ve seen this behavior on some other compute platforms too, in the past, so it wasn’t new to me. Still, I thought that this time, I’d ask. Any thoughts? Thank you, Best wishes Volker ! size of test data array integer :: n_data ! array that contains test data for MPI_IN_PLACE real*8, allocatable :: test_data(:) integer :: mpierr n_data = 10 allocate(test_data(n_data),stat=mpierr) ! seed test data array for allreduce call below if (myid.eq.0) then test_data(:) = 1.d0 else test_data(:) = 0.d0 end if ! Sum the test_data array over all MPI tasks call MPI_ALLREDUCE(MPI_IN_PLACE, & test_data(:), & n_data, & MPI_DOUBLE_PRECISION, & MPI_SUM, & mpi_comm_global, & mpierr ) ! The value of all entries of test_data should now be 1.d0 on all MPI tasks. ! If that is not the case, then the MPI_IN_PLACE flag may be broken. Volker Blum Associate Professor Ab Initio Materials Simulations Duke University, MEMS Department 144 Hudson Hall, Box 90300, Duke University, Durham, NC 27708, USA volker.b...@duke.edu https://aims.pratt.duke.edu +1 (919) 660 5279 Twitter: Aimsduke Office: 1111 Hudson Hall _______________________________________________ users mailing list users@lists.open-mpi.org https://rfd.newmexicoconsortium.org/mailman/listinfo/users