Bandwidth on-demand adaptive routing
First Claim
1. A computer system comprising:
- a first computer comprising;
a memory;
a processor coupled to the memory to execute instructions fetched from the memory;
a plurality of network ports, each network port of the plurality of network ports being connectable, via a respective link, to a respective network port on another computer of the computer system; and
an adaptive router coupled to the memory, the processor and the plurality of network ports, wherein the adaptive router;
utilizes 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 provide non-uniform memory access to memory on the another computer by the processor on the first computer;
stores, for at least one network port of the plurality of network ports, information associating the network port with at least one other network port of the plurality of network ports as an at least one secondary network port;
accumulates historical information about an amount of data transferred via each port of the plurality of network ports; and
automatically determines, 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 sending the packet via one of the at least one secondary network port.
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.
-
Citations
29 Claims
-
1. A computer system comprising:
a first computer comprising; a memory; a processor coupled to the memory to execute instructions fetched from the memory; a plurality of network ports, each network port of the plurality of network ports being connectable, via a respective link, to a respective network port on another computer of the computer system; and an adaptive router coupled to the memory, the processor and the plurality of network ports, wherein the adaptive router; utilizes 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 provide non-uniform memory access to memory on the another computer by the processor on the first computer; stores, for at least one network port of the plurality of network ports, information associating the network port with at least one other network port of the plurality of network ports as an at least one secondary network port; accumulates historical information about an amount of data transferred via each port of the plurality of network ports; and automatically determines, 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 sending the packet via one of the at least one secondary network port. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
16. A method for routing packets, the method comprising:
-
by a computer system that includes a first computer having a memory, a processor coupled to the memory to execute instructions fetched from the memory, a plurality of network ports, each network port of the plurality of network ports being connectable, via a respective link, to a respective network port on another computer of the computer system, wherein the first computer utilizes 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, for at least one network port of the plurality of network ports, storing information associating the network port with at least one other network port 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 sending the packet via one of the at least one secondary network port. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification