Dear All,
I'm running a complex program with a number of MPI_REDUCE calls, every call uses MPI_IN_PLACE as the first parameter (the send buffer).
I'm currently testing this program on Mac 10.6 with macports installed.
Unfortunately all MPI_REDUCE calls with MPI_IN_PLACE, seem to fail.
I've pinpointed the problem to the MPI_IN_PLACE parameter location, it seems to matter if it is the first or the second parameter to the MPI_REDUCE call.
This is specific for fortran, in C the sequence does not matter!
A simple program to test this:
PROGRAM MAIN
implicit none
include 'mpif.h'
integer :: x(10)
integer :: provided,ioerror
call MPI_INIT(ioerror)
x = 1
print *, x
call MPI_REDUCE(x, MPI_IN_PLACE,10, MPI_INTEGER, MPI_SUM, 0,MPI_COMM_WORLD, ioerror)
print *, x
call MPI_REDUCE(MPI_IN_PLACE, x,10, MPI_INTEGER, MPI_SUM, 0,MPI_COMM_WORLD, ioerror)
print *, x
call MPI_FINALIZE(ioerror)
END PROGRAM
I run this on one process (mpiexec ./a.out)
I'm running with openmpi version 1.5.4 (macports)
The openmpi is compiled with gfortran 4.4.6
Is this a bug in openmpi or is my understanding of MPI_REDUCE wrong?
Best regards,
Arjen
|