Data transmission path management method and apparatus

By introducing heterogeneous switches of optical switches and electrical switches into the CLOS networking architecture, and dynamically determining the communication paths based on task attributes, the problem of congestion caused by communication traffic scheduling in the CLOS networking architecture is solved, and computing efficiency is improved and reduced. The cost.

WO2025035741A1PCT designated stage expired Publication Date: 2025-02-20HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/079445
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-01-16
Filing Date
2024-02-29
Publication Date
2025-02-20

AI Technical Summary

Technical Problem

When CLOS networking architecture schedules communication traffic, it only depends on the idleness of the power switch, resulting in congestion of the power switch and affects the computing efficiency.

Method used

Heterogeneous switches using optical switches and electrical switches, the processing device determines the communication path for each subtask according to the task attributes, and uses different types of upper switches to process communication traffic in different communication modes.

Benefits of technology

It effectively avoids data congestion, improves the processing efficiency of computing tasks, and reduces networking costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024079445_20022025_PF_FP_ABST
    Figure CN2024079445_20022025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention relates to the technical field of computers. Disclosed are a data transmission path management method and apparatus. The method is applied to a management platform and is specifically executed by a processing device where a management platform is deployed. The method comprises: a processing device acquires a computing task comprising at least one sub-task, and analyzes the computing task to obtain a task attribute of the computing task; and on the basis of the task attribute, the processing device determines that a first computing cluster and a second computing cluster communicate by means of a first upper switch or a second upper switch when executing the sub-tasks. The task attribute comprises a communication mode of each sub-task, and the communication mode is used for indicating the characteristics of communication when the first computing cluster and the second computing cluster execute the sub-tasks. The first upper switch and the second upper switch are used for processing one or more types of communication modes. The communication flow of different communication modes is processed by means of different upper switches, so that the problem of data congestion is avoided, thereby improving the calculation efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Data transmission path management method and device

[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office on August 14, 2023, with application number 202311020511.5 and application name “Scheduling method, distributed system and computing device”, and the Chinese patent application filed with the State Intellectual Property Office on January 16, 2024, with application number 202410065972.2 and application name “Management method and device for data transmission path”, all contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of computer technology, and in particular to a method and device for managing a data transmission path. Background Art

[0003] Model training refers to the repeated iterative optimization of the model to improve the performance and accuracy of the trained model. As the number of model parameters continues to increase, it is difficult for a single training device to complete the training of the model. When training the aforementioned model, multiple training devices are used to perform distributed training on the model. Data communication is required between the multiple training devices, so communication connections are required between the multiple training devices. Usually, a CLOS (circuit / loop / orbit / slot) networking architecture based on an electrical switch is established between multiple devices to establish a communication connection between multiple training devices. However, when the CLOS networking architecture schedules communication traffic, it only schedules it based on the idleness of the electrical switch. When the CLOS networking architecture is used to distribute parallel communication traffic, it will cause congestion in the electrical switch.

[0004] Summary of the Invention

[0005] The present application provides a method and apparatus for managing data transmission paths to address the problem that, when a CLOS networking architecture schedules communication traffic, it schedules it only based on the idleness of the electrical switch. When the CLOS networking architecture is used to distribute parallel communication traffic, this can cause congestion in the electrical switch, affecting computing efficiency.

[0006] In a first aspect, the present application provides a method for managing a data transmission path. The method is applied to a management platform, which is used to manage an infrastructure. The infrastructure includes a first computing cluster and a second computing cluster, wherein the first computing cluster is connected to a first bottom-layer switch, and the second computing cluster is connected to a second bottom-layer switch. The first bottom-layer switch and the second bottom-layer switch are connected via a first upper-layer switch or a second upper-layer switch, wherein the first upper-layer switch and the second upper-layer switch are of different types. The method can be executed by a processing device deployed with the management platform. The method includes: the processing device obtains a computing task including at least one subtask, and then parses the computing task to obtain task attributes of the computing task. Furthermore, the processing device determines, based on the task attributes, whether the first computing cluster and the second computing cluster communicate via the first upper-layer switch or the second upper-layer switch when executing each subtask. The task attributes include a communication mode for each subtask, which indicates the characteristics of communication between the first computing cluster and the second computing cluster when executing the computing task. The first upper-layer switch and the second upper-layer switch are configured to handle one or more types of communication modes.

[0007] In the present application, the processing device determines the communication traffic when the first computing cluster and the second computing cluster execute the above-mentioned subtasks by distributing it to the first upper-layer switch or the second upper-layer switch through the communication mode of the subtask in the task attributes. This is conducive to achieving that when there is concurrency in the communication traffic between the first computing cluster and the second computing cluster, the communication traffic corresponding to the communication modes of different subtasks can be processed by different upper-layer switches (the first upper-layer switch and the second upper-layer switch), thereby avoiding data congestion problems and improving computing efficiency.

[0008] Exemplarily, when the first computing cluster and the second computing cluster execute the first subtask of at least one subtask, the first upper-layer switch is connected to the first underlying switch and the second underlying switch, and further, when executing the first subtask, the first computing cluster and the second computing cluster communicate through the first upper-layer switch.

[0009] When the first computing cluster and the second computing cluster execute a second subtask of at least one subtask, the second upper layer switch is connected to the first underlying switch and the second underlying switch. Furthermore, when executing the second subtask, the first computing cluster and the second computing cluster communicate through the second upper layer switch.

[0010] In a possible scenario, the first upper-layer switch is an electrical switch, and the second upper-layer switch is an optical switch.

[0011] Compared with the existing CLOS networking architecture in which all switches are electrical switches, this application uses a heterogeneous switch that combines optical switches and electrical switches. Since the assembly cost of the optical switch is lower than the component cost of the electrical switch, it can effectively reduce the assembly cost of the CLOS networking architecture.

[0012] In one possible implementation, the communication mode includes a predictable communication mode (e.g., all-reduce) and / or a variable communication mode (e.g., all-to-all). The predictable communication mode indicates that the communication between the first computing cluster and the second computing cluster is predictable, and the variable communication mode indicates that the communication between the first computing cluster and the second computing cluster is variable. The first upper-layer switch is configured to process the variable communication mode, and the second upper-layer switch is configured to process the predictable communication mode.

[0013] In one possible implementation, the task attributes also include a communication traffic process, and the execution process of the communication traffic includes serial execution or parallel execution. Serial execution is used to indicate that the first subtask and the second subtask in at least one subtask are performed sequentially, and parallel execution is used to indicate that the first subtask and the second subtask are performed in parallel.

[0014] In one possible scenario, when the first subtask and the second subtask are performed in parallel, the communication traffic generated by executing the first subtask and the second subtask will also be parallel. The communication traffic is in different communication modes, and different upper-layer switches (first upper-layer switch and second upper-layer switch) will be used to distribute the parallel communication traffic, avoiding data congestion and helping to improve the processing efficiency of the computing task.

[0015] In a possible implementation, the communication mode further includes a point-to-point communication mode, where the point-to-point communication mode is used to indicate that the first computing cluster and the second computing cluster communicate directly.

[0016] In one possible implementation, when a communication traffic process is executed in parallel, the first subtask is in a variable communication mode and the second subtask is in a predictable communication mode, the processing device determines, based on task attributes, whether the first computing cluster and the second computing cluster communicate through the first upper-layer switch or the second upper-layer switch when executing each subtask, including: the processing device determines that when executing the first subtask, the first computing cluster and the second computing cluster communicate through the first upper-layer switch, and determines that when executing the second task, the first computing cluster and the second computing cluster communicate through the second upper-layer switch.

[0017] In this application, the processing device determines that different upper-layer switches are used for communication between the first computing cluster and the second computing cluster based on different communication modes (variable communication mode and predictable communication mode), which is conducive to isolating the communication traffic generated when executing the first subtask and the second subtask respectively, avoiding data congestion problems, and thus improving the efficiency of executing computing tasks.

[0018] In one possible implementation, when a communication traffic process is executed in parallel, the first subtask is in a predictable communication mode and the second subtask is in a point-to-point communication mode, the processing device determines, based on task attributes, whether the first computing cluster and the second computing cluster communicate through the first upper-layer switch or the second upper-layer switch when executing each subtask, including: the processing device determines that when executing the first subtask, the first computing cluster and the second computing cluster communicate through the second upper-layer switch, and determines that when executing the second task, the first computing cluster and the second computing cluster communicate through the first upper-layer switch.

[0019] In this application, the processing device determines that different upper-layer switches are used for communication between the first computing cluster and the second computing cluster based on different communication modes (point-to-point communication mode and predictable communication mode), which is conducive to isolating the communication traffic generated when executing the first subtask and the second subtask respectively, avoiding data congestion problems, and thus improving the efficiency of executing computing tasks.

[0020] In one possible implementation, the infrastructure is further provided with a third upper-layer switch, which is of the same type as the first upper-layer switch, and the first bottom-layer switch and the second bottom-layer switch are further connected through the third upper-layer switch. When the communication mode of the first subtask in the computing task is a variable communication mode, the processing device determines, based on the task attributes, that the first computing cluster and the second computing cluster communicate through the first upper-layer switch or the second upper-layer switch when executing each subtask, including: the processing device determines that the first computing cluster and the second computing cluster communicate through the first upper-layer switch and the third upper-layer switch when executing each subtask.

[0021] In this application, a processing device determines multiple upper-layer switches of the same type to distribute the communication traffic generated by a first computing cluster and a second computing cluster when executing subtasks. This can improve the communication bandwidth between the first and second computing clusters. Furthermore, if multiple upper-layer switches of the same type distribute the communication traffic in parallel, the latency of the communication traffic transmission between the first and second computing clusters can be reduced.

[0022] In one possible implementation, the task attributes further include communication traffic of the first subtask. The method further includes: the processing device determining, based on the communication traffic of the first subtask, a target upper-layer switch for executing the first subtask, one of the first upper-layer switch and the third upper-layer switch, wherein a sum of maximum distributable traffic of the target upper-layer switches is greater than or equal to the communication traffic of the first subtask.

[0023] In this application, since the sum of the maximum distributable traffic of the target upper-layer switch is greater than or equal to the communication traffic corresponding to the communication mode, the target upper-layer switch can well handle the communication traffic generated when the computing cluster performs computing tasks, avoiding traffic crowding / congestion and improving the efficiency of processing computing tasks.

[0024] In one possible implementation, the computing task includes a specification document, and the processing device parses the computing task to obtain the task attributes of the computing task, including: the processing device parses the specification document to obtain the task attributes of the computing task, and the specification document includes one or more of the model type to be trained, the number of processing devices required to perform the task, the communication traffic process, and the algorithm adopted by the communication mode.

[0025] In the present application, the processing device obtains the task attributes of the computing task by directly parsing the specification document in the computing task, thereby improving the efficiency of obtaining the task attributes of the computing task, thereby accelerating the communication between the first computing cluster and the second computing cluster through the first upper-layer switch and / or the second upper-layer switch when determining the execution of the computing task, and improving the efficiency of calculating the computing task.

[0026] In one possible scenario, the processing device sends a blank specification document to the front end, and the user fills in information according to the blank specification document. The processing device receives the specification document carrying the above information and then parses the specification document carrying the above information.

[0027] In a possible implementation, the task attributes further include a communication algorithm adopted by the communication mode. Before the processing device loads the communication mode, the method further includes: the processing device configuring the second upper-layer switch to pre-communicate with the first bottom-layer switch and the second bottom-layer switch respectively according to the communication algorithm.

[0028] In this application, since the communication algorithm adopted in the communication mode accurately shows the flow form of communication traffic between the first computing cluster and the second computing cluster, the processing device configures the second upper-layer switch to pre-communicate with the first bottom-layer switch and the second bottom-layer switch respectively according to the communication algorithm, which can improve the computing efficiency when executing subsequent computing tasks.

[0029] In one possible implementation, the task attributes also include the number of required computing devices, i.e., the number of computing devices (training devices) required to perform the computing task. Based on this number of required computing devices, the processing device can determine the computing devices in the infrastructure that will perform the computing task. Furthermore, the processing device can determine the computing cluster and underlying switches that will perform the computing task.

[0030] Exemplarily, an underlying switch is connected to a computing cluster, and a computing cluster includes a set number of computing devices.

[0031] In this application, the processing device can accurately and quickly allocate the target number of underlying switches and computing clusters for the computing task through the number of required computing devices in the task attributes, thereby improving the configuration efficiency of the transmission path between the underlying switch and the upper-level switch, and thereby improving the processing efficiency of the computing task.

[0032] In a second aspect, the present application provides a management platform. The management platform is used to manage an infrastructure, wherein a first computing cluster and a second computing cluster are provided in the infrastructure. The first computing cluster is connected to a first bottom-layer switch, and the second computing cluster is connected to a second bottom-layer switch. The first bottom-layer switch and the second bottom-layer switch are connected via a first upper-layer switch or a second upper-layer switch, wherein the first upper-layer switch and the second upper-layer switch are of different types of upper-layer switches. The management platform includes:

[0033] The acquisition module is used to acquire a computing task; the computing task includes at least one subtask.

[0034] The parsing module is used to parse the computing task and obtain the task attributes of the computing task; the task attributes include the communication mode of each subtask, and the communication mode is used to indicate the communication characteristics when the first computing cluster and the second computing cluster execute the corresponding subtask.

[0035] The first determination module is configured to determine, based on task attributes, whether the first computing cluster and the second computing cluster communicate via a first upper-layer switch or a second upper-layer switch when executing each subtask. The first upper-layer switch and the second upper-layer switch are configured to handle one or more types of communication modes.

[0036] In a possible implementation, the first upper-layer switch is an electrical switch, and the second upper-layer switch is an optical switch.

[0037] In one possible implementation, the communication mode includes a predictable communication mode and / or a variable communication mode. The predictable communication mode indicates that the communication between the first computing cluster and the second computing cluster is predictable, and the variable communication mode indicates that the communication between the first computing cluster and the second computing cluster is variable. The first upper-layer switch is configured to handle the variable communication mode, and the second upper-layer switch is configured to handle the predictable communication mode.

[0038] In one possible implementation, the task attributes also include a communication traffic process, and the execution process of the communication traffic includes serial execution or parallel execution. Serial execution is used to indicate that the first subtask and the second subtask in at least one subtask are performed sequentially, and parallel execution is used to indicate that the first subtask and the second subtask are performed in parallel.

[0039] In a possible implementation, the communication mode further includes a point-to-point communication mode (such as P2P), and the point-to-point communication mode is used to indicate that the first computing cluster and the second computing cluster communicate directly.

[0040] In one possible implementation, when the communication traffic process is executed in parallel, the first subtask is a variable communication mode and the second subtask is a predictable communication mode, the first determination module is specifically used to determine that when executing the first subtask, the first computing cluster and the second computing cluster communicate through the first upper-layer switch; and, determine that when executing the second subtask, the first computing cluster and the second computing cluster communicate through the second upper-layer switch.

[0041] In one possible implementation, when the communication traffic process is executed in parallel, the first subtask is a predictable communication mode and the second subtask is a point-to-point communication mode, the first determination module is specifically used to determine that when executing the first subtask, the first computing cluster and the second computing cluster communicate through the second upper-layer switch; and, determine that when executing the second subtask, the first computing cluster and the second computing cluster communicate through the first upper-layer switch.

[0042] In one possible implementation, a third upper-layer switch is further provided in the infrastructure. The third upper-layer switch is of the same type as the first upper-layer switch. The first bottom-layer switch and the second bottom-layer switch are also connected through the third upper-layer switch. When the communication mode of the first subtask in the computing task is a changing communication mode, the first determination module is specifically used to determine that when executing each subtask, the first computing cluster and the second computing cluster communicate through the first upper-layer switch and the third upper-layer switch.

[0043] In one possible implementation, the task attributes further include the communication flow of the first subtask, and the management platform further includes a second determination module. The second determination module is configured to determine, based on the communication flow of the first subtask, a target upper-layer switch for executing the first subtask, one of the first upper-layer switch and the third upper-layer switch, wherein the sum of the maximum distributable flows of the target upper-layer switches is greater than or equal to the communication flow of the first subtask.

[0044] In one possible implementation, the computing task includes a specification document and a parsing module, which is specifically used to parse the specification document to obtain task attributes of the computing task. The specification document includes one or more of the model type to be trained, the number of processing devices required to perform the task, the communication traffic process, and the communication algorithm adopted by the communication mode.

[0045] In a third aspect, the present application provides a hybrid network management system. The system includes: a first computing cluster, wherein the first computing cluster is connected to a first bottom-layer switch. A second computing cluster, wherein the second computing cluster is connected to a second bottom-layer switch. A first upper-layer switch, wherein the first upper-layer switch is connected to the first bottom-layer switch and the second bottom-layer switch, respectively. A second upper-layer switch, wherein the second upper-layer switch is connected to the first bottom-layer switch and the second bottom-layer switch, respectively. A management platform, wherein the management platform is used to obtain computing tasks, parse the computing tasks to obtain task attributes of the computing tasks, and determine, based on the task attributes, whether the first computing cluster and the second computing cluster communicate through the first upper-layer switch or the second upper-layer switch when executing each task of at least one subtask included in the computing task. The task attributes include a communication mode for each subtask, and the communication mode is used to indicate the characteristics of communication between the first computing cluster and the second computing cluster when executing the corresponding subtask. The first upper-layer switch and the second upper-layer switch are used to process one or more types of communication modes.

[0046] In a possible implementation, the first upper-layer switch is an electrical switch, and the second upper-layer switch is an optical switch.

[0047] In one possible implementation, the communication mode includes a predictable communication mode and / or a variable communication mode. The predictable communication mode indicates that the communication between the first computing cluster and the second computing cluster is predictable, and the variable communication mode indicates that the communication between the first computing cluster and the second computing cluster is variable. The first upper-layer switch is configured to handle the variable communication mode, and the second upper-layer switch is configured to handle the predictable communication mode.

[0048] In one possible implementation, the task attributes also include a communication traffic process, and the execution process of the communication traffic includes serial execution or parallel execution. Serial execution is used to indicate that the first subtask and the second subtask in at least one subtask are performed sequentially, and parallel execution is used to indicate that the first subtask and the second subtask are performed in parallel.

[0049] In a possible implementation, the communication mode further includes a point-to-point communication mode (such as P2P), and the point-to-point communication mode is used to indicate that the first computing cluster and the second computing cluster communicate directly.

[0050] In one possible implementation, when the communication traffic process is executed in parallel, the first subtask is a variable communication mode and the second subtask is a predictable communication mode, the first computing cluster and the second computing cluster communicate through the first upper-layer switch when executing the first subtask, and the first computing cluster and the second computing cluster communicate through the second upper-layer switch when executing the second subtask.

[0051] In one possible implementation, when the communication traffic process is executed in parallel, the first subtask is in a predictable communication mode and the second subtask is in a point-to-point communication mode, the first computing cluster and the second computing cluster communicate through the second upper-layer switch when executing the first subtask, and the first computing cluster and the second computing cluster communicate through the first upper-layer switch when executing the second subtask.

[0052] In one possible implementation, a third upper-layer switch is further provided in the infrastructure. The third upper-layer switch is of the same type as the first upper-layer switch. The first bottom-layer switch and the second bottom-layer switch are further connected through the third upper-layer switch. When the communication mode of the first subtask in the computing task is a variable communication mode, the first computing cluster and the second computing cluster communicate through the first upper-layer switch and the third upper-layer switch when executing each subtask.

[0053] In one possible implementation, the task attributes further include communication traffic of the first subtask, and the management platform is specifically configured to determine, based on the communication traffic of the first subtask, a target upper-layer switch for executing the first subtask, one of the first upper-layer switch and the third upper-layer switch, wherein a sum of maximum distributable traffic of the target upper-layer switches is greater than or equal to the communication traffic of the first subtask.

[0054] In one possible implementation, the computing task includes a specification document and a management platform, which is specifically used to parse the specification document to obtain the task attributes of the computing task. The specification document includes one or more of the model type to be trained, the number of processing devices required to perform the task, the communication traffic process, and the communication algorithm adopted by the communication mode.

[0055] In a fourth aspect, the present application provides a chip comprising: a processor and a power supply circuit; the power supply circuit is configured to supply power to the processor, and the processor is configured to execute the method in the first aspect or any possible implementation of the first aspect.

[0056] In a fifth aspect, the present application provides a computing device cluster. The computing device cluster includes at least one computing device, each computing device including a memory and a processor, the memory being configured to store computer instructions; and the processor, when executing the computer instructions, implements the method of the first aspect or any possible implementation of the first aspect.

[0057] In a sixth aspect, the present application provides a computer-readable storage medium having a computer program or instructions stored therein, which, when executed by a processing device, implements the method of the first aspect or any possible implementation of the first aspect.

[0058] In a seventh aspect, the present application provides a computer program product, which includes a computer program or instructions, and when the computer program or instructions are executed by a processing device, implements the method in the first aspect or any possible implementation of the first aspect.

[0059] The beneficial effects of the second to seventh aspects above can be referred to the description of the first aspect or any possible implementation of the first aspect, and will not be repeated here. Based on the implementations provided in the above aspects, this application can also be further combined to provide more implementations. BRIEF DESCRIPTION OF THE DRAWINGS

[0060] Figure 1 is a schematic diagram of a two-layer CLOS networking architecture;

[0061] FIG2a is an application scenario diagram of a computer system provided by this application;

[0062] FIG2 b is a schematic diagram of a hybrid network management system provided in an embodiment of the present application;

[0063] FIG3 is a flow chart of a method for managing a data transmission path provided by the present application;

[0064] FIG4 is a schematic diagram of the communication flow process of the dense model provided by this application;

[0065] FIG5 is a first schematic diagram of the connection between the target upper-layer switch and the target lower-layer switch provided by the present application;

[0066] FIG6 is a schematic diagram of a distribution path between a target upper-layer switch and a target lower-layer switch provided by the present application;

[0067] FIG7 is a schematic diagram of the communication flow process of the MoE model provided by this application;

[0068] FIG8 is a second schematic diagram of the connection between the target upper-layer switch and the target lower-layer switch provided by the present application;

[0069] FIG9 is a third schematic diagram of the connection between the target upper-layer switch and the target lower-layer switch provided by the present application;

[0070] FIG10a is a structural diagram 1 of a management platform provided by this application;

[0071] FIG10b is a second structural diagram of a management platform provided by this application;

[0072] FIG11 is a schematic diagram of the structure of a computing device provided by the present application;

[0073] FIG12 is a schematic diagram of the structure of a computing device cluster provided by this application;

[0074] FIG13 is a schematic diagram of a connection between computing devices provided by this application. DETAILED DESCRIPTION

[0075] To facilitate understanding, the technical terms involved in this application are first introduced.

[0076] Artificial intelligence (AI) is a branch of computer science that aims to enable computers to simulate and perform tasks and functions similar to human intelligence. AI involves the development and implementation of algorithms and systems designed to emulate human thinking and behavior. For example, various neural network models are used. To enable neural network models to mimic human thinking and behavior, they often require training.

[0077] Model training refers to the process of training a neural network model using a large amount of training data so that the trained neural network can perform tasks such as prediction, classification, or regression on new input data. During the model training process, the model learns and optimizes the parameters and weights in the model based on the input data to improve prediction accuracy and generalization capabilities. Typically, the model will be trained on one or more training devices. If the model is trained on multiple training devices, the multiple training devices will communicate with each other, resulting in a communication load. For example, this communication load includes all-to-all, all-reduce, p2p, etc. In one possible scenario, this communication load can also be called a communication mode.

[0078] All-to-all refers to a full exchange operation, which changes the communication mode. With all-to-all, a training device obtains the values ​​of N other training devices, such as model parameters or weights. For example, when experts are working in parallel during distributed model training, all-to-all communication load is used. For a training device, the value of N is not fixed during training and can be an integer greater than or equal to 0.

[0079] All-reduce represents a full-reduce operation, which also creates a predictable communication pattern. Multiple training devices send their trained model parameters or weights to a single designated training device. In other words, a designated training device receives model parameters or weights from multiple training devices, creating a predictable communication pattern. For example, tensor parallelism and data parallelism in distributed model training utilize all-reduce communication overhead.

[0080] P2P stands for peer-to-peer operation, or peer-to-peer communication mode. This means that a training device sends trained model parameters, weights, or tensors to a designated training device. For example, pipeline parallelism in distributed model training utilizes P2P communication load.

[0081] Among them, the above-mentioned expert parallelism means that only a part of the network in each layer of the model is used to process data during each training, that is, the part of the network selected each time is uncertain. Tensor parallelism means splitting a single mathematical operation (such as matrix multiplication) to different training devices for execution, and finally merging the parameters or weights obtained by the training devices. Data parallelism means running different subsets of the same batch of data on different training devices to train the model, and finally merging the parameters or weights of the model obtained by each training device. Pipeline parallelism means running different layers of the model on different training devices. Since the relationship between the layers of the model is fixed, the one-to-one communication relationship between the training devices is fixed.

[0082] The top of rack (ToR) switch, also known as the bottom layer switch, is the switching device placed on each server cabinet and directly connected to the training equipment.

[0083] An optical switch is a switching device that uses optical fiber to transmit data. It uses optical signals to exchange and route data. Optical switches typically use optical modules to convert electrical signals into optical signals for transmission, resulting in high transmission rates and low latency. Optical switches are suitable for applications requiring high bandwidth and long-distance transmission, such as data centers and fiber-optic communication networks.

[0084] An optical cross-connect (OXC) is an optical transmission device that can exchange optical signals between different optical paths. The above-mentioned optical switch includes an OXC.

[0085] An Ethernet switch is a switching device that uses electrical signals to transmit data. It uses the Ethernet protocol for data exchange and forwarding. Ethernet switches typically use cables to connect computers, servers, and other network devices, and use media access control (MAC) address tables to determine data forwarding paths. Widely used in local area networks, Ethernet switches enable fast and reliable data exchange and support a variety of transmission rates and protocols.

[0086] Forward propagation involves calculating the neural network's output layer by layer, from the model's input layer to its output layer. During this process, each neuron performs a weighted summation of the previous layer's output, then applies a nonlinear transformation using an activation function, and uses the result as the input to the next layer. Ultimately, forward propagation yields the neural network's output value, also known as the predicted value.

[0087] Backpropagation refers to the use of the backpropagation (BP) algorithm to correct the size of model parameters during training, minimizing the model's reconstruction error. Specifically, forward propagation of the input signal to the output generates error. This error is then propagated backward (from the output layer to the input layer) to update the model parameters, thereby converging the error. The BP algorithm is a backpropagation algorithm driven by error, aiming to optimize model parameters, such as the weight matrix.

[0088] When the memory capacity of a single training device can no longer meet the storage requirements of large AI models (such as GPT-3 (generative pre-trained transformer 3) and palm (pre-training with auxiliary learning on misaligned data), a distributed training solution is often used to train large AI models. For example, each training device stores a portion of the model's data (such as part of the network layer), and the training of a large AI model is completed through data communication between multiple training devices.

[0089] In order to achieve distributed training of the model, the CLOS networking architecture is often used as the architecture for training the AI ​​model. As shown in Figure 1, Figure 1 is a schematic diagram of a two-layer CLOS networking architecture. In the two-layer CLOS networking architecture shown in Figure 1, the cabinet top switch 111 among the cabinet top switch 111, cabinet top switch 112, cabinet top switch 113, and cabinet top switch 114 is used as an example for explanation. The cabinet top switch 111 is connected to 4 training servers, and one training server is provided with 8 training devices (such as a graphics processing unit (GPU) or a neural network processing unit (NPU), etc.), and the 8 training devices are connected through a high-speed cable (such as a peripheral component interconnect express (PCIe) bus). The cabinet top switch 111 is interconnected with the cabinet top switch 112, the cabinet top switch 113, and the cabinet top switch 114 through the second-layer switch, such as through the switch 121, the switch 122, the switch 123 or the switch 124.

[0090] In other implementations, a three-layer CLOS networking architecture can also be used to train AI models.

[0091] Since switches 121, 122, 123, and 124 use the same type of switches in the CLOS networking architecture, the CLOS networking architecture only schedules communication traffic based on the idleness of the electrical switches. When the CLOS networking architecture is used to distribute parallel communication traffic, congestion of the electrical switches will occur.

[0092] Based on this, the present application provides a method for managing data transmission paths. The method is applied to a management platform, which is used to manage an infrastructure. The infrastructure includes a first computing cluster and a second computing cluster. The first computing cluster is connected to a first bottom-layer switch, and the second computing cluster is connected to a second bottom-layer switch. The first bottom-layer switch and the second bottom-layer switch are connected via a first upper-layer switch or a second upper-layer switch, wherein the first upper-layer switch and the second upper-layer switch are of different types. The above method can be executed by a processing device in the management platform. The above method includes: the processing device obtains a computing task including at least one subtask, and then parses the computing task to obtain task attributes of the computing task. Furthermore, the processing device determines, based on the task attributes, whether the first computing cluster and the second computing cluster communicate via the first upper-layer switch or the second upper-layer switch when executing each subtask. The task attributes include a communication mode for each subtask, and the communication mode is used to indicate the characteristics of communication between the first computing cluster and the second computing cluster when executing the subtask. The first upper-layer switch and the second upper-layer switch are used to process one or more types of communication modes.

[0093] In the present application, the processing device determines the communication traffic when the first computing cluster and the second computing cluster execute the above-mentioned subtasks by distributing it to the first upper-layer switch or the second upper-layer switch through the communication mode of the subtask in the task attributes. This is conducive to achieving that when there is concurrency in the communication traffic between the first computing cluster and the second computing cluster, the communication traffic corresponding to the communication modes of different subtasks can be processed by different upper-layer switches (the first upper-layer switch and the second upper-layer switch), thereby avoiding data congestion problems and improving computing efficiency.

[0094] The data transmission path management method provided by the present application can be applied to the computer system shown in Figure 2a. As shown in Figure 2a, Figure 2a is an application scenario diagram of a computer system provided by the present application.

[0095] The computer system includes a computing device cluster 210, an underlying switch 220, and a heterogeneous switch. The heterogeneous switch includes multiple types of switches, such as a first upper-layer switch 230 and a second upper-layer switch 240. Communication between the computing device cluster 210 and the underlying switches 220 (e.g., including top-of-rack switches 111, 112, 113, and 114), and between the underlying switches 220 and the first upper-layer switch 230 and the second upper-layer switch 240, can be achieved via wired or wireless communication.

[0096] It is worth noting that the above-mentioned computing device cluster 210 is only one of the multiple computing device clusters included in the computer system, and the top-of-cabinet switch 111 connected to the computing device cluster 210 is one of the multiple top-of-cabinet switches (top-of-cabinet switch 111, top-of-cabinet switch 112, top-of-cabinet switch 113, top-of-cabinet switch 114). In other words, the computer system includes a combination of multiple computing device clusters and top-of-cabinet switches.

[0097] Computing device cluster 210 includes multiple groups of training servers. Each training server group may include multiple training devices. These multiple training devices can communicate via wired communication, such as a PCIe bus. A single bottom-layer switch can connect to multiple groups of training servers, such as four groups of training servers. A single bottom-layer switch can connect to multiple first-layer switches and multiple second-layer switches.

[0098] The above-mentioned wired communication can be: Ethernet, optical fiber, and various PCIe buses set inside the computer system for connecting the computing device cluster 210 and the underlying switch 220, as well as the underlying switch 220, the first upper-layer switch 230, and the second upper-layer switch 240.

[0099] The wireless communication may include the Internet, wireless fidelity (WIFI), and ultra wide band (UWB) technology.

[0100] In a possible example, the computer system may further include a management device 250 , which is configured to determine that when different groups of training servers execute subtasks, the training servers in the different groups communicate with each other through the first upper-layer switch 230 or the second upper-layer switch 240 .

[0101] In a possible example, the computer system may further include a terminal.

[0102] The terminal can be a mobile phone, a tablet computer, a handheld computer, a personal computer (PC), a cellular phone, a personal digital assistant (PDA), a wearable device (such as a smart watch), a smart home device (such as a TV), an in-vehicle computer, a game console, and an augmented reality (AR) / virtual reality (VR) device, etc. This application does not impose any special restrictions on the specific device form of the terminal.

[0103] Exemplarily, the terminal can upload the computing task to the management device 250. The management device 250 determines the training device required to complete the computing task based on the computing task, and determines that when different groups of training servers perform subtasks, the training servers in different groups communicate with each other through the first upper-layer switch 230 or the second upper-layer switch 240, and then the management device 250 sends the computing task to the training device.

[0104] It should be noted that the computer system architecture shown in FIG2a is only an example, and the type or number of devices within the system can be configured according to actual needs, and the present application embodiment does not limit this. For example, the computer system may also include more training devices or underlying switches.

[0105] In an optional embodiment, the first upper-layer switch 230 may be an electrical switch, and the second upper-layer switch 240 may be an optical switch. Therefore, when the first upper-layer switch 230 is an electrical switch, the lower-layer switches and the first upper-layer switch 230 are connected via cables. When the second upper-layer switch 240 is an optical switch, the lower-layer switches and the second upper-layer switch 240 are connected via optical fibers.

[0106] Compared with the CLOS networking architecture that only uses electrical switches for distribution, this application uses a heterogeneous switch that combines electrical switches and optical switches to distribute traffic. Since the assembly cost of the optical switch is lower than the assembly cost of the electrical switch, the networking cost of the heterogeneous switch of this application is lower.

[0107] In other embodiments of the present application, the first upper-layer switch 230 may be an optical switch or other types of switches, and the second upper-layer switch 240 may be an electrical switch or other types of switches, which is not limited in the present application.

[0108] Based on the computer system shown in Figure 2a, an embodiment of the present application further provides a hybrid network management system. As shown in Figure 2b, Figure 2b is a schematic diagram of a hybrid network management system provided by an embodiment of the present application. The hybrid network management system includes a first computing cluster 310, a second computing cluster 320, a first upper-layer switch 330, a second upper-layer switch 340, and a management device 350.

[0109] The first computing cluster 310 may include multiple computing devices configured to perform computing tasks. The second computing cluster 320 may include multiple computing devices configured to perform computing tasks. These computing devices may also be referred to as training devices.

[0110] Exemplarily, the first computing cluster 310 is connected to the bottom layer switch 311 in the hybrid network management system, and the second computing cluster 320 is connected to the bottom layer switch 312 in the hybrid network management system.

[0111] The first upper-layer switch 330 is connected to the lower-layer switch 311 and the lower-layer switch 312. The second upper-layer switch 340 is connected to the lower-layer switch 311 and the lower-layer switch 312.

[0112] For a more detailed description of bottom-layer switches 311 and 312, please refer to the description of the top-of-rack switch shown in FIG2a above, and will not be repeated here. For a more detailed description of the first upper-layer switch 330 and the second upper-layer switch 340, please refer to the description of the first upper-layer switch 230 and the second upper-layer switch 240 shown in FIG2a above, and will not be repeated here.

[0113] Management device 350 includes a management platform for managing infrastructure, such as the aforementioned first computing cluster 310, second computing cluster 320, first upper-layer switch 330, and second upper-layer switch 340. The management platform is configured to obtain a computing task comprising at least one subtask, parse the task to obtain task attributes, and, based on the task attributes, determine whether the first and second computing clusters should communicate via the first upper-layer switch or the second upper-layer switch when executing each subtask.

[0114] In other embodiments of the present application, the management platform may be deployed on one or more nodes in the first computing cluster 310 or the second computing cluster 320 .

[0115] For a detailed description of the management device 350 , reference may be made to the functions implemented by the management device 250 and the processing device 300 in the following Figures 3 to 9 , which will not be described in detail here.

[0116] The following describes in detail the implementation of the data transmission path management method provided by the embodiment of the present application with reference to the accompanying drawings.

[0117] Here, the data transmission path management method of the embodiment of the present application is executed by the processing device 300 as an example for explanation. Figure 3 is a flow chart of a data transmission path management method provided by the present application. The method provided in this embodiment can be applied to the system shown in Figure 2b or Figure 3. The following description takes the method provided in this embodiment as applied to the system shown in Figure 3 as an example. The processing device 300 is used to implement the functions of the management device 350 in Figure 2b. In this embodiment, the first upper-layer switch 330 can be an electrical switch, and the second upper-layer switch 340 can be an optical switch. The first upper-layer switch 330 and the second upper-layer switch 340 can respectively handle one or more types of communication modes.

[0118] In a first possible scenario, processing device 300 receives a computing task input by a user that includes at least one subtask. Based on the computing task, processing device 300 determines whether to communicate between the first computing cluster and the second computing cluster via first upper-layer switch 330 or second upper-layer switch 340 when executing each subtask. The computing task may be model training code.

[0119] In a second possible scenario, processing device 300 retrieves a computing task from memory that includes at least one subtask and, based on the computing task, determines whether the first computing cluster and the second computing cluster communicate via first upper-layer switch 330 or second upper-layer switch 340 when executing each subtask. The memory may be internal to processing device 300 or externally accessible to processing device 300. The computing task may be model training code.

[0120] The above two possible application scenarios are merely examples provided in this embodiment and should not be construed as limiting the present application. In other application scenarios of the present application, the processing device 300 receives a user's configuration instruction, retrieves a computing task from the memory according to the storage address indicated by the configuration instruction, and then, based on the computing task, determines whether the first computing cluster and the second computing cluster communicate via the first upper-layer switch or the second upper-layer switch when executing each subtask.

[0121] Continuing to refer to FIG. 3 , the data transmission path management method provided in this embodiment includes the following steps S310 to S330 .

[0122] S310: The processing device 300 obtains a computing task.

[0123] The computing task includes at least one subtask.

[0124] In a possible embodiment, the processing device 300 obtains a computing task input by a user.

[0125] In a possible implementation, the processing device 300 receives a trigger operation of a control component by a user on a user interface, and acquires a computing task input by the user in response to the trigger operation of the control component by the user.

[0126] In one possible example, the processing device 300 may display a user interface on a front end, where the front end may refer to a display connected to the processing device 300 or a display screen provided by the processing device 300, and this application is not limited thereto. The processing device 300 then receives user triggering operations on control components on the user interface through various input devices (keyboard, mouse, touch screen, etc.).

[0127] Regarding the specific implementation of the trigger operation, three possible examples are provided below.

[0128] Example 1: The trigger operation may be a user confirming the control component through a keyboard, such as the trigger operation being the user determining the storage address of the computing task on the control component.

[0129] Example 2: The trigger operation may be a user clicking the control component with a mouse, for example, the trigger operation is a user placing a computing task into the control component with a mouse.

[0130] Example 3: The trigger operation may be a user clicking or sliding a control component on a touch screen.

[0131] The above examples are only optional implementations provided in this embodiment and should not be understood as limiting the present application. In other embodiments of the present application, the trigger operation may also be air operation or voice control.

[0132] In one possible scenario, if a computing task is used to indicate training of a model, a subtask in the computing task represents training of a network layer in the model, or a subtask represents training of a submodel, or a subtask represents training of a model using part of the training data in the complete training data, or a subtask represents a computing step among multiple computing steps, etc.

[0133] The above-mentioned sub-model is one of multiple sub-models obtained by dividing a complete model, and a sub-model has a partial network structure, parameters or weights of each network layer in a complete model.

[0134] In one possible embodiment, the computing task is used to indicate the parameters of the model to be trained, in other words, the model training code. The model training code can be in a language such as Python or C++, and the corresponding model training code format is .py or .c. In other cases of the present application, the model training code can also be in Java, and the corresponding model training code format is .java.

[0135] S320: The processing device 300 parses the computing task to obtain the task attributes of the computing task.

[0136] The task attributes include: one or more combinations of the communication mode of each subtask, the communication flow of each subtask, the communication flow process, the number of required computing devices, and the communication algorithm adopted by the communication mode.

[0137] The communication mode indicates the characteristics of communication between the first and second computing clusters when executing corresponding subtasks. For example, the communication mode may include all-reduce, all-to-all, or peer-to-peer (p2p). The all-to-all mode indicates that the communication between the first and second computing clusters is variable. The all-reduce mode indicates that the communication between the first and second computing clusters is predictable. The p2p mode indicates that the first and second computing clusters communicate directly.

[0138] For example, when the computing task is model training, each processing layer in the model (such as a convolutional layer and a pooling layer) can be processed in different computing clusters or computing devices. When the communication mode between multiple computing clusters or computing devices is all-reduce, the transmission of communication traffic between the multiple computing clusters or computing devices is fixed. For example, data generated by one computing device will only be distributed to one or more other fixed computing devices. Therefore, the communication traffic between the computing devices is predictable.

[0139] When the communication mode between multiple computing clusters or computing devices is all-to-all, the traffic flow between these clusters or computing devices is not fixed. For example, during the first round of training, data generated by computing device a is distributed to computing device b. During the second round of training, data generated by computing device a is distributed to computing device c. Therefore, the traffic flow between the computing devices varies.

[0140] When the communication mode between multiple computing clusters or computing devices is peer-to-peer, the transmission of communication traffic between these multiple computing clusters or computing devices is fixed and one-to-one. For example, data generated by the first computing cluster will be distributed to the second computing cluster, and data generated by the second computing cluster will be distributed to the first computing cluster. Alternatively, data generated by computing device A will be distributed to computing device B, and data generated by computing device B will be distributed to computing device A. Computing device A is located in the first computing cluster, and computing device B is located in the second computing cluster.

[0141] The communication flow of each subtask can represent the communication flow size corresponding to each communication mode. For example, the communication mode of the first subtask is all-to-all, and the communication flow size corresponding to all-to-all is 1MB / s. This value is only an example and should not be understood as limiting the present application.

[0142] The communication traffic process is used to indicate the execution process of the communication traffic generated when executing a computing task. This communication traffic process may include serial execution or parallel execution. Serial execution indicates that the first and second subtasks of at least one subtask are executed sequentially, while parallel execution indicates that the first and second subtasks are executed simultaneously. For example, if the communication mode of the first subtask is all-reduce and the communication mode of the second subtask is p2p, the communication traffic corresponding to the all-reduce and the communication traffic corresponding to the p2p are executed in parallel or serially.

[0143] The number of required computing devices is used to indicate the number of computing devices required to perform a computing task.

[0144] The communication algorithm used in the communication mode is used to indicate the specific connection method between the first upper-layer switch or the second upper-layer switch and the bottom-layer switch.

[0145] Exemplarily, the communication algorithm used in the communication mode indicates how data such as parameters or gradients generated during model training is transmitted between multiple computing devices. For example, when the subtask's communication mode is all-to-all, the corresponding implementation algorithm might be pairwise or bruck. When the subtask's communication mode is all-reduce, the corresponding implementation algorithm might be ring-all reduce or halving-doubling all-reduce. When the communication mode is p2p, the corresponding implementation algorithm might be send or receive.

[0146] For example, when the communication algorithm corresponding to all-reduce is ring-all-reduce, a circular connection is adopted between the second upper-layer switch and the multiple lower-layer switches. The specific description is shown in FIG6 below and is not repeated here.

[0147] In one possible implementation, the computing task includes a specification document. The processing device 300 parses the computing task to obtain task attributes of the computing task, including:

[0148] The processing device 300 parses the specification document in the computing task to obtain the task attributes of the computing task. The specification document includes one or more of the following: the type of model to be trained, the number of computing devices required to perform the computing task, the communication flow process, and the communication algorithm used in the communication mode.

[0149] Among them, the model types that need to be trained may include dense models, mixture of experts models (MoE, also known as MoE models), dual-tower models, capsule networks, etc.

[0150] For the number of computing devices required to perform computing tasks, the communication traffic process, and the communication algorithm adopted by the communication mode, please refer to the description of the communication traffic process, the number of computing devices required, and the communication algorithm adopted by the communication mode under the above S320, which will not be repeated here.

[0151] In one possible example, the processing device 300 parses the model type required for training in the computing task and obtains the communication mode of the corresponding subtask.

[0152] The processing device 300 determines the communication mode corresponding to the model type required to be trained in the computing task from the correspondence between the model type required to be trained and the communication mode.

[0153] For example, after the processing device 300 determines that the model type to be trained is a dense model, it can determine from the above correspondence that the dense model corresponds to all reduce and p2p. Among them, the communication mode corresponding to the first subtask is all reduce, and the communication mode corresponding to the second subtask is p2p.

[0154] After the processing device determines that the model type to be trained is the MoE model, it can determine from the above correspondence that the dense model corresponds to all reduce and all to all. Among them, the communication mode corresponding to the first subtask is all to all, and the communication mode corresponding to the second subtask is all reduce.

[0155] In a possible example, the computing task is a model training code input by a user, and the processing device 300 parses the model training code to obtain task attributes of the computing task.

[0156] A designated area in the model training code carries a specification document. The processing device 300 can obtain the specification document of the model training code by reading the content of the designated area. The designated area is the area where the specification document is located.

[0157] In one possible scenario, the processing device 300 provides a blank specification document to the user through the management platform. The processing device 300 receives data input by the user based on the blank specification document, obtains a specification document carrying information, and then parses the specification document carrying information to obtain task attributes.

[0158] Exemplarily, processing device 300 displays a user interface corresponding to the management platform on the front end. This interface displays control components corresponding to a blank specification document. The user can click or input on these control components to enter data into the blank specification document. Processing device 300 receives the user's click or input operation on these control components and obtains a specification document containing one or more of the aforementioned model type to be trained, the number of processing devices required to perform the task, the communication traffic process, and the communication algorithm used in the communication mode.

[0159] The above content is only an example provided by this application and should not be understood as a limitation of this application. In other embodiments of this application, the computing task obtained by the processing device 300 includes one or more of the model type required for training, the number of processing devices required to perform the task, the communication flow process, and the communication algorithm adopted by the communication mode. The model type required for training, the number of processing devices required to perform the task, the communication flow process, and the communication algorithm adopted by the communication mode do not have a fixed format. In other words, the processing device 300 needs to parse the entire computing task in order to obtain one or more of the above-mentioned model type required for training, the number of processing devices required to perform the task, the communication flow process, and the communication algorithm adopted by the communication mode.

[0160] S330 : The processing device 300 determines, based on the task attributes, that the first computing cluster and the second computing cluster communicate via the first upper-layer switch 330 or the second upper-layer switch 340 when executing each subtask.

[0161] The first upper-layer switch 330 and the second upper-layer switch 340 are used to process one or more types of communication modes.

[0162] In one possible implementation, the processing device 300 determines, based on the task attributes, that the first computing cluster and the second computing cluster communicate through the first upper layer switch 330 or the second upper layer switch 340 when executing each subtask, including:

[0163] The processing device 300 determines, based on the communication mode of the subtask in the task attributes, that the first computing cluster and the second computing cluster communicate via the first upper layer switch 330 or the second upper layer switch 340 when executing the computing task.

[0164] Exemplarily, processing device 300 determines the upper-layer switch corresponding to the communication mode from the mapping relationship, and further determines that when executing the subtask, the first computing cluster and the second computing cluster communicate through first upper-layer switch 330 or second upper-layer switch 340. The mapping relationship is the correspondence between the communication mode and the upper-layer switch.

[0165] For example, the processing device 300 determines that the computing task includes a first subtask and a second subtask. When the processing device 300 determines that the communication mode of the first subtask is all to all, it determines that when executing the first subtask, the first computing cluster and the second computing cluster communicate through the first upper-layer switch 330.

[0166] When the processing device 300 determines that the communication mode of the second subtask is all reduce, it determines that the first computing cluster and the second computing cluster communicate through the second upper layer switch 340 when executing the second subtask.

[0167] In the present application, the processing device 300 can quickly determine the target upper-layer switch through the correspondence between the communication mode and the upper-layer switch, thereby accelerating the establishment of the distribution path between the target upper-layer switch and the underlying switch, thereby improving the processing efficiency of the computing task.

[0168] With respect to the mapping relationship between the above communication modes and the types of switches, a possible example is provided, as shown in Table 1 below.

[0169] Table 1

[0170] It should be noted that the above Table 1 is only an example and should not be understood as limiting the present application. In other examples of the present application, p2p may also correspond to a second upper layer switch, etc.

[0171] In this application, the processing device determines that different upper-layer switches are used for communication between the first computing cluster and the second computing cluster based on the different communication modes of the subtasks, which is conducive to isolating the communication traffic generated when executing the first subtask and the second subtask respectively, avoiding data congestion problems, and thus improving the efficiency of executing computing tasks.

[0172] In one possible scenario, the task attributes further include a communication traffic process. The communication traffic execution process includes serial execution or parallel execution. Serial execution indicates that the first and second subtasks of the at least one subtask are performed sequentially, while parallel execution indicates that the first and second subtasks are performed in parallel.

[0173] For example, during the serial execution process, the communication traffic corresponding to the communication mode of the first subtask and the communication traffic corresponding to the communication mode of the second subtask generally do not overlap. To avoid excessive communication traffic that cannot be handled by one type of upper-layer switch, the communication traffic corresponding to the first subtask is distributed using the first upper-layer switch 330, and the communication traffic corresponding to the second subtask is distributed using the second upper-layer switch 340.

[0174] During the parallel execution process, to avoid the problem of the communication traffic corresponding to the first and second subtasks crowding out the same type of switches when the first and second subtasks are executed in parallel, causing data congestion and lowering the efficiency of computing task execution, the communication traffic corresponding to the first subtask is distributed via the first upper-layer switch 330, and the communication traffic corresponding to the second subtask is distributed via the second upper-layer switch 340, which is conducive to improving the processing efficiency of computing tasks.

[0175] Regarding the above situation, two possible examples are provided below.

[0176] In a first possible example, a computing task includes a first subtask and a second subtask. When the communication traffic process is executed in parallel, the communication mode of the first subtask is all-to-all, and the communication mode of the second subtask is all-reduce, the processing device 300 determines, based on the contents shown in Table 1 above, that when executing the first subtask, the first computing cluster and the second computing cluster communicate via the first upper-layer switch 330; and determines that when executing the second subtask, the first computing cluster and the second computing cluster communicate via the second upper-layer switch 340.

[0177] In a second possible example, the computing task includes only a first subtask and a second subtask. When the communication traffic process is executed in parallel, the communication mode of the first subtask is all-reduce, and the communication mode of the second subtask is p2p, the processing device 300 determines, based on the contents shown in Table 1, that when executing the first subtask, the first computing cluster and the second computing cluster communicate via the second upper-layer switch 340; and that when executing the second subtask, the first computing cluster and the second computing cluster communicate via the first upper-layer switch 330.

[0178] The above content is merely a possible example of this application and should not be construed as limiting this application. In other examples of this application, a third upper-layer switch is further provided in the infrastructure, the third upper-layer switch being of the same type as the first upper-layer switch, and the first and second lower-layer switches are further connected via a third upper-layer switch. When the communication mode of the first subtask in the computing task is all-to-all, the processing device 300 determines that when executing each subtask, the first computing cluster and the second computing cluster communicate via the first and third upper-layer switches.

[0179] For example, because all-to-all communication traffic is typically large, the bandwidth of a single switch may not be sufficient to distribute the communication traffic between the first and second computing clusters in a timely manner, leading to processing delays and other issues. To avoid these processing delays and other issues, processing device 300 identifies multiple upper-layer switches of the same type (a first upper-layer switch and a third upper-layer switch) to distribute the communication traffic between the first and second computing clusters, reducing processing delays and thereby improving computing efficiency.

[0180] In another possible example of the present application, when the communication mode of the first subtask in the computing task is p2p, the processing device 300 determines that when executing the first subtask, the first computing cluster and the second computing cluster communicate through the first upper-layer switch and the third upper-layer switch.

[0181] For the content of this example, please refer to the description of the communication mode of the first subtask as all to all, which will not be repeated here.

[0182] For details of this situation, please refer to the contents shown in Figures 4 to 9 below, which will not be described here in detail.

[0183] In one possible implementation, the task attributes further include the communication traffic corresponding to the subtask, that is, the communication traffic corresponding to the communication mode. The processing device 300 determines, based on the task attributes, that when executing the subtask, the first computing cluster and the second computing cluster communicate via the first upper-layer switch or the second upper-layer switch, including:

[0184] The processing device 300 determines, from the infrastructure, a target upper-layer switch for distributing the communication traffic corresponding to the first subtask, wherein the sum of the maximum distributable traffic of the target upper-layer switch is greater than or equal to the communication traffic corresponding to the first subtask, and the target upper-layer switch is the first upper-layer switch or the third upper-layer switch.

[0185] In a possible scenario, the processing device 300 determines a target upper-layer switch for executing the first subtask, among the first upper-layer switch and the third upper-layer switch, based on the communication traffic of the first subtask.

[0186] Exemplarily, the processing device 300 determines the number a of first upper-layer switches and the number b of second upper-layer switches based on the communication traffic corresponding to the first subtask and the maximum distributable traffic of one first upper-layer switch and one third upper-layer switch. Furthermore, the processing device 300 determines a number a of first upper-layer switches and b number b of third upper-layer switches from the infrastructure as target upper-layer switches. Where a is greater than or equal to 0, b is greater than or equal to 0, and a plus b is greater than or equal to 1. The sum of the maximum distributable traffic of a first upper-layer switch and b third upper-layer switches is greater than or equal to the communication traffic of the first subtask.

[0187] Alternatively, the processing device 300 determines the number c of second upper-layer switches based on the communication traffic corresponding to the first subtask and the maximum distributable traffic of a second upper-layer switch. Furthermore, the processing device 300 determines c second upper-layer switches from the infrastructure as target upper-layer switches.

[0188] In view of the above, three possible examples are provided below.

[0189] In Example 1, if processing device 300 determines that the all-to-all communication traffic is X1 MB / s, processing device 300 identifies X1 / Y1 first-upper-layer switches in the infrastructure as target upper-layer switches. Consequently, the all-to-all communication traffic between the first computing cluster and the second computing cluster is distributed through these X1 / Y1 first-upper-layer switches. In other words, communication between the first computing cluster and the second computing cluster occurs through these X1 / Y1 first-upper-layer switches. Y1 represents the maximum communication traffic that can be distributed by a single first-upper-layer switch.

[0190] In Example 2, processing device 300 determines that the all-reduce communication traffic is X2 MB / s. Processing device 300 then identifies X2 / Y2 second-upper-layer switches in the infrastructure as target upper-layer switches. Consequently, all-to-all communication traffic between the first and second computing clusters is distributed through these X2 / Y2 second-upper-layer switches. In other words, communication between the first and second computing clusters occurs through these X2 / Y2 second-upper-layer switches.

[0191] In Example 3, the processing device determines that the communication flow of all-to-all is X1 MB / s and the communication flow of all-reduce is X2 MB / s. Therefore, the content of Example 3 can refer to the description of Examples 1 and 2 above and is not repeated here.

[0192] In this application, since the sum of the maximum distributable traffic of the target upper-layer switch is greater than or equal to the communication traffic corresponding to the communication mode, the target upper-layer switch can well handle the communication traffic generated when the computing cluster performs computing tasks, avoiding traffic crowding / congestion and improving the processing efficiency of computing tasks.

[0193] In one possible scenario, the task attributes include the number of required computing devices. Processing device 300 can determine the computing devices in the infrastructure that will perform the computing task based on the number of required computing devices. Furthermore, processing device 300 can determine the computing cluster and underlying switches that will perform the computing task.

[0194] For example, a computing cluster is connected to an underlying switch, which includes a set number of computing devices, such as M. Processing device 300 divides the required number of computing devices by M to obtain the number of computing clusters, which is also the number of underlying switches. Furthermore, processing device 300 determines the number of computing clusters required and divides it by M, along with the corresponding underlying switches, from the infrastructure. The computing clusters include a first computing cluster and a second computing cluster, and the underlying switches include a first underlying switch and a second underlying switch.

[0195] The computing cluster determined above may be referred to as a target computing cluster for executing computing tasks, and the underlying switch determined above may be referred to as a target underlying switch.

[0196] In the present application, the processing device 300 can accurately and quickly allocate the target number of underlying switches and computing clusters for the computing task through the number of required computing devices in the task attributes, thereby improving the configuration efficiency of the transmission path between the underlying switch and the upper-level switch, and thereby improving the processing efficiency of the computing task.

[0197] In one possible scenario, the task attributes include the communication algorithm used in the communication mode. After determining the target upper-layer switch, target lower-layer switch, and target computing cluster, the processing device 300 may configure pre-communication between the target upper-layer switch and the target lower-layer switch based on the communication algorithm used in the communication mode. In other words, the processing device 300 pre-establishes a connection between the target upper-layer switch and the target lower-layer switch according to the connection method indicated by the communication algorithm. The target upper-layer switch may include the second upper-layer switch, and the target lower-layer switch may include the first lower-layer switch and the second lower-layer switch.

[0198] For a more detailed description of this situation, please refer to the content shown in Figure 6 below, which will not be repeated here.

[0199] In this embodiment, the processing device 300 pre-configures the transmission path between the target upper-layer switch and the target lower-layer switch according to the communication algorithm, thereby avoiding the disadvantage that the optical switch in the target upper-layer switch cannot switch the connection mode in real time, and effectively offloading the all-reduce communication traffic.

[0200] For more details about S330, please refer to the descriptions in the following Figures 4 to 9, which will not be described in detail here.

[0201] When the computing task is model training code, different model training codes will correspond to different task attributes. Three possible embodiments are described below. For example, when the model training code corresponds to a dense model, a MoE model, and dense and MoE model training, the processing device 300 determines that when executing each subtask, the first computing cluster and the second computing cluster communicate via the first upper-layer switch 330 or the second upper-layer switch 340.

[0202] In a first possible embodiment, the case where the model to be trained corresponding to the model training code is a dense model will be described in conjunction with Figures 4 to 6. In this embodiment, the computing devices included in the computing cluster can be called training devices.

[0203] First, the processing device 300 obtains the model training code input by the user, and parses the model training code to obtain the task attributes of the dense model, and then generates a node communication configuration file according to the task attributes.

[0204] The node communication profile includes: the type of model to be trained is a 3D hybrid parallel dense model, the cluster size (the number of required computing devices) is 4,000, the communication traffic process during the training phase, and the algorithm of the communication mode (ring all reduce).

[0205] Based on the correspondence between the model type to be trained and the communication mode, the processing device 300 determines that the communication mode corresponding to the dense model is all-reduce and p2p. The dense model primarily adopts a 3D hybrid parallel strategy of tensor parallelism, pipeline parallelism, and data parallelism. In this mode, the communication mode is mainly all-reduce and p2p. Thus, the processing device 300 obtains the communication mode for each training subtask in training the dense model. In this embodiment, a training subtask is one of multiple network layers in the dense model. The communication modes of these multiple network layers only include all-reduce and p2p.

[0206] As shown in Figure 4, Figure 4 is a schematic diagram of the communication traffic process of the dense model provided by this application. During the forward propagation process of the model training phase, all-reduce and p2p are performed in series. During the backward propagation process of the model training phase, all-reduce and p2p are performed in parallel. The communication traffic corresponding to all-reduce can be referred to as all-reduce traffic, and the communication traffic corresponding to p2p can be referred to as p2p traffic. Therefore, to avoid traffic conflicts between different communication modes causing congestion at the switch level, it is necessary to isolate the two types of traffic communications.

[0207] Secondly, the processing device 300 determines to allocate all reduce traffic to the optical switch (such as OXC) for processing and allocate p2p traffic to the electrical switch for processing according to the mapping relationship between the communication mode and the switch.

[0208] In one possible scenario, the processing device 300 determines the computing clusters that execute the computing task as computing cluster 1, computing cluster 2, computing cluster 3, and computing cluster 4 based on the above cluster scale, and correspondingly determines the underlying switch 1 connected to computing cluster 1, the underlying switch 2 connected to computing cluster 2, the underlying switch 3 connected to computing cluster 3, and the underlying switch 4 connected to computing cluster 4.

[0209] As shown in Figure 5, Figure 5 is a schematic diagram of the connection between the target upper-layer switch and the target lower-layer switch provided in this application. The processing device 300 determines to distribute all-reduce traffic to the OXC for processing and to distribute peer-to-peer traffic to the electrical switch for processing. For example, the processing device 300 determines to distribute all-reduce traffic between lower-layer switch 1, lower-layer switch 2, lower-layer switch 3, or lower-layer switch 4 through the OXC. The processing device 300 determines to distribute peer-to-peer traffic between lower-layer switch 1, lower-layer switch 2, lower-layer switch 3, or lower-layer switch 4 through the electrical switch.

[0210] Finally, the processing device 300 determines the specific communication mode between the underlying switch, the electrical switch, and the OXC according to the communication algorithm of the communication mode, thereby enabling multiple computing clusters connected by multiple underlying switches to communicate through the electrical switch and the OXC.

[0211] Taking the ring-all reduce algorithm for all-reduce traffic as an example, as shown in Figure 6, Figure 6 is a schematic diagram of the distribution path between the target upper-layer switch and the target bottom-layer switch provided by this application. Because ring-all reduce uses parameters or weights to be sent cyclically between multiple training devices, such as training device A → training device B → training device C, the next step is training device B → training device C → training device A. Therefore, it is necessary to establish a circular distribution path between the training devices, that is, to establish the distribution path shown in Figure 6 between the target bottom-layer switches.

[0212] For example, if a computing cluster connected to a bottom-layer switch includes 32 training devices, the target number of bottom-layer switches is 4000 / 32 = 125 bottom-layer switches. Correspondingly, assuming that one upper-layer switch can connect to five bottom-layer switches, at least 25 target upper-layer switches are required. In this example, 30 target upper-layer switches are required, meaning 30 electrical switches and 30 OXCs are also required. After the management device 300 determines the 30 OXCs and 30 electrical switches, it establishes distribution paths between the 30 OXCs and 30 electrical switches and the 125 bottom-layer switches based on the communication algorithm of the communication mode.

[0213] It's worth noting that the number of electrical switches and OXCs mentioned above is calculated based on the communication traffic volume of the communication mode in the task attributes and the maximum distributable traffic volume of a single electrical switch or OXC. The sum of the maximum distributable traffic volume of the electrical switches must be greater than or equal to the corresponding traffic volume for p2p, and the sum of the maximum distributable traffic volume of the OXCs must be greater than or equal to the corresponding traffic volume for all-reduce. Training devices A, B, and C can each belong to a different computing cluster.

[0214] It is worth noting that the above content is only an example and should not be understood as limiting the present application. In other examples of the present application, a bottom-layer switch can be connected to 16 or 64 training devices, and a top-layer switch can be connected to 10 or 16 bottom-layer switches, which is not limited by the present application.

[0215] In this embodiment, the processing device 300 pre-configures the distribution path between the OXC and the target underlying switch according to the ring-all reduce communication algorithm, thereby avoiding the disadvantage that the OXC cannot switch the connection mode in real time and effectively offloading the communication traffic of all reduce.

[0216] In a second possible embodiment, the case where the model to be trained corresponding to the model training code is a MoE model will be described with reference to FIG7 and FIG8 .

[0217] First, the processing device 300 obtains the model training code input by the user, and parses the code to obtain the task attributes of the MoE model, and then generates a node communication configuration file according to the task attributes.

[0218] The node communication configuration file includes: the type of the model to be trained is the MoE model, the cluster size is 4,000, the communication traffic process in the training phase, and the algorithm of the communication mode (such as ring-all reduce).

[0219] The processing device 300 determines that the communication mode corresponding to the MoE model is all reduce and all to all based on the correspondence between the model type to be trained and the communication mode. The MoE model mainly adopts a hybrid expert parallel and data parallel strategy. In this mode, the communication modes are mainly all to all and all reduce. Thus, the processing device 300 obtains the communication mode for each training subtask in the MoE model. In this embodiment, a training subtask is one of the multiple submodels in the MoE model. The communication modes of the multiple submodels only include all reduce and all to all. A submodel includes part of the network structure, parameters, and weights of each network layer in the MOE model.

[0220] As shown in Figure 7, Figure 7 is a schematic diagram of the communication traffic process of the MoE model provided in this application. During the forward propagation process of the model training phase, only all-to-all traffic is used. During the backward propagation process of the model training phase, all-reduce traffic and all-to-all traffic are used. The communication traffic corresponding to all-to-all traffic can be called all-to-all traffic. During the backward propagation process, all-reduce traffic and all-to-all traffic are used in parallel.

[0221] Next, the processing device 300 determines to distribute all-to-all traffic to the electrical switch and all-reduce traffic to the OXC based on the mapping relationship between the communication mode and the switch.

[0222] In one possible scenario, the processing device 300 determines the computing clusters that execute the computing task as computing cluster 1, computing cluster 2, computing cluster 3, and computing cluster 4 based on the above cluster scale, and correspondingly determines the underlying switch 1 connected to computing cluster 1, the underlying switch 2 connected to computing cluster 2, the underlying switch 3 connected to computing cluster 3, and the underlying switch 4 connected to computing cluster 4.

[0223] For example, as shown in Figure 8, which is a second schematic diagram of the connection between the target upper-layer switch and the target lower-layer switch provided by this application, the processing device 300 determines to distribute all-reduce traffic to the OXC for processing and to distribute all-to-all traffic to the electrical switch for processing. For example, the processing device 300 determines to distribute all-reduce traffic between lower-layer switch 1, lower-layer switch 2, lower-layer switch 3, or lower-layer switch 4 via the OXC. The processing device 300 determines to distribute all-to-all traffic between lower-layer switch 1, lower-layer switch 2, lower-layer switch 3, or lower-layer switch 4 via the electrical switch.

[0224] Finally, the processing device 300 determines the specific communication mode between the underlying switch, the electrical switch, and the OXC according to the communication mode algorithm, thereby enabling multiple computing clusters connected by multiple underlying switches to communicate through the electrical switch and the OXC.

[0225] Regarding the processing device 300 establishing a distribution path between the target upper-layer switch and the target lower-layer switch according to the algorithm of the communication mode, reference may be made to the content of the first possible embodiment described above, and no further details are given here.

[0226] In a third possible embodiment, the models to be trained corresponding to the model training code will be illustrated as dense models and MoE models as an example in combination with Figure 9, that is, this embodiment is the establishment of a distribution path in a multi-task (dense model and MoE model) parallel scenario.

[0227] First, the processing device 300 obtains the model training code input by the user, and parses the model training code to obtain the task attributes of the dense model and the MoE model, and then generates a node communication configuration file according to the task attributes.

[0228] The node configuration file includes: the types of models to be trained are 3D hybrid parallel dense model and MoE model, the cluster sizes are 2,000 and 2,000 respectively, the communication traffic process in the training phase, and the algorithm of the communication mode.

[0229] For the communication flow process and the communication mode algorithm in the training phase, reference may be made to the contents shown in FIG. 4 and FIG. 7 above, and no further description is given here.

[0230] Secondly, the processing device 300 determines to allocate all reduce traffic in the dense model to the OXC and allocate p2p traffic in the dense model to the electrical switch based on the mapping relationship between the communication mode and the switch; and determines to allocate all reduce traffic in the MoE model to the OXC and allocate all to all traffic in the MoE model to the electrical switch.

[0231] As shown in Figure 9, Figure 9 is a third connection diagram of the target upper-layer switch and the target lower-layer switch provided by this application. Processing device 300 determines to distribute the all-reduce traffic of the dense model to OXC1 for processing, and distributes the p2p traffic of the dense model to electrical switch 1 for processing. OXC1 represents a group of OXCs, the number of which can be determined based on the volume of communication traffic and will not be described in detail here. Similarly, electrical switch 1 represents a group of electrical switches, the number of which can be determined based on the volume of communication traffic and will not be described in detail here. For example, the all-reduce traffic between lower-layer switches 1 and 2 is distributed through OXC1, and the p2p traffic between lower-layer switches 1 and 2 is distributed through electrical switch 1.

[0232] Furthermore, processing device 300 distributes the all-reduce traffic in the MoE model to OXC2 for processing, and distributes the all-to-all traffic in the MoE model to electrical switch 2 for processing. OXC2 and OXC1 comprise different OXCs, and electrical switch 2 and electrical switch 1 comprise different electrical switches. The descriptions of OXC2 and electrical switch 2 refer to the descriptions of OXC1 and electrical switch 1 above and are not further described here. For example, the all-reduce traffic between underlay switch 2 and underlay switch 4 is distributed through OXC2, and the all-to-all traffic between underlay switch 2 and underlay switch 4 is distributed through electrical switch 2.

[0233] In the present application, the processing device 300 distributes the communication modes of different models during the training process by using different switches, thereby isolating the communication traffic of the communication modes of each model from each other, avoiding data distribution errors or congestion problems that may occur when the same switch processes the communication traffic of the communication modes of different models, and is conducive to improving the accuracy and efficiency of model training.

[0234] Finally, the processing device 300 determines the specific communication mode between the underlying switch, the electrical switch, and the OXC according to the communication mode algorithm.

[0235] Regarding the processing device 300 determining the specific communication mode between the bottom switch, the electrical switch, and the OXC according to the communication mode algorithm, reference may be made to the content of the first possible embodiment described above, which is not described in detail here.

[0236] In a possible scenario, the processing device 300 may determine the number of switches required to process the communication traffic corresponding to the communication mode according to the size of the communication traffic.

[0237] For p2p traffic in the dense model and all-to-all traffic in the MoE model, although traffic in both communication modes is allocated to electrical switches for processing, since p2p traffic is generally small, more electrical switches can be used to process all-to-all traffic.

[0238] In one possible implementation, the processing device 300 may first determine the number of electrical switches for all-to-all traffic in the MoE model, and then determine the number of electrical switches for p2p traffic in the dense model.

[0239] In another possible implementation, the processing device 300 may determine the number of electrical switches required for all-to-all traffic in the MoE model and the number of electrical switches required for p2p traffic in the dense model in real time according to the size of the communication traffic during the training process.

[0240] In one possible example, the processing device 300 may determine the number of electrical switches required to handle the communication traffic corresponding to the communication mode based on the ratio of the communication traffic to the maximum traffic that can be distributed by an electrical switch. In other words, the ratio is the required number of electrical switches.

[0241] The above embodiments should not be understood as limiting the present application. In other embodiments of the present application, a recommendation model (deep learning recommendation model, DLRM) may also be trained. The communication traffic corresponding to the communication mode of the DLRM is mainly concentrated in the query of the embedding table, mainly all to all. Therefore, for the content of this embodiment, reference may be made to the content of the above-mentioned second possible embodiment and the third possible embodiment, which will not be repeated here.

[0242] It is understood that, in order to implement the functions in the above-described embodiments, the processing device 300 includes hardware structures and / or software modules corresponding to the execution of each function. Those skilled in the art should readily appreciate that, in conjunction with the various exemplary units and method steps described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in hardware or in a manner driven by computer software depends on the specific application scenario and design constraints of the technical solution.

[0243] The data transmission path management method provided by the present application has been described in detail above with reference to Figures 2a to 9. The management platform provided by the present application will now be described with reference to Figure 10a, which is a schematic diagram of the structure of a management platform provided by the present application. Management platform 1000 can be used to implement the functions of processing device 300 in the above method embodiment, thereby also achieving the beneficial effects of the above method embodiment.

[0244] As shown in Figure 10a, the management platform 1000 includes an acquisition module 1010, a parsing module 1020, and a first determination module 1030. The management platform is used to manage an infrastructure, wherein a first computing cluster and a second computing cluster are provided in the infrastructure, the first computing cluster is connected to a first bottom-layer switch, the second computing cluster is connected to a second bottom-layer switch, and the first bottom-layer switch and the second bottom-layer switch are connected via a first upper-layer switch or a second upper-layer switch, wherein the first upper-layer switch and the second upper-layer switch are upper-layer switches of different types. The management platform 1000 is used to implement the functions of the processing device 300 in the method embodiments corresponding to Figures 2a to 9 above. In one possible example, the specific process of the management platform 1000 for implementing the above-mentioned data transmission path management method includes the following process:

[0245] The acquisition module 1010 is used to acquire a computing task, where the computing task includes at least one subtask.

[0246] The parsing module 1020 is configured to parse the computing task and obtain the task attributes of the computing task. The task attributes include the communication mode of each subtask, which indicates the communication characteristics between the first computing cluster and the second computing cluster when executing the corresponding subtask.

[0247] The first determination module 1030 is configured to determine, based on task attributes, whether the first computing cluster and the second computing cluster communicate through a first upper-layer switch or a second upper-layer switch when executing each subtask, wherein the first upper-layer switch and the second upper-layer switch are configured to process one or more types of communication modes.

[0248] To further implement the functions of the method embodiments shown in Figures 2a to 9 above, the present application also provides a management platform, wherein the infrastructure managed by the management platform further includes a third upper-layer switch, which is of the same type as the first upper-layer switch, and the first bottom-layer switch and the second bottom-layer switch are further connected via the third upper-layer switch. As shown in Figure 10b, Figure 10b is a second structural schematic diagram of a management platform provided by the present application. The management platform 1000 further includes: a second determination module 1040.

[0249] When the communication mode of the first subtask in the computing task is a variable communication mode, the second determination module 1040 is configured to determine, based on the communication traffic of the first subtask, a target upper-layer switch for executing the first subtask, one of the first upper-layer switch and the third upper-layer switch, wherein the sum of the maximum distributable traffic of the target upper-layer switches is greater than or equal to the communication traffic of the first subtask.

[0250] Among them, the acquisition module 1010, the parsing module 1020, the first determination module 1030, and the second determination module 1040 can all be implemented by software or by hardware. For example, the implementation of the acquisition module 1010 will be described below using the acquisition module 1010 as an example. Similarly, the implementation of the parsing module 1020, the first determination module 1030, and the second determination module 1040 can refer to the implementation of the acquisition module 1010.

[0251] As an example of a software functional unit, acquisition module 1010 may include code running on a computing instance. A computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Furthermore, the computing instance may be one or more. For example, acquisition module 1010 may include code running on multiple hosts / virtual machines / containers.

[0252] It should be noted that the multiple hosts / virtual machines / containers used to run the code can be distributed in the same region or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code can be distributed in the same availability zone (AZ) or in different AZs, with each AZ including one data center or multiple geographically close data centers. Typically, a region can include multiple AZs.

[0253] Similarly, multiple hosts / virtual machines / containers running the code can be distributed within the same VPC or across multiple VPCs. Typically, a VPC is set up within a region. Cross-region communication between two VPCs within the same region, or between VPCs in different regions, requires a communication gateway within each VPC to interconnect the VPCs.

[0254] As an example of a hardware functional unit, the acquisition module 1010 may include at least one computing device, such as a server. Alternatively, the acquisition module 1010 may be implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0255] The multiple computing devices included in acquisition module 1010 can be distributed in the same region or in different regions. The multiple computing devices included in acquisition module 1010 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in acquisition module 1010 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0256] It should be noted that, in other embodiments, the acquisition module 1010 can be used to execute any step in the method for managing a data transmission path, the parsing module 1020 can be used to execute any step in the method for managing a data transmission path, and the first determination module 1030 can be used to execute any step in the method for managing a data transmission path. The steps that the acquisition module 1010, the parsing module 1020, and the first determination module 1030 are responsible for implementing can be specified as needed. The full functionality of the management platform 1000 is achieved by having the acquisition module 1010, the parsing module 1020, and the first determination module 1030 respectively implement different steps in the method for managing a data transmission path.

[0257] It is worth noting that the processing device 300 of the aforementioned embodiment may correspond to the management platform 1000, and may correspond to the corresponding subject corresponding to Figures 2a to 9 of the method according to the embodiment of the present application, and the operations and / or functions of each module in the management platform 1000 are respectively for implementing the corresponding processes of each method of the corresponding embodiment in Figures 2a to 9. For the sake of brevity, they will not be repeated here.

[0258] In addition, the management platform 1000 shown in Figure 10a or Figure 10b can also be implemented through a communication device, where the communication device may refer to the processing device 300 in the aforementioned embodiment, or, when the communication device is a chip or chip system applied to the processing device, the management platform 1000 can also be implemented through the chip or chip system.

[0259] An embodiment of the present application also provides a chip system, which includes a control circuit and an interface circuit. The interface circuit is used to obtain a construction instruction, and the control circuit is used to implement the function of the processing device in the above method according to the construction instruction.

[0260] In a possible design, the chip system further includes a memory for storing program instructions and / or data. The chip system can be composed of a chip or include a chip and other discrete devices.

[0261] An embodiment of the present application also provides a computing device. As shown in Figure 11, Figure 11 is a schematic diagram of the structure of a computing device provided by the present application. The computing device 1100 includes: a bus 1102, a processor 1104, a memory 1106, and a communication interface 1108. The processor 1104, the memory 1106, and the communication interface 1108 communicate with each other via the bus 1102. The computing device 1100 can be a server or a terminal device, and the computing device 1100 can be the processing device 300 described above. It is worth noting that the present application does not limit the number of processors and memories in the computing device 1100.

[0262] Bus 1102 may be, but is not limited to, a PCIe bus, a universal serial bus (USB), an inter-integrated circuit bus (I2C), an EISA bus, a USB, a CXL, or a CCIX bus. Bus 1102 may be classified as an address bus, a data bus, a control bus, or the like. For ease of illustration, FIG11 shows only one line, but this does not imply that there is only one bus or only one type of bus. Bus 1102 may include a path for transmitting information between various components of computing device 1100 (e.g., memory 1106, processor 1104, and communication interface 1108).

[0263] The processor 1104 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0264] The memory 1106 may include volatile memory, such as random access memory (RAM). The memory 1106 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0265] Memory 1106 stores executable code, which processor 1104 executes to implement the functions of the aforementioned acquisition module 1010, parsing module 1020, and first determination module 1030, thereby implementing the data transmission path management method. In other words, memory 1106 stores instructions for executing the data transmission path management method.

[0266] The communication interface 1108 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 1100 and other devices or a communication network.

[0267] Embodiments of the present application also provide a computing device cluster. The computing device cluster includes at least one computing device, which can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0268] As shown in Figure 12, Figure 12 is a schematic diagram of the structure of a computing device cluster provided by this application. The computing device cluster includes at least one computing device 1100. The memory 1106 of one or more computing devices 1100 in the computing device cluster may store the same instructions for executing the data transmission path management method.

[0269] In some possible implementations, the memory 1106 of one or more computing devices 1100 in the computing device cluster may also store partial instructions for executing the method for managing a data transmission path. In other words, the combination of one or more computing devices 1100 can jointly execute the instructions for executing the method for managing a data transmission path.

[0270] It should be noted that the memory 1106 in different computing devices 1100 in the computing device cluster can store different instructions, each for executing a portion of the functions of the management platform. In other words, the instructions stored in the memory 1106 in different computing devices 1100 can implement the functions of one or more of the acquisition module 1010, the parsing module 1020, and the first determination module 1030.

[0271] In some possible implementations, one or more computing devices in a computing device cluster may be connected via a network. The network may be a wide area network or a local area network, etc. FIG13 shows a possible implementation. As shown in FIG13 , FIG13 is a schematic diagram of a connection between computing devices provided by the present application, in which two computing devices 1100A and 1100B are connected via a network. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, the memory 1106 in the computing device 1100A stores instructions for executing the functions of the acquisition module 1010. At the same time, the memory 1106 in the computing device 1100B stores instructions for executing the functions of the parsing module 1020 and the first determination module 1030.

[0272] The connection method between the computing device clusters shown in Figure 13 can be that considering that the management method of the data transmission path provided in this application requires model training code, it is considered to entrust the functions implemented by the analysis module 1020 and the first determination module 1030 to the computing device 1100B for execution.

[0273] It should be understood that the functionality of the computing device 1100A shown in FIG13 may also be implemented by multiple computing devices 1100. Similarly, the functionality of the computing device 1100B may also be implemented by multiple computing devices 1100.

[0274] Embodiments of the present application also provide a computer program product including instructions. This computer program product may be software or a program product including instructions that can be run on a computing device or stored on any available medium. When this computer program product is run on at least one computing device, it causes the at least one computing device to execute a method for managing a data transmission path.

[0275] The present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by a computing device or a data storage device such as a data center that contains one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to execute the data transmission path management method.

[0276] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented using software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the process or function described in the embodiments of the present application is performed in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device or other programmable device. The computer program or instruction can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer program or instruction can be transmitted from one website, computer, server or data center to another website, computer, server or data center via wired or wireless means. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, a hard disk, or a tape; it can also be an optical medium, such as a digital video disc (DVD); it can also be a semiconductor medium, such as a solid state drive (SSD).

[0277] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any person skilled in the art can easily conceive of various equivalent modifications or substitutions within the technical scope disclosed in the present application, and such modifications or substitutions should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A method for managing a data transmission path, characterized in that: The method is applied to a management platform, the management platform is used to manage infrastructure, the infrastructure is provided with a first computing cluster and a second computing cluster, the first computing cluster is connected to a first bottom layer switch, the second computing cluster is connected to a second bottom layer switch, the first bottom layer switch and the second bottom layer switch are connected via a first upper layer switch or a second upper layer switch, wherein the first upper layer switch and the second upper layer switch are of different types, the method comprising: Acquire a computing task, wherein the computing task includes at least one subtask; Parsing the computing task to obtain task attributes of the computing task, wherein the task attributes include a communication mode for each subtask, and the communication mode is used to indicate characteristics of communication between the first computing cluster and the second computing cluster when executing the corresponding subtask; According to the task attributes, it is determined that when executing each subtask, the first computing cluster and the second computing cluster communicate through the first upper layer switch or the second upper layer switch, wherein the first upper layer switch and the second upper layer switch are used to process one or more types of communication modes.

2. The method according to claim 1, characterized in that The first upper layer switch is an electrical switch, and the second upper layer switch is an optical switch.

3. The method according to claim 1 or 2, characterized in that: The communication mode includes a predictable communication mode and / or a variable communication mode, the predictable communication mode is used to indicate that the communication between the first computing cluster and the second computing cluster is predictable when executing a subtask, and the variable communication mode is used to indicate that the communication between the first computing cluster and the second computing cluster is variable when executing a subtask, wherein the first upper-layer switch is used to process the variable communication mode, and the second upper-layer switch is used to process the predictable communication mode.

4. The method according to claim 3, characterized in that The task attributes also include a communication traffic process, which includes serial execution or parallel execution. The serial execution is used to indicate that the first subtask and the second subtask in the at least one subtask are performed sequentially, and the parallel execution is used to indicate that the first subtask and the second subtask are performed simultaneously.

5. The method according to claim 4, characterized in that The communication mode also includes a point-to-point communication mode, and the point-to-point communication mode is used to indicate that the first computing cluster and the second computing cluster communicate directly.

6. The method according to claim 5, characterized in that When the communication traffic process is executed in parallel, the first subtask is the variable communication mode and the second subtask is the predictable communication mode, determining, according to the task attributes, that the first computing cluster and the second computing cluster communicate through the first upper layer switch or the second upper layer switch when executing each subtask, includes: Determine that when executing the first subtask, the first computing cluster and the second computing cluster communicate through the first upper layer switch; Determine that when executing the second subtask, the first computing cluster and the second computing cluster communicate through the second upper layer switch.

7. The method according to claim 5, characterized in that When the communication traffic process is executed in parallel, the first subtask is the predictable communication mode and the second subtask is the point-to-point communication mode, determining, according to the task attributes, that the first computing cluster and the second computing cluster communicate through the first upper layer switch or the second upper layer switch when executing each subtask, includes: Determine that when executing the first subtask, the first computing cluster and the second computing cluster communicate through the second upper layer switch; Determine that when executing the second subtask, the first computing cluster and the second computing cluster communicate through the first upper-layer switch.

8. The method according to any one of claims 3 to 7, characterized in that: The infrastructure is further provided with a third upper switch, the third upper switch is of the same type as the first upper switch, the first bottom switch and the second bottom switch are further connected through the third upper switch, and when the communication mode of the first subtask in the computing task is the changed communication mode, determining, according to the task attribute, that the first computing cluster and the second computing cluster communicate through the first upper switch or the second upper switch when executing each subtask, includes: It is determined that when executing each of the subtasks, the first computing cluster and the second computing cluster communicate with each other through the first upper layer switch and the third upper layer switch.

9. The method according to claim 8, characterized in that The task attributes further include the communication traffic of the first subtask, and the method further includes: According to the communication flow of the first subtask, a target upper-layer switch for executing the first subtask in the first upper-layer switch and the third upper-layer switch is determined, wherein a sum of maximum distributable flows of the target upper-layer switches is greater than or equal to the communication flow of the first subtask.

10. The method according to any one of claims 1 to 9, characterized in that The computing task includes a specification document, and the parsing of the computing task to obtain the task attributes of the computing task includes: The specification document is parsed to obtain the task attributes of the computing task, wherein the specification document includes one or more of the model type required to be trained, the number of processing devices required to perform the task, the communication flow process, and the communication algorithm adopted by the communication mode.

11. A management platform, characterized in that: The management platform is used to manage infrastructure, wherein a first computing cluster and a second computing cluster are provided in the infrastructure, wherein the first computing cluster is connected to a first bottom layer switch, and the second computing cluster is connected to a second bottom layer switch, and the first bottom layer switch and the second bottom layer switch are connected via a first upper layer switch or a second upper layer switch, wherein the first upper layer switch and the second upper layer switch are of different types, and the management platform includes: An acquisition module, used for acquiring a computing task, wherein the computing task includes at least one subtask; A parsing module, used to parse the computing task to obtain task attributes of the computing task, wherein the task attributes include a communication mode of each subtask, and the communication mode is used to indicate the characteristics of communication between the first computing cluster and the second computing cluster when executing the corresponding subtask; A first determination module is used to determine, based on the task attributes, that the first computing cluster and the second computing cluster communicate through the first upper layer switch or the second upper layer switch when executing each subtask, wherein the first upper layer switch and the second upper layer switch are used to process one or more types of communication modes.

12. The management platform according to claim 11, characterized in that: The first upper layer switch is an electrical switch, and the second upper layer switch is an optical switch.

13. The management platform according to claim 11 or 12, characterized in that: The communication mode includes a predictable communication mode and / or a variable communication mode, the predictable communication mode is used to indicate that the communication between the first computing cluster and the second computing cluster is predictable when executing a subtask, and the variable communication mode is used to indicate that the communication between the first computing cluster and the second computing cluster is variable when executing a subtask, wherein the first upper-layer switch is used to process the variable communication mode, and the second upper-layer switch is used to process the predictable communication mode.

14. The management platform according to claim 13, characterized in that: The task attributes also include a communication traffic process, which includes serial execution or parallel execution. The serial execution is used to indicate that the first subtask and the second subtask in the at least one subtask are performed sequentially, and the parallel execution is used to indicate that the first subtask and the second subtask are performed simultaneously.

15. The management platform according to claim 14, characterized in that: The communication mode also includes a point-to-point communication mode, and the point-to-point communication mode is used to indicate that the first computing cluster and the second computing cluster communicate directly.

16. The management platform according to claim 15, characterized in that: When the communication traffic process is executed in parallel, the first subtask is the changing communication mode and the second subtask is the predictable communication mode, the first determination module is specifically used to determine that when the first subtask is executed, the first computing cluster and the second computing cluster communicate through the first upper-layer switch; and determine that when the second subtask is executed, the first computing cluster and the second computing cluster communicate through the second upper-layer switch.

17. The management platform according to claim 15, characterized in that: When the communication traffic process is executed in parallel, the first subtask is the predictable communication mode and the second subtask is the point-to-point communication mode, the first determination module is specifically used to determine that when the first subtask is executed, the first computing cluster and the second computing cluster communicate through the second upper-layer switch; and determine that when the second subtask is executed, the first computing cluster and the second computing cluster communicate through the first upper-layer switch.

18. The management platform according to any one of claims 13 to 17, characterized in that: A third upper-layer switch is also provided in the infrastructure, and the third upper-layer switch is of the same type as the first upper-layer switch. The first underlying switch and the second underlying switch are also connected through the third upper-layer switch. When the communication mode of the first subtask in the computing task is the changed communication mode, the first determination module is specifically used to determine that when executing each subtask, the first computing cluster and the second computing cluster communicate through the first upper-layer switch and the third upper-layer switch.

19. The management platform according to claim 18, characterized in that: The task attributes also include the communication traffic of the first subtask, and the management platform further includes: a second determination module; The second determining module is used to determine, according to the communication flow of the first subtask, a target upper-layer switch for executing the first subtask among the first upper-layer switch and the third upper-layer switch, wherein the sum of the maximum distributable flows of the target upper-layer switches is greater than or equal to the communication flow of the first subtask.

20. The management platform according to any one of claims 11 to 19, characterized in that: The computing task includes a specification document, and the parsing module is specifically used to parse the specification document to obtain the task attributes of the computing task. The specification document includes one or more of the model type required to be trained, the number of processing devices required to perform the task, the communication traffic process, and the communication algorithm adopted by the communication mode.

21. A hybrid network management system, characterized in that: The system comprises: A first computing cluster, wherein the first computing cluster is connected to a first underlying switch; a second computing cluster, the second computing cluster being connected to a second underlying switch; a first upper layer switch, wherein the first upper layer switch is connected to the first bottom layer switch and the second bottom layer switch respectively; a second upper layer switch, the second upper layer switch being connected to the first bottom layer switch and the second bottom layer switch respectively; A management platform, the management platform is used to obtain a computing task, parse the computing task to obtain a task attribute of the computing task, and determine, based on the task attribute, whether the first computing cluster and the second computing cluster communicate through the first upper-layer switch or the second upper-layer switch when executing each subtask of at least one subtask included in the computing task; wherein the task attribute includes a communication mode for each subtask, the communication mode is used to indicate a feature of communication between the first computing cluster and the second computing cluster when executing a corresponding subtask, and the first upper-layer switch and the second upper-layer switch are used to process one or more types of communication modes.

22. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 10.

23. A computer-readable storage medium, characterized in that: The method comprises computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster performs the method according to any one of claims 1 to 10.

24. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Optic-electronic hybrid network, system determination method and access switches

    CN107196878A

  • Communication method, device and system in data center

    CN114079625A

  • Job scheduling method and device, computer cluster and computer readable storage medium

    CN114217920A

  • Novel topology design method suitable for large-scale distributed machine learning

    CN115378818A

  • Online computing resource scheduling method and system oriented to MLaaS service

    CN116320013A