# Alltoall Type

Next: Allreduce, Previous: Scatter, Index: Index

alltoall[elementsoneach] will cause each process to send elements (the number being equal to elementsoneach) to every other process in the group.

## Examples

x:array[Int,12]::allocated[multiple[]];
var r:array[Int,3]::allocated[multiple[]];
var p;
par p from 0 to 3
{
(x:alltoall[3]):=r;
};
In this example each process sends every other process three elements (the elements in its r.) Therefore each process ends up with twelve elements in x, the location of each is based on the source processes' PID.
Last Modified: August 2008