A parallel computer for executing a scatter operation on a parallel computer, the parallel computer comprising a plurality of compute nodes, the compute nodes organized into at least one operational group of compute nodes for collective parallel operations of the parallel computer, the compute nodes of the operational group coupled for data communications through a global combining network, each compute node in the operational group assigned a unique rank, and one compute node assigned to be a logical root, the parallel computer comprising computer processors, computer memory operatively coupled to the computer processors, the computer memory having disposed within it computer program instructions capable of:
- configuring a send buffer on the logical root, the send buffer having positions, each position corresponding to a ranked node in the operational group and for storing contents scattered to that ranked node;
- and
- repeatedly for each position in the send buffer:
- broadcasting, by the logical root to each of the other compute nodes on the global combining network, the contents of the current position of the send buffer using a bitwise OR operation,
- determining, by each compute node, whether the current position in the send buffer corresponds with the rank of that compute node,
- if the current position in the send buffer corresponds with the rank of that compute node, receiving the contents and storing the contents in a reception buffer of that compute node, and
- if the current position in the send buffer does not correspond with the rank of that compute node, discarding the contents.