Bandwidth On-Demand Adaptive Routing
First Claim
1. A computer system comprising:
- a first computer comprising;
a memory;
a processor coupled to the memory and configured to execute instructions fetched from the memory;
a plurality of network ports, each network port of the plurality of network ports configured to be connectable, via a respective link, to a respective network port on another computer of the computer system;
an adaptive router coupled to the memory, the processor and the plurality of network ports and configured to;
utilizing packets sent via a port of the plurality of network ports and its respective link, provide non-uniform memory access to the memory by a processor on the another computer and provide non-uniform memory access to memory on the another computer by the processor on the first computer;
for each network port of the plurality of network ports, store information associating the network port with at least one of the plurality of network ports as an at least one secondary network port;
accumulate historical information about an amount of data transferred via each port of the plurality of network ports; and
automatically select, per packet, based at least in part on the historical information and independent of any information about congestion related to any port of the plurality of network ports, whether to consider using one of the at least one secondary network port, over which to send the packet.
5 Assignments
0 Petitions
Accused Products
Abstract
An adaptive router anticipates possible future congestion and enables selection of an alternative route before the congestion occurs, thereby avoiding the congestion. The adaptive router may use a primary route until it predicts congestion will occur. The adaptive router measures packet traffic volume, such as flit volume, on a primary network interface to anticipate the congestion. The adaptive router maintains a trailing sum of the number of flits handled by the primary network interface over a trailing time period. If the sum exceeds a threshold value, the adaptive router assumes the route will become congested, and the adaptive router enables considering routing future packets, or at least the current packet, over possible secondary routes.
68 Citations
29 Claims
-
1. A computer system comprising:
a first computer comprising; a memory; a processor coupled to the memory and configured to execute instructions fetched from the memory; a plurality of network ports, each network port of the plurality of network ports configured to be connectable, via a respective link, to a respective network port on another computer of the computer system; an adaptive router coupled to the memory, the processor and the plurality of network ports and configured to; utilizing packets sent via a port of the plurality of network ports and its respective link, provide non-uniform memory access to the memory by a processor on the another computer and provide non-uniform memory access to memory on the another computer by the processor on the first computer; for each network port of the plurality of network ports, store information associating the network port with at least one of the plurality of network ports as an at least one secondary network port; accumulate historical information about an amount of data transferred via each port of the plurality of network ports; and automatically select, per packet, based at least in part on the historical information and independent of any information about congestion related to any port of the plurality of network ports, whether to consider using one of the at least one secondary network port, over which to send the packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
16. A method for routing packets within a computer system that includes a first computer having a memory, a processor coupled to the memory and configured to execute instructions fetched from the memory, a plurality of network ports, each network port of the plurality of network ports being configured to be connectable, via a respective link, to a respective network port on another computer of the computer system, wherein the first computer is configured to utilize packets sent via a port of the plurality of network ports and its respective link to provide non-uniform memory access to the memory by a processor on the another computer and to provide non-uniform memory access to memory on the another computer by the processor on the first computer, the method comprising:
-
for each network port of the plurality of network ports, storing information associating the network port with at least one of the plurality of network ports as an at least one secondary network port; accumulating historical information about an amount of data transferred via each port of the plurality of network ports; and automatically selecting, per packet, based at least in part on the historical information and independent of any information about congestion related to any port of the plurality of network ports, whether to consider using one of the at least one secondary network port, over which to send the packet. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification