Messages can have different sizes and displacements. Entry j specifies the displacement relative to sendbuf from which to take the outgoing data destined for task j . Entry i specifies the displacement relative to recvbuf at which to place the incoming data from task i . It is always the last argument.
Messages can have different sizes and displacements.
These blocks do not have to be the same size. This means the amount of data sent must be equal to the amount of data received, pair wise between every pair of tasks. Distinct type maps between sender and receiver are allowed. All arguments on all tasks are significant. When you use this routine in a threads application, make sure all collective operations on a particular communicator occur in the same order at each task.