[mpich-discuss] Account Request / Bug report MPI_Type_create_f90_real

Harald Klimach harald at klimachs.de
Wed Dec 19 09:23:53 CST 2012


Hi there,

I installed MPICH2 3.0rc1 using GCC 4.7.2 and found a problem with MPI_Type_create_f90_real.
It is very similar to the problem I reported in OpenMPI under: https://svn.open-mpi.org/trac/ompi/ticket/3432

Running the following program:

program test_mpi
 use mpi
 implicit none

 integer, parameter :: rk_prec = 15
 integer, parameter :: rk = selected_real_kind(rk_prec)

 integer :: rk_mpi
 integer :: iError
 real(kind=rk) :: a_real
 real(kind=rk) :: res

 call MPI_Init(iError)
 call mpi_type_create_f90_real(rk_prec, MPI_UNDEFINED, rk_mpi, iError)
 write(*,*) 'MPI_REAL8:', MPI_REAL8
 write(*,*) 'MPI_DOUBLE_PRECISION:', MPI_DOUBLE_PRECISION
 write(*,*) 'type_create_f90_real:', rk_mpi
 a_real = 1.0
 call MPI_Reduce(a_real, res, 1, rk_mpi, MPI_MIN, 0, MPI_COMM_WORLD, iError)
 call MPI_Finalize(iError)

end program test_mpi


Results in the following output and error:

MPI_REAL8:  1275070505
MPI_DOUBLE_PRECISION:  1275070495
type_create_f90_real: -1946157049
Fatal error in PMPI_Reduce: Invalid MPI_Op, error stack:
PMPI_Reduce(1217)........: MPI_Reduce(sbuf=0x7fff43637108, rbuf=0x7fff436370f8, count=1, dtype=USER<f90_real>, MPI_MIN, root=0, MPI_COMM_WORLD) failed
MPIR_MINF_check_dtype(71): MPI_Op MPI_MIN operation not defined for this datatype


Further the quadruple precision data type is not properly supported:
MPI_Type_create_f90_real will complain about wrong exponent, regardless of its value,
while MPI_REAL16 is available and the Reduction operation does not complain, it produces
wrong results. Again there is a similar problem with OpenMPI, as reported under:
https://svn.open-mpi.org/trac/ompi/ticket/3433

Thanks a lot,
Harald Klimach



More information about the discuss mailing list