Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] problem with fortran, MPI_REDUCE and MPI_IN_PLACE
From: Arjen van Elteren (vanelteren_at_[hidden])
Date: 2011-11-23 13:20:42


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