Hi list,

I hope this time I won't be the only one to suffer this bug :)

It is very simple indeed, just perform an allreduce with MPI_REAL8 (fortran) and you should get a crash in ompi/op/op.h:411. Tested with trunk and v1.5, working fine on v1.3.

From what I understand, in the trunk, MPI_REAL8 has now a fixed id (in
ompi/datatype/ompi_datatype_internal.h), but operations do not have an index going as far as 54 (0x36), leading to a crash when looking for op->o_func.intrinsic.fns[ompi_op_ddt_map[ddt->id]] in ompi_op_is_valid() (or, if I disable mpi_param_check, in ompi_op_reduce()).

Here is a reproducer, just in case :
program main
 use mpi
 integer ierr
 real(8) myreal, realsum
 call MPI_INIT(ierr)
 call MPI_ALLREDUCE(myreal, realsum, 1, MPI_REAL8, MPI_SUM, MPI_COMM_WORLD, 
ierr)
 call MPI_FINALIZE(ierr)
 stop
end

Has anyone an idea on how to fix this ? Or am I doing something wrong ?

Thanks for any help,
Sylvain


Reply via email to