Search

CN-122027564-A - Centralized load balancing for network devices

CN122027564ACN 122027564 ACN122027564 ACN 122027564ACN-122027564-A

Abstract

The present disclosure relates to network device centralized load balancing. A system includes one or more processors, one or more network devices, and a controller device. The network device is operable to exchange communication traffic for the one or more processors over the network by executing work requests issued by the one or more processors. The controller device is configured to receive work requests from the one or more processors and distribute the work requests among the network devices.

Inventors

  • BLOCH NOAM
  • M. Menis
  • R. Colin
  • D. Malkovic
  • G. Bloch
  • L. Narkis

Assignees

  • 迈络思科技有限公司

Dates

Publication Date
20260512
Application Date
20251105
Priority Date
20241110

Claims (20)

  1. 1. A system comprising one or more processors, one or more network devices, and a controller device, Wherein the network device is configured to exchange communication traffic for the one or more processors over a network by executing work requests issued by the one or more processors, and Wherein the controller device is configured to receive the work requests from the one or more processors and distribute the work requests among the network devices.
  2. 2. The system of claim 1, wherein the controller device is further to act as one of the network devices, including executing one or more of the work requests.
  3. 3. The system of claim 1, wherein the controller device distributes the work requests according to criteria aimed at balancing the load of the communication traffic between the network devices.
  4. 4. The system of claim 1, wherein the controller device is to maintain a load estimate that estimates a corresponding load of the communication traffic experienced by the network device and to distribute the work requests based on the estimated load.
  5. 5. The system of claim 1, wherein the one or more processors are to issue the work request by publishing a work descriptor onto one or more queues, and wherein the controller device is to distribute the work request by informing the network device of a location from which the work descriptor is to be obtained.
  6. 6. The system of claim 5, further comprising a host memory associated with the one or more processors, wherein the one or more queues reside in the host memory.
  7. 7. The system of claim 1, wherein the one or more processors are to issue the work request by publishing a work descriptor onto one or more queues, and wherein the controller device is to distribute the work request by forwarding the work descriptor to the network device.
  8. 8. The system of claim 7, further comprising a host memory associated with the one or more processors, wherein the one or more queues reside in the host memory.
  9. 9. The system of claim 7, wherein the controller device is to segment a given job request into at least a first segment and a second segment, and provide the network device with at least a first job descriptor and a second job descriptor corresponding to the first segment and the second segment.
  10. 10. The system of claim 1, wherein the controller device is to exchange flow control messages with the network device and to distribute the work requests in response to the flow control messages.
  11. 11. The system of claim 1, wherein the network device, the controller device, and the one or more processors are to communicate over a peripheral bus, and wherein the controller device is to distribute the work requests by sending point-to-point messages over the peripheral bus.
  12. 12. The system of claim 1, wherein, upon execution of a given work request comprising sending data to the network, a given network device is to return a completion notification to the controller network device after sending the data.
  13. 13. The system of claim 1, wherein, upon execution of a given work request comprising sending data to the network, a given network device is to return a completion notification to the one or more processors.
  14. 14. The system of claim 1, wherein the controller device is to receive a completion notification from the network device, to reorder the completion notification, and to provide the reordered completion notification to the one or more processors.
  15. 15. A controller device, comprising: An interface for receiving work requests from one or more processors for exchanging communication traffic over a network, and A load balancer for distributing at least some of the work requests for execution by one or more network devices.
  16. 16. A method, comprising: Receiving, in a controller device, a work request from one or more processors, the work request requesting communication traffic to be exchanged for the one or more processors over a network; distributing, by the controller device, the work request to one or more network devices, and The communication traffic is exchanged over the network using the one or more network devices by executing the work request.
  17. 17. The method of claim 16, comprising executing, by the controller device, one or more of the work requests, including exchanging some of the communication traffic over the network.
  18. 18. The method of claim 16, wherein the distributing of the work requests is performed according to a standard aimed at balancing the load of the communication traffic between the network devices.
  19. 19. The system of claim 16, wherein distributing the work request comprises: Maintaining in the controller device a load estimate that estimates a corresponding load of the communication traffic experienced by the network device, and Distributing the work request according to the estimated load.
  20. 20. The method according to claim 16, wherein: the one or more processors issuing the work request by publishing a work descriptor onto one or more queues, and Distributing, by the controller device, the job request includes (i) notifying the network device of a location from which the job descriptor is to be obtained, or (ii) forwarding the job descriptor to the network device.

Description

Centralized load balancing for network devices Technical Field The present specification relates generally to network communications, and more particularly, to a method and system for load balancing between network devices. Background In some communication systems, a processor or group of processors may be connected to a network using a plurality of network devices. One example of such a system is a Graphics Processing Unit (GPU) that connects to a network using two Network Interface Controllers (NICs) or Data Processing Units (DPUs). Disclosure of Invention Embodiments described herein provide a system that includes one or more processors, one or more network devices, and a controller device. These network devices are used to exchange communication traffic for one or more processors over a network by executing work requests issued by the one or more processors. The controller device is configured to receive work requests from one or more processors and distribute the work requests among the network devices. In some embodiments, the controller device also acts as one of the network devices, including executing one or more work requests. In one embodiment, the controller device distributes work requests according to criteria intended to balance traffic load between network devices. In the disclosed embodiments, the controller device is configured to maintain a load estimate for estimating a corresponding load of communication traffic experienced by the network device and to distribute work requests based on the estimated load. In some embodiments, the one or more processors are configured to issue the work request by publishing the work descriptor onto the one or more queues, and the controller device is configured to distribute the work request by informing the network device of the location from which the work descriptor is to be obtained. In other embodiments, the controller device distributes the work request by forwarding the work descriptor to the network device. Typically, the system further includes a host memory associated with the one or more processors, and the one or more queues reside in the host memory. In one example embodiment, the controller device segments a given job request into at least a first segment and a second segment, and provides at least a first job descriptor and a second job descriptor corresponding to the first segment and the second segment to the network device. In another embodiment, the controller device is configured to exchange flow control messages with the network device and to distribute work requests in response to the flow control messages. In some embodiments, the network device, the controller device, and the one or more processors are configured to communicate over a peripheral bus, and the controller device is configured to distribute work requests by sending point-to-point messages over the peripheral bus. In one embodiment, upon execution of a given work request that includes sending data to the network, the given network device is configured to return a completion notification to the controller network device after sending the data. In another embodiment, upon execution of a given work request that includes sending data to the network, the given network device returns a completion notification to one or more processors. In some embodiments, the controller device is to receive completion notifications from the network device, to reorder the completion notifications, and to provide the reordered completion notifications to the one or more processors. There is also provided, in accordance with an embodiment described herein, a controller device including an interface and a load balancer. The interface is for receiving work requests from one or more processors for exchanging communication traffic over a network. The load balancer is to distribute at least some of the work requests for execution by one or more network devices. There is also provided, in accordance with an embodiment described herein, a method including receiving, in a controller device, a work request from one or more processors, the work request requesting communication traffic to be exchanged for the one or more processors over a network. The controller device distributes the work request to one or more network devices. Communication traffic is exchanged over the network using one or more network devices by executing the work request. The present specification will be more fully understood from the following detailed description of embodiments thereof, taken in conjunction with the accompanying drawings, in which: Drawings FIG. 1 is a schematic diagram of a computing system employing load balancing among a plurality of network devices according to embodiments described herein; FIG. 2 is a schematic diagram of a computing system employing load balancing for multiple host processors among multiple network devices according to an alternative embodiment described herein; Fig. 3 is a flow chart of a