Constructing a logical tree topology in a parallel computer
Constructing a logical tree topology in a parallel computer that includes compute nodes, where each compute node includes a hardware acceleration unit and executes an identical number of tasks and the tasks of each node have a rank, includes: creating hardware acceleration groups, with each hardware acceleration group including one task from each node, where the one task from each node has the same rank; assigning one task of a root compute node as a global root of the logical tree topology; assigning tasks of the root compute node other than the global root as local children of the global root; and assigning each of the global root and local children of the root compute node as a root of a subtree of tasks, wherein each subtree comprises the tasks of a hardware acceleration group.
1. A method of constructing a logical tree topology in a parallel computer, the parallel computer comprising a plurality of compute nodes, each compute node comprising a hardware acceleration unit and executing an identical number of tasks, wherein the tasks of each node have a rank, the method comprising:
creating a plurality of hardware acceleration groups, each hardware acceleration group comprising one task from each compute node, the one task from each compute node having the same rank;
assigning one task of a root compute node as a global root of the logical tree topology;
assigning tasks of the root compute node other than the global root as local children of the global root;
assigning each of the global root and local children of the root compute node as a root of a subtree of tasks, wherein each subtree comprises the tasks of a hardware acceleration group;
performing a broadcast operation in the logical tree topology including:
transmitting broadcast data by the global root of the root compute node to the local children of the root compute node through shared memory; and
transmitting the broadcast data in parallel by the global root and local children to tasks of the global root and local children's subtrees.
2. The method of claim 1 , wherein the number of tasks executing on each compute node is less than the number of compute nodes.
3. The method of claim 1 , wherein the method is carried out upon establishment of an operational group of the tasks.
4. The method of claim 1 , further comprising performing a gather operation in the logical tree topology including:
transmitting, by each task of a compute node other than the root compute node, gather data to the root of the task's subtree; and
transmitting the gather data through shared memory by each of the subtree roots to the global root.
5. The method of claim 1 , further comprising performing a reduce operation in the logical tree topology including:
transmitting, by each task of a compute node other than the root compute node, reduce data to the root of the task's subtree including performing a reduction operation on the reduce data; and
transmitting the reduce data through shared memory by each of the subtree roots to the global root including performing the reduction operation on the reduce data.