DE-102025145741-A1 - NETWORK DEVICE CENTRALIZED LOAD BALANCE
Abstract
A system includes one or more processors, one or more network devices, and a control device. The network devices are intended to exchange communication traffic over a network for the one or more processors by executing work requests issued by the one or more processors. The control device is intended to receive the work requests from the one or more processors and distribute the work requests among the network devices.
Inventors
- Noam Bloch
- Miriam Menes
- Ran Koren
- Daniel Marcovitch
- Gil Bloch
- Lior Narkis
Assignees
- MELLANOX TECHNOLOGIES LTD.
Dates
- Publication Date
- 20260513
- Application Date
- 20251106
- Priority Date
- 20241110
Claims (20)
- System comprising one or more processors, one or more network devices and a control device, whereby the network devices are to exchange communication traffic over a network for the one or more processors by executing work requests issued by the one or more processors, and whereby the control device is to receive the work requests from the one or more processors and distribute the work requests among the network devices.
- System according to Claim 1 , wherein the control device shall also serve as one of the network devices, including executing one or more of the work requests.
- System according to Claim 1 or 2 , wherein the control device is to distribute the work requests according to a criterion that aims to balance a load of communication traffic among the network devices.
- System according to Claim 1 , 2 or 3 , wherein the control device is to maintain load estimates that estimate the respective loads of communication traffic to which the network devices are subject, and distribute the work requests based on the estimated loads.
- System according to one of the preceding claims, wherein the one or more processors are to issue the work requests by placing work descriptors on one or more queues, and wherein the control device is to distribute the work requests by notifying the network devices of locations from which the work descriptors are to be retrieved.
- System according to Claim 5 , further comprising a host memory allocated to the one or more processors, wherein the one or more queues reside on the host memory.
- system according to one of the Claims 1 - 4 , wherein the one or more processors are to issue the work requests by placing work descriptors on one or more queues, and wherein the control device is to distribute the work requests by forwarding the work descriptors to the network devices.
- System according to Claim 7 , further comprising a host memory allocated to the one or more processors, wherein the one or more queues reside on the host memory.
- System according to Claim 7 or 8 , wherein the control device shall decompose a given work request into at least first and second fragments and provide to the network devices at least first and second work descriptors corresponding to the first and second fragments.
- System according to one of the preceding claims, wherein the control device is to exchange flow control messages with the network devices and distribute the work requests in response to the flow control messages.
- System according to one of the preceding claims, wherein the network devices, the control device and the one or more processors are to communicate via a peripheral bus and wherein the control device is to distribute the work requests by sending peer-to-peer messages on the peripheral bus.
- System according to one of the preceding claims, wherein a given network device, when executing a given work request which includes sending data to the network, is to send a completion notification to the control network device after sending the data.
- System according to one of the preceding claims, wherein a given network device, when executing a given work request which involves sending data to the network, is to send a completion notification to the one or more processors.
- System according to one of the preceding claims, wherein the control device is to receive completion notifications from the network devices, reorder the completion notifications and provide the reordered completion notifications to the one or more processors.
- Control 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.
- Procedures, including: Receiving job requests from one or A control device comprises multiple processors, wherein the work requests initiate the exchange of communication traffic over a network for one or more processors. The control device distributes the work requests to one or more network devices; and the exchange of communication traffic is carried out over the network using the one or more network devices by executing the work requests.
- Procedure according to Claim 16 and the execution of one or more of the work requests by the control device, including the exchange of part of the communication traffic over the network.
- Procedure according to Claim 16 or 17 , whereby the distribution of work requests is carried out according to a criterion that aims to balance a load of communication traffic among the network devices.
- System according to Claim 16 , 17 or 18 , wherein the distribution of work requests includes: maintaining load estimates in the control device that estimate the respective loads of communication traffic to which the network devices are subject; and distributing the work requests based on the estimated loads.
- Procedure according to one of the Claims 16 - 19 , wherein: the one or more processors issue the work requests by placing work descriptors on one or more queues; and the distribution of the work requests by the control device includes (i) notifying the network devices of the locations from which the work descriptors are to be retrieved, or (ii) forwarding the work descriptors to the network devices.
Description
TECHNICAL AREA The present description concerns network communication in general and, in particular, methods and systems for load balancing between network devices. BACKGROUND In some communication systems, a processor or group of processors can connect to a network using multiple network devices. An example of such a system is a graphics processing unit (GPU) connecting to a network using two network interface controllers (NICs) or data processing units (DPUs). SUMMARY The invention is defined by the claims. To illustrate the invention, aspects and embodiments are described herein that may or may not fall within the scope of the claims. One embodiment described herein provides a system comprising one or more processors, one or more network devices, and a control device. The network devices are intended to exchange communication traffic over a network for the one or more processors by executing work requests issued by the one or more processors. The control device is intended to receive the work requests from the one or more processors and distribute the work requests among the network devices. In some embodiments, the control device is also intended to serve as one of the network devices, including executing one or more of the work requests. In one embodiment, the control device is intended to distribute the work requests according to a criterion designed to balance the communication traffic load among the network devices. In a disclosed embodiment, the control device is intended to maintain load estimates that estimate the respective communication traffic loads to which the network devices are subject and to distribute the work requests based on the estimated loads. In some embodiments, the one or more processors issue work requests by placing work descriptors on one or more queues, and the control device distributes the work requests by notifying the network devices of the locations from which the work descriptors should be retrieved. In other embodiments, the control device distributes the work requests by forwarding the work descriptors to the network devices. Typically, the system also includes a host memory allocated to the one or more processors, and the one or more queues reside in the host memory. In one embodiment, the control device is to decompose a given work request into at least first and second fragments and provide the network devices with at least first and second work descriptors corresponding to the first and second fragments. In another embodiment, the control device is to exchange flow control messages with the network devices and distribute the work requests in response to the flow control messages. In some embodiments, the network devices, the control device, and the one or more processors are to communicate via a peripheral bus, and the control device is to distribute the work requests by sending peer-to-peer messages on the peripheral bus. In one embodiment, a given network device, when executing a given work request that involves sending data to the network, sends a completion notification to the control network device after the data has been sent. In another embodiment, a given network device, when executing a given work request that involves sending data to the network, sends a completion notification to one or more processors. In some embodiments, the control device receives completion notifications from the network devices, reorders the completion notifications, and provides the reordered completion notifications to one or more processors. In addition, according to one embodiment described herein, a control device is provided which includes an interface and a load balancer. The interface is intended to receive work requests from the one or more processors for exchanging communication traffic over a network. The load balancer It should distribute at least some of the work requests for execution by one or more network devices. Furthermore, according to one embodiment described herein, a method is provided which includes receiving work requests from one or more processors in a control device, wherein the work requests request the exchange of communication traffic over a network for the one or more processors. The work requests are distributed by the control device to one or more network devices. The communication traffic is exchanged over the network using the one or more network devices by executing the work requests. In some embodiments, the method further comprises the execution of one or more of the work requests by the control device, including the exchange of a portion of the communication traffic over the network. In one embodiment, the distribution of the work requests is performed according to a criterion designed to balance the communication traffic load among the network devices. In a disclosed embodiment, the distribution of the work requests comprises maintaining load estimates in the control device that estimate the respective communication traffic loads to which t