Routing data communications packets in a parallel computer
First Claim
1. An apparatus for routing data communications packets in a parallel computer, the parallel computer comprising a plurality of compute nodes organized for collective operations through at least one data communications network,each compute node comprising an operating system kernel and a system-level messaging module, the system-level messaging module comprising a module of automated computing machinery that exposes a messaging interface to applications,the at least one data communications network comprises a global combining network which is optimized for collective operations by organizing the plurality of compute nodes in a binary tree network topology,each compute node including a global combining network adapter that couples the compute node to the global combining network,the global combining network adapter in each compute node including the compute node'"'"'s routing table that specifies, for each of a multiplicity of route identifiers, a data communications path through the compute node,the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:
- initializing, by the operating system kernel of a compute node, the compute node'"'"'s routing table with high priority routing table entries, wherein high priority routing table entries include entries for each data communications path through the compute node that connects the compute node to another compute node in an operational group organized for collective operations;
receiving in the compute node a data communications packet, the data communications packet including a route identifier value that identifies a specification of a data communications path through each of the plurality of compute nodes that the data communications packet traverses;
determining whether the compute node'"'"'s routing table contains an entry for the data communications packet'"'"'s route identifier value;
if the compute node'"'"'s routing table does not have an entry for the data communications packet'"'"'s route identifier value, creating by the operating system kernel an entry for the data communications packet'"'"'s route identifier value in the compute node'"'"'s routing table by requesting a specification of a data communications path through the compute node for the route identifier value from another compute node;
if the compute node'"'"'s routing table does have an entry for the data communications packet'"'"'s route identifier value, retrieving from the routing table in dependence upon the route identifier value, the specification of a data communications path through the compute node; and
routing, by the compute node, the data communications packet through the compute node according to the data communications path identified by the compute node'"'"'s routing table entry for the data communications packet'"'"'s route identifier value.
1 Assignment
0 Petitions
Accused Products
Abstract
Routing data communications packets in a parallel computer that includes compute nodes organized for collective operations. Each compute node including an operating system kernel and a system-level messaging module that is a module of automated computing machinery that exposes a messaging interface to applications. Each compute node including a routing table that specifies, for each of a multiplicity of route identifiers, a data communications path through the compute node. Including to carry out the steps of: receiving in a compute node a data communications packet that includes a route identifier value; retrieving from the routing table a specification of a data communications path through the compute node; and routing, by the compute node, the data communications packet according to the data communications path identified by the compute node'"'"'s routing table entry for the data communications packet'"'"'s route identifier value.
-
Citations
12 Claims
-
1. An apparatus for routing data communications packets in a parallel computer, the parallel computer comprising a plurality of compute nodes organized for collective operations through at least one data communications network,
each compute node comprising an operating system kernel and a system-level messaging module, the system-level messaging module comprising a module of automated computing machinery that exposes a messaging interface to applications, the at least one data communications network comprises a global combining network which is optimized for collective operations by organizing the plurality of compute nodes in a binary tree network topology, each compute node including a global combining network adapter that couples the compute node to the global combining network, the global combining network adapter in each compute node including the compute node'"'"'s routing table that specifies, for each of a multiplicity of route identifiers, a data communications path through the compute node, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of: -
initializing, by the operating system kernel of a compute node, the compute node'"'"'s routing table with high priority routing table entries, wherein high priority routing table entries include entries for each data communications path through the compute node that connects the compute node to another compute node in an operational group organized for collective operations; receiving in the compute node a data communications packet, the data communications packet including a route identifier value that identifies a specification of a data communications path through each of the plurality of compute nodes that the data communications packet traverses; determining whether the compute node'"'"'s routing table contains an entry for the data communications packet'"'"'s route identifier value; if the compute node'"'"'s routing table does not have an entry for the data communications packet'"'"'s route identifier value, creating by the operating system kernel an entry for the data communications packet'"'"'s route identifier value in the compute node'"'"'s routing table by requesting a specification of a data communications path through the compute node for the route identifier value from another compute node; if the compute node'"'"'s routing table does have an entry for the data communications packet'"'"'s route identifier value, retrieving from the routing table in dependence upon the route identifier value, the specification of a data communications path through the compute node; and routing, by the compute node, the data communications packet through the compute node according to the data communications path identified by the compute node'"'"'s routing table entry for the data communications packet'"'"'s route identifier value. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product for routing data communications packets in a parallel computer, the parallel computer comprising a plurality of compute nodes organized for collective operations through at least one data communications network,
each compute node comprising an operating system kernel and a system-level messaging module, the system-level messaging module comprising a module of automated computing machinery that exposes a messaging interface to applications, the at least one data communications network comprises a global combining network which is optimized for collective operations by organizing the plurality of compute nodes in a binary tree network topology, each compute node including a global combining network adapter that couples the compute node to the global combining network, the global combining network adapter in each compute node including the compute node'"'"'s routing table that specifies, for each of a multiplicity of route identifiers, a data communications path through the compute node, the computer program product disposed upon a computer readable storage medium, wherein the computer readable storage medium is not a signal, the computer program product comprising computer program instructions that, when executed, cause the parallel computer to carry out the steps of: -
initializing, by the operating system kernel of a compute node, the compute node'"'"'s routing table with high priority routing table entries, wherein high priority routing table entries include entries for each data communications path through the compute node that connects the compute node to another compute node in an operational group organized for collective operations; receiving in the compute node a data communications packet, the data communications packet including a route identifier value that identifies a specification of a data communications path through each of the plurality of compute nodes that the data communications packet traverses; determining whether the compute node'"'"'s routing table contains an entry for the data communications packet'"'"'s route identifier value; if the compute node'"'"'s routing table does not have an entry for the data communications packet'"'"'s route identifier value, creating by the operating system kernel an entry for the data communications packet'"'"'s route identifier value in the compute node'"'"'s routing table by requesting a specification of a data communications path through the compute node for the route identifier value from another compute node; if the compute node'"'"'s routing table does have an entry for the data communications packet'"'"'s route identifier value, retrieving from the routing table in dependence upon the route identifier value the specification of a data communications path through the compute node; and routing, by the compute node, the data communications packet through the compute node according to the data communications path identified by the compute node'"'"'s routing table entry for the data communications packet'"'"'s route identifier value. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification