Datatypes for all-to-all collectives on intercomms
Hi all, when looking at the semantics of all-to-all collectives on intercomms I came to a point that isn't entirely clear from the standard: Am I'm allowed to use different datatypes for each communication direction, i.e. send MPI_INTEGERS from group A to group B and MPI_DOUBLES from B to A? The standard says (page 168, line 38 for MPI_Alltoall, similar statements for the other all-to-all collectives): The type signature associated with sendcount, sendtype, at a process must be equal to the type signature associated with recvcount, recvtype at any other process. This implies that the amount of data sent must be equal to the amount of data received, pairwise between every pair of processes. As usual, however, the type maps may be different. This however is only true for an intracommunicator as the statement only holds for every pair of *communicating* processes, which in the case of an intercommunicator is not every pair of processes (though the name implies a different semantics). And the advice to users (page 169, line 23) contradicts that by saying that the counts may be different, but says nothing about the datatypes. -Michael -- Michael Knobloch Juelich Supercomputing Centre Institute for Advanced Simulation Forschungszentrum Juelich GmbH 52425 Juelich, Germany Phone: +49-2461-61-3546 Fax: +49-2461-61-6656 E-mail: [email protected] WWW: http://www.fz-juelich.de/jsc/
participants (1)
-
Michael Knobloch