Hey, I am looking that the accfence1 test in MPICH and I think the tests
is invalid. The test attempts to execute an MPI_Accumulate with different
datatypes for the origin and destination. The problem is that the test
violates MPI 3.0 § 11.3.4 p. 426 1-4:
Each datatype argument must be a predefined datatype or a derived
datatype, where all basic components are of the same predefined
datatype. Both datatype arguments must be constructed from the same
predefined datatype. The operation op applies to elements of that
predefined type.
I see no wording in the standard that says this restriction does not
apply when the operator is MPI_REPLACE. The test is correct if the
operation is changed from MPI_Accumulate to MPI_Put.
If the test is correct then it might make sense to make it explicit in
the standard that the datatype restriction does not apply to MPI_REPLACE.
-Nathan