#### Implementation of collectives

#### Implementation of collectives

The
`c_udgram`

normally uses logarithmic-time algorithms for
multicasts (see Multicasting), reductions (see
Reducing), and barriers (see
Synchronizing).
One-to-many multicasts disperse data in a binary-tree pattern.
Reductions reduce data in a binary-tree pattern to the root, which
then disperses the data in a binary-tree pattern in the
many-to-many case. Barriers synchronize in a butterfly pattern. The
only non-logarithmic-time algorithm is for many-to-many multicasts,
which are implemented as one logarithmic-time, one-to-many
multicast for each sender.

Scott Pakin, pakin@lanl.gov