IP Library Granted Patent US 9,262,372
Granted Patent B1
US 9,262,372 · App. 13/917,042 · Granted Feb 16, 2016

Achieving balanced interconnectivity in a computer network

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,262,372
App. No.
13/917,042
Granted
Feb 16, 2016
Kind
B1
Abstract

Systems and methods of configuring a computer network are provided. The network can include a first stage of M nodes and a second stage of N nodes. Each node in the first stage can form F communication links with nodes in the second stage and each node in the second stage can form S communication links with nodes in the first stage. Nodes in the first stage are connected to each other only through communication links connecting nodes in the first stage to nodes in the second stage. Communication links between the nodes can be assigned such that the minimum value of the throughput between any pair of nodes in the first stage is maximized.

Claims (35)

1. A computer-implemented method for configuring a network comprising a first stage of M nodes and a second stage of N nodes, wherein each node in the first stage can form F communication links with nodes in the second stage and each node in the second stage can form S communication links with nodes in the first stage, the method comprising:

assigning, between each pair of network nodes including one node in the first stage and one node in the second stage, a number of communication links equal to (F−(F % N))/N;

defining a binary matrix representing the network, wherein rows of the matrix represent nodes in the lower stage, columns in the matrix represent nodes in the upper stage, and values of cells in the matrix represent the remaining communication links between each node pair;

setting the value of each cell of the matrix to a 1 or a 0, such that a number of 1s in each row of the matrix does not exceed a first selected value, a number of 1s in each column of the matrix does not exceed a second selected value, and a number of 1s in the same column for any two rows of the matrix is equal to one of the floor and ceiling of a third selected value; and

controlling a reconfigurable switch to form an additional communication link between the nodes of each node pair whose corresponding matrix cell has a value of 1.

2. The computer-implemented method of claim 1 , wherein the first selected value is equal to the remainder of the quotient of F divided by N.

3. The computer-implemented method of claim 1 , wherein the second selected value is equal to N−((F*(M−(M % S)))/S).

4. The computer-implemented method of claim 1 , wherein the third selected value is equal to (F % N)(S−(M*(S−(S % N)/N))−1)/(M−1).

5. The computer-implemented method of claim 1 , wherein the method assigns communication links such that the maximum difference between the number of communication links assigned to any pair of network nodes is one.

6. The computer-implemented method of claim 1 , wherein the method assigns communication links such that the minimum throughput between all pairs of nodes in the first stage is maximized.

7. The computer-implemented method of claim 1 , further comprising disseminating the communication link assignments to a dynamic optical switch coupled to the network nodes.

8. A system for configuring a network comprising a first stage of M nodes and a second stage of N nodes, wherein each node in the first stage can form F communication links with nodes in the second stage and each node in the second stage can form S communication links with nodes in the first stage, the system comprising:

a data processing system configured to:

assign, between each pair of network nodes including one node in the first stage and one node in the second stage, a number of communication links equal to (F−(F % N))/N;

define a binary matrix representing the network, wherein rows of the matrix represent nodes in the lower stage, columns in the matrix represent nodes in the upper stage, and values of cells in the matrix represent the remaining communication links between each node pair;

set the value of each cell of the matrix to a 1 or a 0, such that a number of 1s in each row of the matrix does not exceed a first selected value, a number of 1s in each column of the matrix does not exceed a second selected value, and a number of 1s in the same column for any two rows of the matrix is equal to one of the floor and ceiling of a third selected value; and

assign an additional communication link between the nodes of each node pair whose corresponding matrix cell has a value of 1; and

a plurality of reconfigurable switches configured to implement the assignments of communication links performed by the data processing system.

9. The system of claim 8 , wherein the data processing system is further configured to calculate the first selected value as the remainder of the quotient of F divided by N.

10. The system of claim 8 , wherein the data processing system is further configured to calculate the second selected value as N−((F*(M−(M % S)))/S).

11. The system of claim 8 , wherein the data processing system is further configured to calculate the third selected value as (F % N)(S−(M*(S−(S % N)/N))−1)/(M−1).

12. The system of claim 8 , wherein the data processing system is further configured to assign communication links such that the maximum difference between the number of communication links assigned to any pair of network nodes is one.

13. The system of claim 8 , wherein the data processing system is further configured to assign communication links such that the minimum throughput between all pairs of nodes in the first stage is maximized.

14. The system of claim 8 , further comprising disseminating a dynamic optical switch coupled to the nodes, wherein the data processing system is further configured to disseminate the communication link assignments to the dynamic optical switch.

15. A non-transitory computer readable storage medium having instructions encoded thereon which, when executed by a processor, cause the processor to perform a method for configuring a network comprising a first stage of M nodes and a second stage of N nodes, wherein each node in the first stage can form F communication links with nodes in the second stage and each node in the second stage can form S communication links with nodes in the first stage, the method comprising:

assigning, between each pair of network nodes including one node in the first stage and one node in the second stage, a number of communication links equal to (F−(F % N))/N;

defining a binary matrix representing the network, wherein rows of the matrix represent nodes in the lower stage, columns in the matrix represent nodes in the upper stage, and values of cells in the matrix represent the remaining communication links between each node pair;

setting the value of each cell of the matrix to a 1 or a 0, such that a number of 1s in each row of the matrix does not exceed a first selected value, a number of 1s in each column of the matrix does not exceed a second selected value, and a number of 1s in the same column for any two rows of the matrix is equal to one of the floor and ceiling of a third selected value; and

assigning an additional communication link to each node pair whose corresponding matrix cell has a value of 1.

16. The non-transitory computer readable storage medium of claim 15 , wherein the instructions, when executed by the processor, cause the processor to calculate the first selected value as the remainder of the quotient of F divided by N.

17. The non-transitory computer readable storage medium of claim 15 , wherein the instructions, when executed by the processor, cause the processor to calculate the second selected value as N−((F*(M−(M % S)))/S).

18. The non-transitory computer readable storage medium of claim 15 , wherein the instructions, when executed by the processor, cause the processor to calculate the third selected value as (F % N)(S−(M*(S−(S % N)/N))−1)/(M−1).

19. The non-transitory computer readable storage medium of claim 15 , wherein the instructions, when executed by the processor, cause the processor to assign communication links such that the maximum difference between the number of communication links assigned to any pair of network nodes is one.

20. The non-transitory computer readable storage medium of claim 15 , wherein the instructions, when executed by the processor, cause the processor to assign communication links such that the minimum throughput between all pairs of nodes in the first stage is maximized.

21. The non-transitory computer readable storage medium of claim 15 , wherein the instructions, when executed by the processor, cause the processor to disseminate the communication link assignments to a dynamic optical switch coupled to the network nodes.

Assignments (3)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 030607 FRAME: 0827. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 27, 2017
From: KABBANI, ABDUL; FELDERMAN, ROBERT E.
To: GOOGLE INC.
Reel/Frame 044035/0666 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2013
From: KABBANI, ABDUL; FELDERMAN, ROBERT E.
To: GOOGLE, INC.
Reel/Frame 030607/0827 →