data----> proc A0 - - - A0 - - - | - - - - BROADCAST A0 - - - | - - - - --------> A0 - - - V - - - - A0 - - - A0 A1 A2 A3 SCATTER A0 - - - - - - - ------> A1 - - - - - - - GATHER A2 - - - - - - - <------ A3 - - - A0 - - - A0 B0 C0 D0 B0 - - - ALLGATHER A0 B0 C0 D0 C0 - - - --------> A0 B0 C0 D0 D0 - - - A0 B0 C0 D0 A0 A1 A2 A3 A0 B0 C0 D0 B0 B1 B2 B3 ALLTOALL A1 B1 C1 D1 C0 C1 C2 C3 -------> A2 B2 C2 D2 D0 D1 D2 D3 A3 B3 C3 D3