Collective network routing
Summary by NHIP
Class-Based Network Routing
The method routes data packets by identifying their class identifier to select specific routes within embedded virtual logical networks. Nodes process identified packet collectives to compute results without reducing the total number of packets routed through the network.
Claim Score by NHIP
Abstract
Disclosed are a unified method and apparatus to classify, route, and process injected data packets into a network so as to belong to a plurality of logical networks, each implementing a specific flow of data on top of a common physical network. The method allows to locally identify collectives of packets for local processing, such as the computation of the sum, difference, maximum, minimum, or other logical operations among the identified packet collective. Packets are injected together with a class-attribute and an opcode attribute. Network routers, employing the described method, use the packet attributes to look-up the class-specific route information from a local route table, which contains the local incoming and outgoing directions as part of the specifically implemented global data flow of the particular virtual network.

Term
Projected expiry 18 October 2026.
- Priority
- Filed
- Granted
- Today
- Projected expiry
19 claims: 4 independent, 15 dependent
- 1Broadest claimClaim Score 12, narrow(NHIP)A method of routing data packets in a computer network having a multitude of nodes and a multitude of links connecting the nodes together, each data packet including a class identifier identifying the data packet as belonging to one of a plurality of packet classes, the method comprising:embedding a plurality of configurable virtual logical networks in the computer network, each of the virtual logical networks being formed by a configurable set of the nodes of the computer network, and each of the packet classes being associated with one of said virtual logical networks;each node, for each of a defined set of data packets, looking at the data packet to identify the class of the data packet from the class identifier of the data packet;and routing the data packet from the node based on the identified class of the data packet;and wherein an identified collective of the data packets is processed to compute a number of resulting data packets based on data of the identified collective of packets without reducing the number of data packets routed through the network;wherein each node includes a route descriptor table including one or more route descriptors, each of the one or more route descriptors specifying one or more routes from said each node to one or more other nodes, and wherein each of the plurality of packet classes is associated with one of the one or more route descriptors, and wherein the routing step includes the steps of, each node, for each of the defined set of data packets, identifying the one of the route descriptors, in the route descriptor table of said each node, associated with the class of said each data packet;and routing the data packet from said each node to one or more of the other nodes on the one or more routes specified by the route descriptor with which the class of said each data packet is associated;and wherein to route the data packet through the one of the virtual logical networks associated with the one of the packet classes to which the data packet belongs;and changing the configuration of one or more of the configurable virtual logical networks by changing which ones of the nodes are in the configurable set of the nodes forming said one or more of the configurable virtual logical networks by changing one or more of the route descriptors of one or more of the route descriptor tables;and wherein: each node includes one or more channels, each of the channels for sending the data packets from said each node to a respective one of the other nodes;each route descriptor, of the route descriptor table of said each node, identifies one or more of said channels for routing the data packets, of the packet class associated with said each route descriptor, from said each node to one or more of the other nodes;the route descriptor of each node includes two bits associated with each of the channels of said each node;for each route descriptor of each node, a first of the two bits of the route descriptor indicates whether the channel associated with said first bit is a source channel for the packet class associated with said each route descriptor, and a second of the two bits of the route descriptor indicates whether the channel associated with said second bit is a target channel for data packets belonging to the packet class associated with said each route descriptor;and for each of the nodes: if one of the data packets enters said each node from one of the channels of the node that is indicated as a source channel by the route descriptor associated with the packet class to which said one of the data packets belongs, then routing said one of the data packets to the channels of the node indicated as target channels by the route descriptor associated with the packet class to which said one of the data packets belongs;and if one of the data packets enters said each node from one of the channels of the node that is not indicated as a source channel by the route descriptor associated with the packet class to which said one of the data packets belongs, then routing said one of the data packets to all the channels of the node indicated as source channels by the route descriptor associated with the packet class to which said one of the data packets belongs.
- 5An apparatus for routing data packets in a computer network having a multitude of nodes and a multitude of links connecting the nodes together, each data packet including a class identifier identifying the data packet as belonging to one of a plurality of packet classes, the apparatus comprising:a plurality of checking means, each of the checking means being located at a respective one of the nodes for checking each of a defined set of data packets, to identify the class of the data packet from the class identifier of the data packet;and a plurality of routing means, each of the routing means being located at a respective one of the nodes to route data packets from said one node to another one of the nodes based on the class of the data packets;and wherein an identified collective of the data packets is processed to compute a number of resulting data packets based on data of the identified collective of packets without reducing the number of data packets routed through the network;wherein a plurality of configurable virtual logical networks are embedded in the computer network, each of the virtual logical networks being formed by a configurable set of the nodes of the computer network, and each of the packet classes is associated with one of said virtual logical networks;wherein each node includes a route descriptor table including one or more route descriptors, each route descriptor specifying one or more routes from said each node to one or more of the other nodes, and wherein each of the plurality of packet classes is associated with one of the route descriptors, and wherein the data packets are routed from said one node to one or more of the other nodes by: each node, for each of the defined set of data packets, identifying the one of the route descriptors, in the route descriptor table of said each node, associated with the class of said each data packet;and routing the data packet from said each node to one or more of the other nodes on the one or more routes specified by the route descriptor with which the class of said each data packet is associated to route the data packet through the one of the virtual logical networks associated with the one of the packet classes to which the data packet belongs;and wherein: the configuration of one or more of the configurable virtual logical networks is changed by changing which ones of the nodes are in the configurable set of the nodes forming said one or more of the configurable virtual logical networks by changing one or more of the route descriptors of one or more of the route descriptor tables;each node includes one or more channels, each of the channels for sending the data packets from said each node to a respective one of the other nodes;each route descriptor, of the route descriptor table of said each node, identifies one or more of said channels for routing the data packets, of the packet class associated with said each route descriptor, from said each node to one or more of the other nodes;the route descriptor of each node includes two bits associated with each of the channels of said each node;for each route descriptor of each node, a first of the two bits of the route descriptor indicates whether the channel associated with said first bit is a source channel for the packet class associated with said each route descriptor, and a second of the two bits of the route descriptor indicates whether the channel associated with said second bit is a target channel for data packets belonging to the packet class associated with said each route descriptor;and for each of the nodes: if one of the data packets enters said each node from one of the channels of the node that is indicated as a source channel by the route descriptor associated with the packet class to which said one of the data packets belongs, then routing said one of the data packets to the channels of the node indicated as target channels by the route descriptor associated with the packet class to which said one of the data packets belongs;and if one of the data packets enters said each node from one of the channels of the node that is not indicated as a source channel by the route descriptor associated with the packet class to which said one of the data packets belongs, then routing said one of the data packets to all the channels of the node indicated as source channels by the route descriptor associated with the packet class to which said one of the data packets belongs.
- 11A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for routing data packets in a computer network having a multitude of nodes and a multitude of links connecting the nodes together, each data packet including a class identifier identifying the data packet as belonging to one of a plurality of packet classes, said method steps comprising:embedding a plurality of configurable virtual logical networks in the computer network, each of the virtual logical networks being formed by a configurable set of the nodes of the computer network, and each of the packet classes being associated with one of said virtual logical networks;each node, for each of a defined set of data packets, looking at the data packet to identify the class of the data packet from the class identifier of the data packet;and routing the data packet from said each node to another one of the nodes based on the identified class of the data packet;and wherein an identified collective of the data packets is processed to compute a number of resulting data packets based on data of the identified collective of packets without reducing the number of data packets routed through the network;wherein each node includes a route descriptor table including one or more route descriptors, each route descriptor specifying one or more routes from said each node to one or more of the other nodes, and wherein each of the plurality of packet classes is associated with one of the route descriptors, and wherein the routing step includes the steps of, each node, for each of the defined set of data packets, identifying the one of the route descriptors, in the route descriptor table of said each node, associated with the class of said each data packet;and routing the data packet from said each node to or more one of the other nodes on the one or more routes specified by the route descriptor with which the class of said each data packet is associated to route the data packet through the one of the virtual logical networks associated with the one of the packet classes to which the data packet belongs;and changing the configuration of one or more of the configurable virtual logical networks by changing which ones of the nodes are in the configurable set of the nodes forming said one or more of the configurable virtual logical networks by changing one or more of the route descriptors of one or more of the route descriptor tables;and wherein: each node includes one or more channels, each of the channels for sending the data packets from said each node to a respective one of the other nodes;each route descriptor, of the route descriptor table of said each node, identifies one or more of said channels for routing the data packets, of the packet class associated with said each route descriptor, from said each node to one or more of the other nodes;the route descriptor of each node includes two bits associated with each of the channels of said each node;for each route descriptor of each node, a first of the two bits of the route descriptor indicates whether the channel associated with said first bit is a source channel for the packet class associated with said each route descriptor, and a second of the two bits of the route descriptor indicates whether the channel associated with said second bit is a target channel for data packets belonging to the packet class associated with said each route descriptor;and for each of the nodes: if one of the data packets enters said each node from one of the channels of the node that is indicated as a source channel by the route descriptor associated with the packet class to which said one of the data packets belongs, then routing said one of the data packets to the channels of the node indicated as target channels by the route descriptor associated with the packet class to which said one of the data packets belongs;and if one of the data packets enters said each node from one of the channels of the node that is not indicated as a source channel by the route descriptor associated with the packet class to which said one of the data packets belongs, then routing said one of the data packets to all the channels of the node indicated as source channels by the route descriptor associated with the packet class to which said one of the data packets belongs.
- 15A method of identifying a collective of data packets on a computer system, the computer system including a multitude of interconnected processing nodes, and wherein a multitude of data packets are routed in the computer system, the method comprising the steps of:allocating a class identifier to identify a given class of data packets;providing each data packet in said given class with said class identifier identifying the data packet as belonging to one of a plurality of packet classes;providing each of the nodes with a set of channels for receiving and holding data packets;and each of at least some of the nodes, i) identifying a subset of the set of channels of the node, ii) evaluating the data packets at the node to identify the class of the data packet from the class identifier of the data packet, and iii) identifying said collective as complete when all of the channels of said subset have a data packet of the given class;and wherein an identified collective of the data packets is processed to compute a number of resulting data packets based on data of the identified collective of packets without reducing the number of data packets routed through the network;wherein a plurality of configurable virtual logical networks are embedded in the computer network, each of the virtual logical networks being formed by a configurable set of the nodes of the computer network, and each of the packet classes is associated with one of said virtual logical networks;wherein each of said at least some of the nodes includes a route descriptor table including one or more route descriptors, each the route descriptor specifying one or more routes for data packets from said node to one or more of the other nodes, and each of the plurality of packet classes is associated with one of the route descriptors, and further comprising the step of identifying the route descriptor, of the route descriptor table, associated with the class of the data packet to identify one or more routes for the collective of data packets from the node to one or more of the other nodes to route the data packet through the one or more of the virtual logical networks associated with the one of the packet classes to which the data packet belongs;and wherein: the configuration of one or more of the configurable virtual logical networks is changed by changing which ones of the nodes are in the configurable set of the nodes forming said one or more of the configurable virtual logical networks by changing one or more of the route descriptors of one or more of the route descriptor tables;each node includes one or more channels, each of the channels for sending the data packets from said each node to a respective one of the other nodes;each route descriptor, of the route descriptor table of said each node, identifies one or more of said channels for routing the data packets, of the packet class associated with said each route descriptor, from said each node to one or more of the other nodes;the route descriptor of each node includes two bits associated with each of the channels of said each node;for each route descriptor of each node, a first of the two bits of the route descriptor indicates whether the channel associated with said first bit is a source channel for the packet class associated with said each route descriptor, and a second of the two bits of the route descriptor indicates whether the channel associated with said second bit is a target channel for data packets belonging to the packet class associated with said each route descriptor;and for each of the nodes: if one of the data packets enters said each node from one of the channels of the node that is indicated as a source channel by the route descriptor associated with the packet class to which said one of the data packets belongs, then routing said one of the data packets to the channels of the node indicated as target channels by the route descriptor associated with the packet class to which said one of the data packets belongs;and if one of the data packets enters said each node from one of the channels of the node that is not indicated as a source channel by the route descriptor associated with the packet class to which said one of the data packets belongs, then routing said one of the data packets to all the channels of the node indicated as source channels by the route descriptor associated with the packet class to which said one of the data packets belongs.
Independent claims4
37 paragraphs in 6 sections, as filed
CROSS REFERENCE TO RELATED APPLICATIONS
0001This application is a continuation of co-pending application Ser. No. 11/100,207, filed Apr. 6, 2005, for “Collective Network Routing”, the disclosure of which is herein incorporated by reference in its entirety, which claims the benefit of Provisional Application No. 60/625,026, for “Collective Network Routing,” filed Nov. 4, 2004.
GOVERNMENT CONTRACT
0002This invention was made with Government support under Subcontract B517552 under prime contract W-7405-ENG-48 awarded by The Department of Energy. The Government has certain rights in this invention.
BACKGROUND OF THE INVENTION
00031. Field of the Invention
0004This invention generally relates to the field of high-speed digital data processing systems; and more specifically, the invention relates to methods and systems for routing messages in computer systems.
00052. Background Art
0006Massively parallel computer systems comprise a large number of data processing elements, which are typically connected using a network. Each node connected to the said network typically is comprised of a network interface and the local data processing elements. The network interface receives data from the network, which is addressed to this particular node, and the network interface also injects the local results into the network. Data is typically routed through the network in packets; and the packets are routed by a plurality of routers, typically one router per node. The network, specifically the plurality of the network routers, ensures the movement of the injected packets between the connected nodes towards the desired packet destinations.
0007Typically, the node, which produces a data packet, specifies the desire destination of that packet by specifically providing a unique address of the said packet destination. Upon injection of such an attributed packet, the plurality of network routers make local routing decisions to incrementally reduce the distance of the packet to its destination by forwarding the packet to a connected node closer to the specified destination. This universal point-to-point style of communication is state of the art and used by most of today's implemented computer networks. The drawback of using addresses as part of the packet attributes is the limitation of the network scalability to the maximal number of addresses presentable with the bits dedicated to the packet address.
0008Furthermore, additional auxiliary networks have been used to implement special support for collective communication such as global broadcasts to all connected nodes (CM-5). These networks have typically the topology of a tree or a fat tree, since the tree topology provides the minimal distance between any two connected nodes and, thus, minimal communication latency.
0009There are several constraints imposed to particular nodes by the tree topology. For example, the dedicated root node splits the network into two domains, left and right. Traffic from one domain targeted to the other domain must go through the root node under any circumstances. A broken root-node, router and/or links, will render the entire network useless since no packets can be routed from the left to the right partition. In addition, leaf nodes in a tree network have only one connection to the network. If this link is broken, the entire network is also not functional anymore.
SUMMARY OF THE INVENTION
0010An object of this invention is to provide an improved method and system for routing data packets through multi-node computer networks.
0011Another object of the invention is to avoid using addresses to route data packets through computer networks by classifying the packets into a limited set of classes for which the packet behavior can be specified in detail on a per-node basis.
0012A further object of the present invention is to allow the nodes of a multi-node computer network to utilize an arbitrary number of links between nodes while still assuring deterministic packet routes through the network and thus allow for well-defined, well-behaving collective operations.
0013Another object of this invention is to route data packets through a multi-node computer network by employing a general address-less static routing method applicable to arbitrary network topologies, which allows to embed a plurality of virtual logical networks in one physical network.
0014A further object of the invention is to enable a multi-node computer system to define and process collective packet operations such as global packet reductions (global maximum or similar) on networks of arbitrary size and shape.
0015These and other objectives are attained with a method of and a system for routing data packets in a computer network having a multitude of nodes and a multitude of links connecting the nodes together, and wherein each data packet includes a class identifier. The method comprises the steps of, each node, for each of a defined set of data packets, checking or looking at the data packet to identify the class of the data packet, and routing the data packet from the node based on the identified class of the data packet.
0016The preferred embodiment of the invention, described in detail below, provides a method and apparatus for identifying collectives of packets among a plurality of packets on a network in a system of connected data processing elements which are connected using an arbitrary network topology. The preferred method yields local routing decisions as well as decisions whether collective packet reduction operations or other operations should be applied to the identified packet collective. The local result of the said collective packet operation is routed to the collective of connected nodes and/or locally received. The preferred embodiment of the invention allows the specification of packet data reductions among an arbitrary set of nodes, connected using an arbitrary interconnection topology. In addition to packet reductions, the invention also can be utilized to multi-/broadcast packets among one or more configurable sets of nodes in a network.
0017The preferred embodiment of the invention provides a number of important advantages. For instance, the invention avoids using addresses—and thus avoids their associated limitations—by classifying packets into a limited set of classes for which the packet behavior can be specified in detail on a per-node basis using, for example, local class descriptor tables. Each class may have a virtually unlimited set of nodes participating.
0018In addition, this preferred embodiment allows nodes to utilize an arbitrary number of links between nodes while still assuring deterministic packet routes through the network and, thus, allows for well-defined, well-behaving collective operations. Since the effective topology is defined per packet class, the topology may be modified dynamically, for example to compensate for broken links or to extend or shrink the affected network partition. Changes of the logical network topology may also be transparent to the application.
0019Further, the preferred embodiment of the invention disclosed herein solves several problems of auxiliary networks by employing a general address-less static routing method applicable to arbitrary network topologies, which allows to embed a plurality of virtual logical networks in one physical network; for example tree networks with redundant links or irregular networks. The absence of source or target addresses allows the application of this invention to networks of any size and shape.
0020In addition, the invention, in its preferred embodiment, allows to define and process collective packet operations such as global packet reductions (global sum or global maximum or similar) on networks of arbitrary size and shape.
0021Further benefits and advantages of the invention will become apparent from a consideration of the following detailed description, given with reference to the accompanying drawings, which specify and show preferred embodiments of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
0022<figref idref="DRAWINGS">FIG. 1</figref> shows the general architecture of a network comprising a plurality of nodes connected by an interconnection network of the degree n.
0023<figref idref="DRAWINGS">FIG. 2</figref> describes the general structure of a single node of the network of <figref idref="DRAWINGS">FIG. 1</figref>.
0024<figref idref="DRAWINGS">FIG. 3</figref> depicts a sparsely connected network topology, suitable for the invention described herein.
0025<figref idref="DRAWINGS">FIG. 4</figref> shows a route descriptor table comprising n route descriptors describing the packet behavior for a node with four network links plus one local client.
0026<figref idref="DRAWINGS">FIG. 5</figref> shows one exemplary route descriptor configuration for class <b>0</b> of the two nodes A and B of the network shown in <figref idref="DRAWINGS">FIG. 3</figref>.
0027<figref idref="DRAWINGS">FIG. 6</figref> illustrates a data packet that may be used in the practice of this invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
0028The herein described invention solves the problem to describe packet routes of single packets and to define packet collectives for collective packet operations among a plurality of nodes connected by a network with arbitrary topology of degree n as shown at <b>10</b> in <figref idref="DRAWINGS">FIG. 1</figref>. Each node <b>12</b> itself comprises the network interface and the local client, which contains the processing elements for data processing of the received data and for injecting results of the local computation into the network.
0029The general structure of the network interface with four links, for a network of degree four, is also shown in <figref idref="DRAWINGS">FIG. 2</figref>. Each network link comprises a network receiver <b>14</b>, which receives packets from the network link and presents the packets to the arbiter <b>16</b>, which routes the packets, via sender <b>20</b>, towards the targets specified using the collective class routing method herein described. The network interface also includes a local client CPU and memory, represented at <b>22</b>.
0030In particular, the arbiter <b>16</b> first evaluates the packet header information, shown at <b>24</b> in <figref idref="DRAWINGS">FIG. 6</figref>, such as the class <b>26</b> of the packet and the specified packet opcode <b>30</b>. Using the class information, the arbiter <b>16</b> retrieves the appropriate route descriptor from the route descriptor table, shown at <b>32</b> in <figref idref="DRAWINGS">FIG. 4</figref>. The route descriptor table can be read and written and contains the specific description <b>34</b> of the packet behavior for all available packet classes for this particular node. The route descriptor table may be different for each node in the network, depending on the position of the node in the logical network structure and on the availability of physical connections to neighboring nodes.
0031The route descriptor table <b>32</b> may be initialized immediately after booting the local client. During runtime, packet classes may be allocated and initialized to implement a specific communication pattern such as packet broadcast or a packet reduction. From that time on, packets, injected with the appropriate class-tag, follow the configured packet routes according to the route descriptors deposited in the nodes along the packet path through the network. For collective packet operations such as reductions, the route descriptor <b>34</b> also indicates which packets are members of the collective. The router <b>36</b> will wait until the packet collective is complete and it will then forward the packet collective while applying the specified packet operation.
0032The collective is considered to be complete if all channels which are identified as source-channels have collective packets available. Whether a packet is considered a collective packet or not is specified on a per-packet basis using the packet opcode field <b>30</b> of the packet header <b>22</b>, shown in <figref idref="DRAWINGS">FIG. 6</figref>.
0033For the configuration shown in <figref idref="DRAWINGS">FIG. 5</figref>, for example, Node A considers a packet collective as complete if the receivers of channel <b>2</b>, channel <b>1</b>, and the local client signal the availability of a packet, which is marked with an opcode such as ADD or MAX, which in turn indicates a collective operation. In that case, the router applies the specified operation to the packet collective and routes the result of that operation to the sender of channel <b>0</b>.
0034Packets, not marked as operands of collective packet operations, are simply routed to the target channels without waiting for the other sources. In general the rule for forwarding packets is: if the packet enters the node from a channel which is marked as a source channel for the given packet class, then the packet or the packet collective is routed to the specified target channels of that class. If the channel is not an explicit source channel, then the packet is routed to all the source channels and no collective operation is applied even though the packet opcode may request a collective operation.
0035The apparatus enabling the method of collective class routing, the route descriptor table <b>32</b>, is an array of registers, which can be read and written, comprising at least two bits per potential packet route (channel). One bit indicates whether the particular channel is a dedicated source channel for that packet class. The other bit is set for all channels which are dedicated targets for packets of the given class. Thus the descriptor describes the packet routes and the packet collective for collective operations.
0036With reference to <figref idref="DRAWINGS">FIG. 6</figref>, each packet header comprises the packet class <b>26</b> and the packet opcode <b>30</b>. The class is used to identify the appropriate packet routes, and the opcode is used to decide whether collective operations should be applied. <figref idref="DRAWINGS">FIG. 5</figref> shows an example of a particular configuration for class <b>0</b> of the two nodes A and B of the network shown in <figref idref="DRAWINGS">FIG. 3</figref>. It should be noted that a number of configurations may coexist in parallel, each using a different class with different sources and targets specified.
0037While it is apparent that the invention herein disclosed is well calculated to fulfill the objects stated above, it will be appreciated that numerous modifications and embodiments may be devised by those skilled in the art, and it is intended that the appended claims cover all such modifications and embodiments as fall within the true spirit and scope of the present invention.
Contents6
4 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US9882801B2 | Cited by | United States of America | Applicant |
| US9246792B2 | Cited by | United States of America | Search report |
| US2012189012A1 | Cited by | United States of America | Pre-grant |
| US2004078493A1 | Cites | United States of America | Applicant |
| US2004258069A1 | Cites | United States of America | Search report |
| US2005018605A1 | Cites | United States of America | Search report |
| US2007297401A1 | Cites | United States of America | Applicant |
| US2009086644A1 | Cites | United States of America | Search report |
| US5129093A | Cites | United States of America | Applicant |
| US5181017A | Cites | United States of America | Applicant |
| US5940372A | Cites | United States of America | Applicant |
| US6275845B1 | Cites | United States of America | Applicant |
| US6295597B1 | Cites | United States of America | Applicant |
| US6563798B1 | Cites | United States of America | Applicant |
| US6563832B1 | Cites | United States of America | Applicant |
| US6590867B1 | Cites | United States of America | Applicant |
| US6775284B1 | Cites | United States of America | Applicant |
| US7251218B2 | Cites | United States of America | Applicant |
| US20040078493A1 | Cites | United States of America | Applicant |
| US20040258069A1 | Cites | United States of America | Search report |
| US20050018605A1 | Cites | United States of America | Search report |
| US20070297401A1 | Cites | United States of America | Applicant |
| US20090086644A1 | Cites | United States of America | Search report |
| Overview of the Token Ring Switching;. | Non-patent | – | Applicant |
| MPI: A Message Passing Interface;. | Non-patent | – | Applicant |
| Dedicated Token Ring Concentrator MIB. | Non-patent | – | Applicant |
| An Architecture for Differentiated Services;. | Non-patent | – | Applicant |
| Class of Service in 802.1. | Non-patent | – | Applicant |
| Upgrading and Reporting Networks;. | Non-patent | – | Applicant |
| William J. Daily, “Virtual-Channel Flow Control”, IEEE Transactions on Parallel and Distributed Systems, vol. 3, No. 2, Mar. 1992; pp. 194-205. | Non-patent | – | Applicant |
| Allan Gottlieb, et al., The NYU Ultracomputer—Designing a MIMD, Shared-Memory Parallel Machines (Extended Abstract), IEEE, 1982; pp. 239-254. | Non-patent | – | Applicant |
| G. F. Pfister, et al., “The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture”, IEEE, 1985; pp. 764-771. | Non-patent | – | Applicant |
| Steven L. Scott, “Synchronization and Communication in the T3E Multiprocessor”, ASPLOS-VII, Cambridge, MA, Oct. 2-4, 1996; pp. 1-11. | Non-patent | – | Applicant |
| Charles E. Leiserson, et al., “The Network Architecture of the Connection Machine CM-5”, Thinking Machines Corporation, Cambridge MA, Mar. 21, 1994; pp. 1-16. | Non-patent | – | Applicant |
| Paul F. Reynolds, Jr., et al., “Making Parallel Simulations Go Fast”, Proceedings of the 1992 Winter Simulation Conference; pp. 646-656. | Non-patent | – | Applicant |
| George Almasi, et al., “An Overview of the Blue Gene/L System Software Organization”. | Non-patent | – | Applicant |
| Chung-Sheng Li, et al., IEEE Journal on Selected Areas in Communications, vol. 14, No. 2, Feb. 1996; pp. 306-316. | Non-patent | – | Applicant |
| Sheau-Ru Tong, et al., “A Multi-Stage Interconnection Network With Packet Diverting and Limited Combining Capabilities”, Jan. 11, 1993; pp. 1-38. | Non-patent | – | Applicant |
| G. Andrew Boughton, “Arctic Routing Clip”, Laboratory for Computer Science, Computation Structures Group Memo 373, Mar. 7, 1994. | Non-patent | – | Applicant |
| Christopher F. Joerg, et al., “The Monsoon Interconnection Network”, Laboratory for Computer Science, Computation Structures Group Memo 340, Jan. 1991; pp. 1-4. | Non-patent | – | Applicant |
| Mike Barnett, et al., “Building a High-Performance Collective Communication Library”. | Non-patent | – | Applicant |
| Vijay Karamcheti, et al., “Do Faster Routers Imply Faster Communication?”, In Proceedings of Parallel Computer Routing and Communications Workshop, Seattle, Washington, May 16-18, 1994. | Non-patent | – | Applicant |
| Philip K. McKinley, et al., “Unicast-Based Multicast Communication in Wormhole-Routed Networks”, IEEE Transactions on Parallel and Distributed Systems, Jan. 1992; pp. 1-31. | Non-patent | – | Applicant |
| George Almási, et al., “MPI on BlueGene/L: Designing an Efficient General Purpose Messaging Solution for a Large Cellular System”, IBM Research Report, RC22851, Jul. 22, 2003, Computer Science; pp. 1-10. | Non-patent | – | Applicant |
| James T. Kuehn, et al., “The Horizon Supercomputing System: Architecture and Software”, IEEE, 1988; pp. 28-34. | Non-patent | – | Applicant |
| Jack J. Dongarra, et al., A Message Passing Standard for MPP and Workstations, Communications of the ACM, vol. 39, No. 7, Jul. 1996; pp. 84-90. | Non-patent | – | Applicant |
| Melanie L. Fulgham, et al., “Triplex: A Multi-class Routing Algorithm”, pp. 127-138; and. | Non-patent | – | Applicant |
| Paul F. Reynolds, et al., “Making Parallel Simulations Go Fast”, Computer Science Report No. CS-92-21, Jun. 17, 1992; pp. 1-18. | Non-patent | – | Applicant |
| Overview of the Token Ring Switching;. | Non-patent | – | Applicant |
| MPI: A Message Passing Interface;. | Non-patent | – | Applicant |
| Dedicated Token Ring Concentrator MIB. | Non-patent | – | Applicant |
| An Architecture for Differentiated Services;. | Non-patent | – | Applicant |
| Class of Service in 802.1. | Non-patent | – | Applicant |
| Upgrading and Reporting Networks;. | Non-patent | – | Applicant |
| William J. Daily, "Virtual-Channel Flow Control", IEEE Transactions on Parallel and Distributed Systems, vol. 3, No. 2, Mar. 1992; pp. 194-205. | Non-patent | – | Applicant |
| Allan Gottlieb, et al., The NYU Ultracomputer-Designing a MIMD, Shared-Memory Parallel Machines (Extended Abstract), IEEE, 1982; pp. 239-254. | Non-patent | – | Applicant |
| G. F. Pfister, et al., "The IBM Research Parallel Processor Prototype (RP3): Introduction and Architecture", IEEE, 1985; pp. 764-771. | Non-patent | – | Applicant |
| Steven L. Scott, "Synchronization and Communication in the T3E Multiprocessor", ASPLOS-VII, Cambridge, MA, Oct. 2-4, 1996; pp. 1-11. | Non-patent | – | Applicant |
| Charles E. Leiserson, et al., "The Network Architecture of the Connection Machine CM-5", Thinking Machines Corporation, Cambridge MA, Mar. 21, 1994; pp. 1-16. | Non-patent | – | Applicant |
| Paul F. Reynolds, Jr., et al., "Making Parallel Simulations Go Fast", Proceedings of the 1992 Winter Simulation Conference; pp. 646-656. | Non-patent | – | Applicant |
| George Almasi, et al., "An Overview of the Blue Gene/L System Software Organization". | Non-patent | – | Applicant |
| Chung-Sheng Li, et al., IEEE Journal on Selected Areas in Communications, vol. 14, No. 2, Feb. 1996; pp. 306-316. | Non-patent | – | Applicant |
| Sheau-Ru Tong, et al., "A Multi-Stage Interconnection Network With Packet Diverting and Limited Combining Capabilities", Jan. 11, 1993; pp. 1-38. | Non-patent | – | Applicant |
| G. Andrew Boughton, "Arctic Routing Clip", Laboratory for Computer Science, Computation Structures Group Memo 373, Mar. 7, 1994. | Non-patent | – | Applicant |
| Christopher F. Joerg, et al., "The Monsoon Interconnection Network", Laboratory for Computer Science, Computation Structures Group Memo 340, Jan. 1991; pp. 1-4. | Non-patent | – | Applicant |
| Mike Barnett, et al., "Building a High-Performance Collective Communication Library". | Non-patent | – | Applicant |
| Vijay Karamcheti, et al., "Do Faster Routers Imply Faster Communication?", In Proceedings of Parallel Computer Routing and Communications Workshop, Seattle, Washington, May 16-18, 1994. | Non-patent | – | Applicant |
| Philip K. McKinley, et al., "Unicast-Based Multicast Communication in Wormhole-Routed Networks", IEEE Transactions on Parallel and Distributed Systems, Jan. 1992; pp. 1-31. | Non-patent | – | Applicant |
| George Almási, et al., "MPI on BlueGene/L: Designing an Efficient General Purpose Messaging Solution for a Large Cellular System", IBM Research Report, RC22851, Jul. 22, 2003, Computer Science; pp. 1-10. | Non-patent | – | Applicant |
| James T. Kuehn, et al., "The Horizon Supercomputing System: Architecture and Software", IEEE, 1988; pp. 28-34. | Non-patent | – | Applicant |
| Jack J. Dongarra, et al., A Message Passing Standard for MPP and Workstations, Communications of the ACM, vol. 39, No. 7, Jul. 1996; pp. 84-90. | Non-patent | – | Applicant |
| Melanie L. Fulgham, et al., "Triplex: A Multi-class Routing Algorithm", pp. 127-138; and. | Non-patent | – | Applicant |
| Paul F. Reynolds, et al., "Making Parallel Simulations Go Fast", Computer Science Report No. CS-92-21, Jun. 17, 1992; pp. 1-18. | Non-patent | – | Applicant |
3 members in 1 office
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 62502604 | United States of America | P | |
| 10020705 | United States of America | A |
Members3
| Document | Office | Kind | |
|---|---|---|---|
| US2006227774A1 | United States of America | A1 | |
| US2008298368A1 | United States of America | A1 | |
| US8902892B2This record | United States of America | B2 |
88 transactions on the USPTO file
Allowed after 4 non-final rejections, 3 final rejections and 2 RCEs.
- Non-final rejections
- 4
- Final rejections
- 3
- RCEs
- 2
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| No Government Interest - Patent to Issue to Applicant (No Letter to Applicant)L185 | L185 | |
| Dispatch to FDCD1935 | D1935 | |
| Dispatch to FDCD1935 | D1935 | |
| Correspondence Address ChangeC.AD | C.AD | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| 90-Day Letter to DOEL182 | L182 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Interview Summary - Examiner Initiated - TelephonicEXET | EXET | |
| Interview Summary - Examiner InitiatedEXIE | EXIE | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Examiner Interview Summary (PTOL - 413)MEXIN | MEXIN | |
| Examiner Interview Summary Record (PTOL - 413)EXIN | EXIN | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Sent to Classification ContractorPGPC | PGPC | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Application Is Now CompleteCOMP | COMP | |
| Cleared by L&R (LARS)L128 | L128 | |
| Referred to Level 2 (LARS) by OIPE CSRL198 | L198 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.)FEPP | FEPP |
Numbers
- Publication
- 8902892
- Application
- 12173073
Titles
- English
- Collective network routing
Patent term adjustment
- A delay
- +560 daysthe office missed an examination deadline
- Net adjustment
- 560 days
Classification
- CPC, 3
- H04L45/54
- H04L45/00
- H04L45/302
- IPC, 6
- H04L12 28
- H04L12 741
- H04L12 701
- H04L12 725
- H04L45 00
- H04L45 74