All,

I have a Fortran code that works quite well with OpenMPI 1.4.3 where I create 
a handle using:

call MPI_TYPE_CREATE_F90_INTEGER(9, COMM_INT4, ierror)

and then do a reduction with:

call MPI_ALLREDUCE(send_buffer, buffer, count, COMM_INT4, MPI_SUM, 
communicator,              
ierror)

However, this fails with OpenMPI 1.6.3 stating:

An error occurred in MPI_Allreduce: the reduction operation MPI_SUM is not 
defined for non-intrinsic datatypes (attempted with datatype named "Dup 
MPI_INT")

The MPI standard states that MPI_SUM works with Fortran integers, and Fortran 
integers are defined in Section 5.9.2 as:

MPI_INTEGER, MPI_AINT, MPI_OFFSET,
*and handles returned from
MPI_TYPE_CREATE_F90_INTEGER*,
and if available: MPI_INTEGER1,
MPI_INTEGER2, MPI_INTEGER4,
MPI_INTEGER8, MPI_INTEGER16

(emphasis mine)

However the manual page on MPI_Reduce for OpenMPI only states that Fortran 
integers are:

Fortran integer:      MPI_INTEGER

Does OpenMPI not support using MPI_SUM with Fortran integer handles?  I'm 
hoping that it's just an oversight as it used to work...

System: Fedora 17
Compilers: GCC 4.7.2
OpenMPI's tested: 1.4.3 (works), 1.5.4 (doesn't work), 1.6.3 (doesn't work)

Thanks for any insight,
Shane

Reply via email to