The types MPI_SIGNED_CHAR and MPI_UNSIGNED_CHAR can be used in reduction operations. MPI_CHAR, MPI_WCHAR, and MPI_CHARACTER (which represent printable characters) cannot be used in reduction operations. In a heterogeneous environment, MPI_CHAR, MPI_WCHAR, and MPI_CHARACTER will be translated so as to preserve the printable character, whereas MPI_SIGNED_CHAR and MPI_UNSIGNED_CHAR will be translated so as to preserve the integer value.
Advice to users.
The types MPI_CHAR, MPI_WCHAR, and MPI_CHARACTER are intended for
characters, and so will be translated to preserve the printable
representation, rather than the integer value, if sent between machines with
different character codes. The types MPI_SIGNED_CHAR and
MPI_UNSIGNED_CHAR should be used in C if the integer value
should be preserved.
( End of advice to users.)