1. A method of performing an allreduce operation on a plurality of compute nodes of a parallel computer, each compute node comprising at least two processing cores, each processing core having contribution data for the allreduce operation, the method comprising: establishing one or more logical rings among the compute nodes, each logical ring including at least one processing core from each compute node, wherein in a logical ring, all data that is transferred between processing cores travels from one core of one node to a next core in a next node in a circular manner; performing, for each logical ring, a global allreduce operation using the contribution data for the processing cores included in that logical ring, yielding a global allreduce result for each processing core included in that logical ring; and performing, for each compute node, a local allreduce operation using the global allreduce results for each processing core on that compute node.