# US 10,374,979 B2 · System and method for supporting efficient load-balancing in a high performance computing (HPC) environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,374,979 B2
- Document ID: US10374979B2
- Status: Granted
- Kind: B2
- Application number: 15/845,773
- Filed: 2017-12-18
- Published: 2018-05-03
- Granted: 2019-08-06
- Earliest claimed: 2014-07-11
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Feroz Zahid; Ernst Gunnar Gran; Bartosz Bogdanski; Bjørn Dag Johnsen
- Web page: https://patentgrep.com/patent/US10374979B2

## CPC

- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 45/48: Routing tree calculation
- H04L 49/25: Routing or path finding in a switch fabric
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and systems for supporting efficient load balancing among a plurality of switches and a plurality of end nodes arranged in a tree topology in a network environment. The methods and systems can sort the plurality of end nodes, wherein the plurality of end nodes are sorted in a decreasing order of a receive weight. The method and system may further route, in the decreasing order of receive weights, the plurality of end nodes, wherein the routing comprises selecting at least one down-going port and at least one up-going port. Further, the method and system can increase an accumulated downward weight on each selected down-going port by the receive weight of the routed end node, and increase an accumulated upward weight on each selected up-going port by the receive weight of the routed end node.

## Claims

### Claim 1

A method for supporting efficient load balancing among a plurality of switches and a plurality of end nodes arranged in a tree topology in a network environment, the method comprising:
sorting the plurality of end nodes, the plurality of end nodes being on one more of the plurality of switches, wherein the plurality of end nodes are sorted in a decreasing order of a receive weight; and
routing, in the decreasing order of receive weights, the plurality of end nodes, wherein the routing comprises selecting at least one down-going port and at least one up-going port;
wherein selecting the at least one down-going port comprises
comparing a plurality of down-going ports and selecting the down-going port having a least accumulated downward weight, and
in response to two or more down-going ports having the same least accumulated downward weight, comparing the two or more down-going ports having the same least accumulated downward weight and selecting from the two or more down-going ports having the same least accumulated downward weight the down-going port having a least accumulated upward weight.

### Claim 2 (depends on 1)

The method of claim 1, wherein selecting the at least one up-going port comprises comparing a plurality of up-going ports and selecting the up-going port having a least accumulated upward weight.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
receiving the receive weight for each of the plurality of end nodes on one or more leaf switches in a network.

### Claim 4 (depends on 3)

The method of claim 3, wherein the receive weight for each of the plurality of end nodes on the one more leaf switches in a network is received from an input from an administrator.

### Claim 5 (depends on 3)

The method of claim 3, wherein receive weight for each of the plurality of end nodes on the one or more leaf switches in a network is received from an input, the input being related to monitored traffic on each of the plurality of end nodes, respectively.

### Claim 6

A method for supporting efficient load balancing among a plurality of switches and a plurality of end nodes arranged in a tree topology in a network environment, the method comprising:
sorting the plurality of end nodes, the plurality of end nodes being on one more of the plurality of switches, wherein the plurality of end nodes are sorted in a decreasing order of a receive weight; and
routing, in the decreasing order of receive weights, the plurality of end nodes, wherein the routing comprises selecting at least one down-going port and at least one up-going port;
wherein selecting the at least one down-going port comprises
comparing a plurality of down-going ports and selecting the down-going port having a least accumulated downward weight and a least accumulated upward weight, and
in response to two or more down-going ports having the same least accumulated downward weight and the same least accumulated upward weight, comparing the two or more down-going ports having the same least accumulated downward weight and the same least accumulated upward weight, and selecting from the two or more down-going ports having the same least accumulated downward weight and the same least accumulated upward weight the down-going port having a smallest global unique identifier.

### Claim 7 (depends on 6)

The method of claim 6, wherein selecting the at least one up-going port comprises comparing a plurality of up-going ports and selecting the up-going port having a least accumulated upward weight.

### Claim 8 (depends on 6)

The method of claim 6, further comprising:
receiving the receive weight for each of the plurality of end nodes on one or more leaf switches in a network.

### Claim 9 (depends on 8)

The method of claim 8, wherein the receive weight for each of the plurality of end nodes on the one more leaf switches in a network is received from an input from an administrator.

### Claim 10 (depends on 8)

The method of claim 8, wherein receive weight for each of the plurality of end nodes on the one or more leaf switches in a network is received from an input, the input being related to monitored traffic on each of the plurality of end nodes, respectively.

### Claim 11

A system for supporting efficient load balancing among a plurality of switches and a plurality of end nodes arranged in a tree topology in a network environment, the system comprising:
one or more microprocessors; and
a processor, running on the one or more microprocessors, wherein the processor operates to perform steps comprising:
sorting the plurality of end nodes, the plurality of end nodes being on one more of the plurality of switches, wherein the plurality of end nodes are sorted in a decreasing order of a receive weight; and
routing, in the decreasing order of receive weights, the plurality of end nodes, wherein the routing comprises selecting at least one down-going port and at least one up-going port;
wherein selecting the at least one down-going port comprises
comparing a plurality of down-going ports and selecting the down-going port having a least accumulated downward weight, and
in response to two or more down-going ports having the same least accumulated downward weight, comparing the two or more down-going ports having the same least accumulated downward weight and selecting from the two or more down-going ports having the same least accumulated downward weight the down-going port having a least accumulated upward weight.

### Claim 12 (depends on 11)

The system of claim 11, wherein selecting the at least one up-going port comprises comparing a plurality of up-going ports and selecting the up-going port having a least accumulated upward weight.

### Claim 13 (depends on 11)

The system of claim 11, the steps further comprising:
receiving the receive weight for each of the plurality of end nodes on one or more leaf switches in a network.

### Claim 14 (depends on 13)

The system of claim 13, wherein the receive weight for each of the plurality of end nodes on the one more leaf switches in a network is received from an input from an administrator.

### Claim 15 (depends on 13)

The system of claim 13, wherein receive weight for each of the plurality of end nodes on the one or more leaf switches in a network is received from an input, the input being related to monitored traffic on each of the plurality of end nodes, respectively.

### Claim 16

A system for supporting efficient load balancing among a plurality of switches and a plurality of end nodes arranged in a tree topology in a network environment, the method comprising:
one or more microprocessors; and
a processor, running on the one or more microprocessors, wherein the processor operates to perform steps comprising:
sorting the plurality of end nodes, the plurality of end nodes being on one more of the plurality of switches, wherein the plurality of end nodes are sorted in a decreasing order of a receive weight; and
routing, in the decreasing order of receive weights, the plurality of end nodes, wherein the routing comprises selecting at least one down-going port and at least one up-going port;
wherein selecting the at least one down-going port comprises
comparing a plurality of down-going ports and selecting the down-going port having a least accumulated downward weight and a least accumulated upward weight, and
in response to two or more down-going ports having the same least accumulated downward weight and the same least accumulated upward weight, comparing the two or more down-going ports having the same least accumulated downward weight and the same least accumulated upward weight, and selecting from the two or more down-going ports having the same least accumulated downward weight and the same least accumulated upward weight the down-going port having a smallest global unique identifier.

### Claim 17 (depends on 16)

The system of claim 16, wherein selecting the at least one up-going port comprises comparing a plurality of up-going ports and selecting the up-going port having a least accumulated upward weight.

### Claim 18 (depends on 16)

The system of claim 16, the steps further comprising:
receiving the receive weight for each of the plurality of end nodes on one or more leaf switches in a network.

### Claim 19 (depends on 18)

The system of claim 18, wherein the receive weight for each of the plurality of end nodes on the one more leaf switches in a network is received from an input from an administrator.

### Claim 20 (depends on 18)

The system of claim 18, wherein receive weight for each of the plurality of end nodes on the one or more leaf switches in a network is received from an input, the input being related to monitored traffic on each of the plurality of end nodes, respectively.

### Claim 21

A non-transitory machine readable storage medium having instructions stored thereon for supporting efficient load balancing among a plurality of switches and a plurality of end nodes arranged in a tree topology in a network environment that when executed cause a system to perform steps comprising:
sorting the plurality of end nodes, the plurality of end nodes being on one more of the plurality of switches, wherein the plurality of end nodes are sorted in a decreasing order of a receive weight; and
routing, in the decreasing order of receive weights, the plurality of end nodes, wherein the routing comprises selecting at least one down-going port and at least one up-going port;
wherein selecting the at least one down-going port comprises
comparing a plurality of down-going ports and selecting the down-going port having a least accumulated downward weight, and
in response to two or more down-going ports having the same least accumulated downward weight, comparing the two or more down-going ports having the same least accumulated downward weight and selecting from the two or more down-going ports having the same least accumulated downward weight the down-going port having a least accumulated upward weight.

### Claim 22 (depends on 21)

The non-transitory machine readable storage medium of claim 21, wherein selecting the at least one up-going port comprises comparing a plurality of up-going ports and selecting the up-going port having a least accumulated upward weight.

### Claim 23 (depends on 21)

The non-transitory machine readable storage medium of claim 21, the steps further comprising:
receiving the receive weight for each of the plurality of end nodes on one or more leaf switches in a network.

### Claim 24 (depends on 23)

The non-transitory machine readable storage medium of claim 23, wherein the receive weight for each of the plurality of end nodes on the one more leaf switches in a network is received from an input from an administrator.

### Claim 25 (depends on 23)

The non-transitory machine readable storage medium of claim 23, wherein receive weight for each of the plurality of end nodes on the one or more leaf switches in a network is received from an input, the input being related to monitored traffic on each of the plurality of end nodes, respectively.

### Claim 26

A non-transitory machine readable storage medium having instructions stored thereon for supporting efficient load balancing among a plurality of switches and a plurality of end nodes arranged in a tree topology in a network environment that when executed cause a system to perform steps comprising:
sorting the plurality of end nodes, the plurality of end nodes being on one more of the plurality of switches, wherein the plurality of end nodes are sorted in a decreasing order of a receive weight; and
routing, in the decreasing order of receive weights, the plurality of end nodes, wherein the routing comprises selecting at least one down-going port and at least one up-going port;
wherein selecting the at least one down-going port comprises
comparing a plurality of down-going ports and selecting the down-going port having a least accumulated downward weight and a least accumulated upward weight, and
in response to two or more down-going ports having the same least accumulated downward weight and the same least accumulated upward weight, comparing the two or more down-going ports having the same least accumulated downward weight and the same least accumulated upward weight, and selecting from the two or more down-going ports having the same least accumulated downward weight and the same least accumulated upward weight the down-going port having a smallest global unique identifier.

### Claim 27 (depends on 26)

The non-transitory machine readable storage medium of claim 26, wherein selecting the at least one up-going port comprises comparing a plurality of up-going ports and selecting the up-going port having a least accumulated upward weight.

### Claim 28 (depends on 26)

The non-transitory machine readable storage medium of claim 26, the steps further comprising:
receiving the receive weight for each of the plurality of end nodes on one or more leaf switches in a network.

### Claim 29 (depends on 28)

The non-transitory machine readable storage medium of claim 28, wherein the receive weight for each of the plurality of end nodes on the one more leaf switches in a network is received from an input from an administrator.

### Claim 30 (depends on 28)

The non-transitory machine readable storage medium of claim 28, wherein receive weight for each of the plurality of end nodes on the one or more leaf switches in a network is received from an input, the input being related to monitored traffic on each of the plurality of end nodes, respectively.
