Closed
Description
Per a thread on the user's list:
http://www.open-mpi.org/community/lists/users/2008/10/7081.php
Something odd is going on with REAL*16 reductions. George and I have discovered:
- The MPI_REAL16 datatype is mapping itself onto the MPI_LONG_DOUBLE datatype (which is fine)
- So its actually invoking ompi_mpi_op_sum_long_double() to do the reduction (instead of ompi_mpi_op_sum_fortran_real16()), but this should be ok because the ompi_fortran_real16_t is just a typedef for long double. So these functions are identical (but it does mean that we have a few useless op routines).
- What it ''looks'' like is that the DDT engine is copying over the last element as the first step of the reduction, but then the "+=" operator is not actually adding in the other values together.
- Ditto for other operators (e.g., MAX). It's like the operators are not having any effect.
Very puzzling.