1. A computer-implemented method for performing a specified collective operation on a parallel computer comprising a plurality of compute nodes, each compute node having at least a processor and a memory, the method comprising: performing a first collective operation by a source node and a plurality of target nodes to determine a characteristic of each of the target nodes; selecting a target protocol based on the characteristic of each of the target nodes; performing the specified collective operation by the source node and the plurality of target nodes using the target protocol; performing a second collective operation by one of the target nodes and a plurality of downstream nodes to determine a characteristic of each of the downstream nodes; from the plurality of protocols, selecting a downstream protocol based on the characteristic of each of the downstream nodes; and performing the specified collective operation by the target node and the plurality of downstream nodes using the downstream protocol.