Path creation method, data processing system, controller, storage medium, and computer program product
By determining the target path based on the global topology structure and created path information in the controller, the resource waste and path congestion caused by the same path created by multiple distributed computing tasks are solved, and efficient resource utilization and task execution are achieved.
Patent Information
- Application Number
- PCT/CN2024/112394
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-16
- Filing Date
- 2024-08-15
- Publication Date
- 2025-02-20
AI Technical Summary
In cloud computing or grid computing scenarios, when multiple distributed computing tasks independently create optimal communication paths, it may lead to path congestion, data loss or increased delay problems, and also cause resource waste.
The controller determines the target path based on the global topology and created path information, avoiding the same path created by multiple distributed computing tasks, improving resource utilization efficiency and task execution efficiency, and improving the accuracy of path creation.
It achieves avoiding path congestion, improving resource utilization and task execution efficiency, and improving the accuracy of path creation.
Smart Images

Figure CN2024112394_20022025_PF_FP_ABST
Abstract
Description
Path creation method, data processing system, controller, storage medium and computer program product
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] The embodiments of the present disclosure are based on Chinese patent application with application number 202311034673.4, application date August 16, 2023, and application name “Path creation method, data processing system, controller, storage medium”, and claim the priority of the Chinese patent application. The entire content of the Chinese patent application is hereby introduced into the present disclosure as a reference. Technical Field
[0003] The present disclosure relates to, but is not limited to, the field of distributed computing, and in particular to a path creation method, a data processing system, a controller, a storage medium, and a computer program product. Background Art
[0004] Distributed computing tasks, such as distributed machine learning, are performed using multiple independent computing nodes. During the computing process, each node needs to communicate data with multiple other nodes in the cluster. Distributed computing tasks typically utilize a subset of the nodes in the cluster. Typical existing technology implementations, such as the NVIDIA collective communication library (NCCL), primarily utilize the communication library at the start of a distributed computing task to collect network topology information between nodes and the topological relationships between computing devices within each node on each execution node of the distributed computing task. Based on this collected information, the communication path between each node is pre-calculated, the computing devices on the communication path, and the types of communication links between each computing device, are determined, and a communication path is created for use during the execution of the distributed computing task. Typically, the optimal communication path with high bandwidth and low latency is selected for creation. Subsequent distributed computing tasks are executed, and computing devices communicate data using the previously calculated communication path.
[0005] To improve resource utilization, some cloud computing or grid computing scenarios run multiple distributed computing tasks simultaneously within a single cluster. Because each distributed computing task independently calculates and creates an optimal communication path, multiple distributed computing tasks may create the same path. When communication data from multiple distributed computing tasks is forwarded along the same communication path, this can lead to path congestion, data loss, increased latency, and other issues. Suboptimal communication paths are not created, resulting in wasted resources.
[0006] Summary of the Invention
[0007] In view of this, the present disclosure provides a path creation method, a data processing system, a controller, a storage medium and a computer program product. According to the path creation method of an embodiment of the present disclosure, the controller determines the target path based on the global topology structure and the created path information, which not only avoids the same path created by multiple distributed computing tasks, improves resource utilization efficiency and task execution efficiency, but also improves the accuracy of path creation.
[0008] According to one aspect of the present disclosure, a path creation method is provided. The path creation method is applied to a controller, the controller communicating with multiple computing nodes, each computing node including at least one computing device. The path creation method includes: receiving a path creation request from any computing node, the path creation request including identifiers of multiple computing devices used to perform distributed computing tasks, a topology type, and a first preset condition; determining, based on a pre-stored topology of multiple computing nodes and the computing devices included therein, at least one alternative path that enables the multiple computing devices to communicate and satisfies the topology type; determining, based on pre-stored information about created paths, a congestion level for each alternative path; selecting an alternative path whose congestion level satisfies the first preset condition as a target path, and creating the target path; and outputting relevant information about the target path to the computing node that issued the path creation request.
[0009] In a possible implementation, the path creation method further includes: upon receiving a path release request from any computing node, releasing the path indicated by the path release request, including deleting relevant information of the path indicated by the path release request from the created path information.
[0010] In one possible implementation, the path creation method further includes: receiving topology information from any computing node, the topology information including the identification of each computing node that can communicate with the computing node, and information about the identification pair and communication link of each pair of communicative computing devices on the computing node; and updating a pre-stored topology structure based on the topology information.
[0011] In one possible implementation, the first preset condition is that the target path has the lowest congestion level. The determining the congestion level of each alternative path based on pre-stored information about created paths includes: determining, based on the created path information, a minimum value or a weighted average value of the average available bandwidth of each communication link on the alternative path at a current point in time as a first congestion parameter indicating the congestion level of the alternative path; and selecting, as the target path, an alternative path whose congestion level satisfies the first preset condition, includes: selecting, from the alternative paths, an alternative path having the largest first congestion parameter as the target path.
[0012] In one possible implementation, the above-mentioned selecting an alternative path whose congestion level meets the first preset condition as the target path further includes: when there are multiple alternative paths with the largest first congestion parameter, selecting the alternative path with the smallest communication delay from the multiple alternative paths with the largest first congestion parameter as the target path.
[0013] In one possible implementation, the first preset condition is that the target path has the lowest congestion level. The determining the congestion level of each alternative path based on pre-stored information about established paths includes: determining, based on the established path information, a minimum value or a weighted average value of the average available bandwidth of each communication link on the alternative path at each time point within a preset time period as a first congestion parameter indicating the congestion level of the alternative path at that time point; determining, based on the maximum value of the first congestion parameter of the alternative path at each time point, a second congestion parameter indicating the congestion level of the alternative path; and selecting, as the target path, an alternative path whose congestion level satisfies the first preset condition, an alternative path having the largest second congestion parameter from the alternative paths as the target path.
[0014] In one possible implementation, the above-mentioned selecting an alternative path whose congestion level meets the first preset condition as the target path further includes: when there are multiple alternative paths with the largest second congestion parameter, selecting the alternative path with the smallest communication delay from the multiple alternative paths with the largest second congestion parameter as the target path.
[0015] In one possible implementation, the created path information includes an identifier of a created and unreleased path, an identifier of a computing device included in the path, and information about a communication link on the path. The above-mentioned creation of a target path includes: adding the identifier of the target path, the identifier of the computing device included in the target path, and information about the communication link on the target path to the created path information.
[0016] In one possible implementation, the path creation request also includes the expected execution time of the distributed computing task, and the created path information includes the identifier of the created and unreleased path, the identifier of the computing device included in the path, the information of the communication link on the path, the expected creation time and the expected release time of the path. The above-mentioned creation of the target path includes: determining the expected creation time of the target path based on the time point corresponding to the second congestion parameter of the target path; determining the expected release time of the target path based on the expected creation time and the expected execution time of the target path; and adding the identifier of the target path, the identifier of the computing device included in the target path, the information of the communication link on the target path, and the expected creation time and expected release time of the target path to the created path information.
[0017] In one possible implementation, at any time point after the expected release time of the target path is reached and before a path release request indicating the target path is received, the path creation method further includes: searching for created path information to determine whether there is a created and unreleased path whose expected creation time is associated with the expected release time of the target path; modifying the expected release time of the target path in the created path information based on the current time point; and when at least one path is found, modifying the expected creation time and expected release time of the at least one path based on the current time point; or, when at least one path is found, releasing the found path and, based on identifiers of multiple computing devices included in the path, re-executing, based on a pre-stored topology of multiple computing nodes and the computing devices included therein, determining at least one alternative path that enables multiple computing devices to communicate and satisfies the topology type, and subsequent steps.
[0018] In a possible implementation, the communication link includes one or more of a point-to-point communication type, an infinite bandwidth type, a remote direct data access type based on converged Ethernet, and an Ethernet type.
[0019] According to another aspect of the present disclosure, a path creation method is provided. The path creation method is applied to a data processing system, the data processing system including a controller and multiple computing nodes, the controller communicating with the multiple computing nodes, each computing node including at least one computing device, the path creation method including: when a distributed computing task on any computing node is started, the computing node sends a path creation request to the controller, the path creation request including identifiers, topology types, and a first preset condition of the multiple computing devices, the multiple computing devices being computing devices used to execute the distributed computing task; the controller executes the path creation method, receives the path creation request and creates a target path, and outputs relevant information of the target path to the computing node that issued the path creation request.
[0020] In one possible implementation, the path creation method further includes: when any computing node receives relevant information of the target path, the computing node executes the distributed computing task based on the relevant information of the target path; after the execution of the distributed computing task is completed, the computing node sends a path release request to the controller, and the path release request indicates the target path.
[0021] According to another aspect of the present disclosure, a controller is provided, which communicates with multiple computing nodes, each computing node including at least one computing device. The controller includes: a path management module configured to receive a path creation request from any computing node, the path creation request including the identification of multiple computing devices used to perform distributed computing tasks, a topology type, and a first preset condition; a topology calculation module configured to determine, based on a pre-stored topology structure of multiple computing nodes and the computing devices included therein, at least one alternative path that enables the multiple computing devices to communicate and satisfies the topology type; determine, based on pre-stored information about created paths, a congestion level for each alternative path; select an alternative path whose congestion level satisfies the first preset condition as a target path, and create the target path by the path management module; and the path management module is further configured to output relevant information of the target path to the computing node that issued the path creation request.
[0022] In a possible implementation, the path management module is further configured to: upon receiving a path release request from any computing node, release the path indicated by the path release request, including deleting relevant information of the path indicated by the path release request from the created path information.
[0023] In one possible implementation, the controller also includes a topology collection module, which is further configured to: receive topology information from any computing node, the topology information including the identification of each computing node that can communicate with the computing node, and information on the identification pair and communication link of each pair of communicative computing devices on the computing node; and update the pre-stored topology structure based on the topology information.
[0024] In one possible implementation, the first preset condition is that the congestion level of the target path is minimized, and the topology collection module is further configured to: determine, based on the created path information, the minimum value or weighted average value of the average available bandwidth of each communication link on the alternative path at the current time point as a first congestion parameter indicating the congestion level of the alternative path; and select the alternative path whose congestion level meets the first preset condition as the target path, including: selecting the alternative path with the largest first congestion parameter from the alternative paths as the target path.
[0025] In a possible implementation, the topology collection module is further configured to: when there are multiple candidate paths with the largest first congestion parameter, select the candidate path with the smallest communication delay from the multiple candidate paths with the largest first congestion parameter as the target path.
[0026] In one possible implementation, the first preset condition is that the congestion level of the target path is minimized, and the topology collection module is further configured to: determine, based on the created path information, the minimum value or weighted average value of the average available bandwidth of each communication link on the alternative path at each time point within a preset time period as a first congestion parameter indicating the congestion level of the alternative path at that time point; determine, based on the maximum value of the first congestion parameter of the alternative path at each time point, a second congestion parameter indicating the congestion level of the alternative path; and select the alternative path whose congestion level meets the first preset condition as the target path, including: selecting the alternative path with the largest second congestion parameter from the alternative paths as the target path.
[0027] In a possible implementation, the topology collection module is further configured to: when there are multiple candidate paths with the largest second congestion parameter, select the candidate path with the smallest communication delay from the multiple candidate paths with the largest second congestion parameter as the target path.
[0028] In one possible implementation, the created path information includes an identifier of a created and unreleased path, an identifier of a computing device included in the path, and information about a communication link on the path. Creating a target path includes adding the identifier of the target path, the identifier of the computing device included in the target path, and information about a communication link on the target path to the created path information.
[0029] In one possible implementation, the path creation request also includes the expected execution time of the distributed computing task, and the created path information includes the identifier of the created and unreleased path, the identifier of the computing device included in the path, the information of the communication link on the path, the expected creation time and the expected release time of the path. The topology collection module is also configured to: determine the expected creation time of the target path based on the time point corresponding to the second congestion parameter of the target path; determine the expected release time of the target path based on the expected creation time and the expected execution time of the target path; and add the identifier of the target path, the identifier of the computing device included in the target path, the information of the communication link on the target path, the expected creation time and the expected release time of the target path to the created path information.
[0030] In one possible implementation, at any time point after the expected release time of the target path is reached and before a path release request indicating the target path is received, the path management module is further configured to: search for created path information to determine whether there is a created and unreleased path whose expected creation time is associated with the expected release time of the target path; modify the expected release time of the target path in the created path information based on the current time point; and when at least one path is found, modify the expected creation time and expected release time of the at least one path based on the current time point; or, when at least one path is found, release the found path and, based on identifiers of multiple computing devices included in the path, re-execute, based on a pre-stored topology of multiple computing nodes and the computing devices included therein, determine at least one alternative path that enables multiple computing devices to communicate and satisfies the topology type, and subsequent steps.
[0031] In a possible implementation, the communication link includes one or more of a point-to-point communication type, an infinite bandwidth type, a remote direct data access type based on converged Ethernet, and an Ethernet type.
[0032] According to another aspect of the present disclosure, a data processing system is provided. The data processing system includes a controller and a plurality of computing nodes. The controller communicates with the plurality of computing nodes. Each computing node includes at least one computing device.
[0033] When a distributed computing task is started on any computing node, the computing node sends a path creation request to the controller, where the path creation request includes identifiers of multiple computing devices, a topology type, and a first preset condition, where the multiple computing devices are computing devices used to execute the distributed computing task;
[0034] The controller executes the path creation method, receives the path creation request and creates the target path, and outputs the relevant information of the target path to the computing node that issued the path creation request.
[0035] In one possible implementation, when any computing node receives relevant information about a target path, the computing node executes a distributed computing task based on the relevant information about the target path; after the distributed computing task is completed, the computing node sends a path release request to the controller, where the path release request indicates the target path.
[0036] According to another aspect of the present disclosure, a controller is provided, comprising: a processor; and a memory for storing processor-executable instructions; wherein the processor is configured to implement the above method when executing the instructions stored in the memory.
[0037] According to another aspect of the present disclosure, a non-volatile computer-readable storage medium is provided, on which computer program instructions are stored, wherein the computer program instructions implement the above method when executed by a processor.
[0038] According to another aspect of the present disclosure, a computer program product is provided, including a computer-readable code, or a non-volatile computer-readable storage medium carrying the computer-readable code. When the computer-readable code runs in a processor of an electronic device, the processor in the electronic device executes the above method.
[0039] In an embodiment of the present disclosure, a controller can receive a path creation request from any computing node. The path creation request includes the identifiers of multiple computing devices, a topology type, and a first preset condition, so that the controller can determine what path to create. Based on the pre-stored topology of multiple computing nodes and the computing devices included therein, the controller determines at least one alternative path that enables communication between the multiple computing devices, so that the alternative path first meets the requirements of the included computing devices and the topology type. Then, based on the pre-stored information of the created paths, the controller determines the congestion level of each alternative path, selects the alternative path whose congestion level meets the first preset condition as the target path, and creates the target path. In this way, the optimal target path can be selected and created, and the target path can be one with a congestion level that meets the requirements. The controller can output relevant information about the target path to the computing node that issued the path creation request so that the computing node can use the target path. According to the path creation method of the embodiment of the present disclosure, the controller determines the target path based on the global topology and the created path information, which not only avoids the same path created by multiple distributed computing tasks, improves resource utilization efficiency and task execution efficiency, but also improves the accuracy of path creation.
[0040] Further features and aspects of the present disclosure will become apparent from the following detailed description of exemplary embodiments with reference to the attached drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate exemplary embodiments, features, and aspects of the disclosure and, together with the description, serve to explain the principles of the disclosure.
[0042] FIG1 is an exemplary application scenario of a path creation method provided by an embodiment of the present disclosure.
[0043] FIG2 is a flow chart of a path creation method according to an embodiment of the present disclosure.
[0044] FIG3 a is a schematic diagram 1 of a topological structure of a computing device provided in an embodiment of the present disclosure.
[0045] FIG3 b is a second schematic diagram of a topological structure of a computing device provided in an embodiment of the present disclosure.
[0046] FIG4 is a schematic diagram of an alternative path in a path creation method provided in an embodiment of the present disclosure.
[0047] FIG5 is a first schematic diagram of created path information in a path creation method provided by an embodiment of the present disclosure.
[0048] FIG6 is a second schematic diagram of created path information in a path creation method provided by an embodiment of the present disclosure.
[0049] FIG7 is a second flow chart of a path creation method provided in an embodiment of the present disclosure.
[0050] FIG8 is a schematic diagram of the structure of a computing node and a controller provided in an embodiment of the present disclosure.
[0051] FIG9 is a schematic diagram of a communication library and the working mode of each module provided in an embodiment of the present disclosure.
[0052] FIG10 is a schematic diagram of the structure of a controller 1900 provided in an embodiment of the present disclosure. DETAILED DESCRIPTION
[0053] Various exemplary embodiments, features, and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. The same reference numerals in the accompanying drawings represent elements with the same or similar functions. Although various aspects of the embodiments are shown in the accompanying drawings, the drawings are not necessarily drawn to scale unless otherwise indicated.
[0054] The word “exemplary” is used exclusively herein to mean “serving as an example, example, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
[0055] In addition, numerous specific details are provided in the following detailed description to better illustrate the present disclosure. Those skilled in the art will appreciate that the present disclosure can be practiced without certain specific details. In some instances, methods, means, components, and circuits well known to those skilled in the art are not described in detail in order to highlight the main points of the present disclosure.
[0056] FIG1 is an exemplary application scenario of a path creation method provided by an embodiment of the present disclosure.
[0057] As shown in Figure 1, the path creation method can be executed by a controller in a data processing system. The data processing system may include multiple computing nodes (Figure 1 uses computing nodes 1 and 2 as examples) and a controller. The controller can be installed on any computing node or separately on a control node. Figure 1 illustrates the controller installed on a control node as an example. The controller can communicate with any computing node.
[0058] A compute node can be a server or computer, or any other node that allows the configuration of a computing device. Computing devices can include central processing units (CPUs), peripheral component interconnect express (PCIe) devices, graphics processing units (GPUs), and the like. A control node can be a server or computer, or any other node that allows the configuration of a controller.
[0059] Each compute node can include at least one computing device and multiple communication devices. In the example of Figure 1, compute node 1 includes the computing devices CPU1, GPU1, and GPU2, which are connected via node M and directly interconnected. Compute node 2 includes CPU2, GPU3, and GPU4, which are connected via node N and directly interconnected.
[0060] Compute node 1 includes network cards 1 and 2, each with one end connected to node M and the other end connected to a switch. Compute node 2 includes network cards 3 and 4, each with one end connected to node N and the other end connected to a switch.
[0061] Each computing node can collect topology information between itself and other computing nodes, as well as topology information between computing devices within itself. The collected topology information may include the identifier of each computing node with which it can communicate, the identifier of each pair of computing devices that can communicate within itself, and information about the communication links that enable communication between computing devices. Examples of communication links can be found in the descriptions of Figures 3a and 4 below.
[0062] The collected topology information can be output by the computing nodes to the controller, which organizes and stores it as a global topology structure. Examples of topology structures can be found below and in the descriptions of Figures 3a and 3b.
[0063] Any computing node can execute a distributed computing task. When a distributed computing task is initiated on a computing node, the communication library on that computing node is initialized. During the communication library initialization process, the computing node generates and outputs a path creation request to the controller. The path creation request may include the identifiers of the multiple computing devices used to execute the distributed computing task, the topology type, and a first preset condition. Examples of topology types and first preset conditions can be found in the relevant descriptions below.
[0064] The controller executes a path creation method to receive topology information from each computing node, organize and store it into a global topology structure. The controller is also used to store global created path information, that is, information about paths that have been created and not released. The controller executes a path creation method, and after receiving a path creation request, determines and creates a target path based on the currently stored created path information, the currently stored topology structure, and the identifier, topology type, and first preset condition included in the path creation request. Among them, the method of creating the target path can be to add relevant information of the target path to the created path information. After creating the target path, the controller can output the relevant information of the target path to the computing node that issued the path creation request. On this computing node, the target path can be used when the distributed computing task is executed.
[0065] When a distributed computing task completes, the compute node sends a path release request to the controller. The path release request may indicate the path to be released. The controller executes the path creation method and, upon receiving the path release request, releases the path indicated by the path release request. Releasing a path may involve deleting path-related information from the created path information.
[0066] Taking computing node 1 in Figure 1 as an example, when distributed computing task 1 on computing node 1 is started, computing node 1 sends path creation request 1 to the controller. The controller executes the path creation method of the embodiment of the present disclosure, determines and creates the target path (path 1) for path creation request 1, and outputs the relevant information of the target path (path 1) to computing node 1. Then, when distributed computing task 1 is executed, the computing device and communication link on path 1 can be used. When the execution of distributed computing task 1 is completed, computing node 1 sends path release request 1 to the controller. Path release request 1 indicates path 1. The controller releases path 1 according to path release request 1.
[0067] FIG2 is a first schematic diagram of a process of a path creation method provided by an embodiment of the present disclosure.
[0068] As shown in FIG2 , the present disclosure proposes a path creation method, which is applied to a controller that communicates with multiple computing nodes, each of which includes at least one computing device. The path creation method includes steps S21 to S25:
[0069] Step S21, receiving a path creation request from any computing node;
[0070] The path creation request includes the identifiers of multiple computing devices used to perform the distributed computing task, the topology type, and the first preset condition;
[0071] Step S22, determining, based on a pre-stored topology of a plurality of computing nodes and computing devices included therein, at least one candidate path that enables the plurality of computing devices to communicate and satisfies the topology type;
[0072] Step S23, determining the congestion level of each candidate path based on pre-stored created path information;
[0073] Step S24, selecting an alternative path whose congestion level meets the first preset condition as the target path, and creating the target path;
[0074] Step S25: Output relevant information of the target path to the computing node that issued the path creation request.
[0075] For example, in step S21, the controller first receives a path creation request. This path creation request may be generated and output by a computing node after a distributed computing task is initiated on the computing node. The path creation request may include the identification (ID) of multiple computing devices used to execute the distributed computing task, a topology type, and a first preset condition. The multiple computing devices may be distributed across one or more of the multiple computing nodes.
[0076] The identifier included in the path creation request can be the identifier of the computing device providing computing power, the topology type can be tree, ring, or other types, and the first preset condition can be that the target path has minimal congestion. In this case, the user wishes to create a target path that includes the computing device corresponding to the identifier and provides computing power; the target path should have the shape indicated by the topology type; and the target path should be the least congested path among all creatable paths.
[0077] For example, a path creation request may be: [[[CPU1 ID, …], [GPU1 ID, …]], [[CPU2 ID, …], [GPU3 ID, …], parameters representing a ring, parameters representing a first preset condition], where, referring to FIG1 , CPU1 and GPU1 may be computing devices on computing node 1, and CPU2 and GPU3 may be computing devices on computing node 2. This path creation request indicates that the user wishes to create a target path that includes CPU1, GPU1, CPU2, and GPU3, which provide computing capabilities. The target path should be in the shape of a ring and be the path with the least congestion among all creatable paths.
[0078] Those skilled in the art should understand that the path creation request may also include more information, as long as the path creation request enables the controller to know what kind of path needs to be created. The embodiments of the present disclosure do not limit the specific information included in the path creation request.
[0079] In step S22 , the controller determines at least one candidate path that enables the multiple computing devices to communicate and satisfies the topology type based on the pre-stored topology structure of the multiple computing nodes and the computing devices included therein.
[0080] FIG3 a is a first schematic diagram of a topological structure of a computing device provided in an embodiment of the present disclosure, and FIG3 b is a second schematic diagram of a topological structure of a computing device provided in an embodiment of the present disclosure.
[0081] For example, if the communication relationships between computing nodes and the communication relationships between computing devices and communication devices on the computing nodes are shown in Figure 1, the pre-stored topology of multiple computing nodes and their included computing devices can be shown in Figure 3a. Each hollow dot represents a computing device. Each edge represents a communication device used for data transmission. Each edge is also considered a communication link.
[0082] In the example of Figure 3a, for the sake of simplicity, only one edge is shown between computing devices in a communication relationship, but those skilled in the art will understand that there should actually be more than one edge. Referring to Figure 3b, there are actually four edges between CPU1 and CPU2, representing network card 1, network card 2, network card 3, and network card 4, respectively. Among them, when CPU1 acts as the data sender and CPU2 acts as the data receiver, the CPU1 on the computing node 1 side can use network card 1 or network card 2 to transmit data, and there is no restriction on which network card the CPU2 on the computing node 2 side uses to receive data. When CPU2 acts as the data sender and CPU1 acts as the data receiver, the CPU2 on the computing node 2 side can use network card 3 or network card 4 to transmit data, and there is no restriction on which network card the CPU1 on the computing node 1 side uses to receive data.
[0083] Those skilled in the art should understand that there are also four edges between CPU1 and GPU3, between CPU1 and GPU4, between CPU2 and GPU1, and between CPU2 and GPU2, which represent network card 1, network card 2, network card 3, and network card 4 respectively. When the computing device on the computing node 1 side acts as the data sender, network card 1 or network card 2 can be used to transmit data. When the computing device on the computing node 2 side acts as the data sender, network card 3 or network card 4 can be used to transmit data. They will not be described one by one here.
[0084] FIG4 is a schematic diagram of an alternative path in a path creation method provided in an embodiment of the present disclosure.
[0085] In the topology shown in Figures 3a and 3b, if the path creation request indicates that the user wishes to create a target path that includes CPU1, GPU1, CPU2, and GPU3, which provide computing power, the target path should be a ring-shaped path with the least congestion among all creatable paths. The alternative path can then be a ring-shaped path that includes CPU1, GPU1, CPU2, and GPU3. See Figure 4 for an example of an alternative path.
[0086] For the sake of simplicity, only three alternative paths are shown in Figure 4. Those skilled in the art will appreciate that there should be more than three alternative paths, as long as the paths can form a loop.
[0087] In step S23 , the congestion level of each candidate path may be determined based on pre-stored information of created paths.
[0088] A created path refers to a path that has been created and not released. In the disclosed embodiments, this may refer to a path that has been created and not released at the current moment, or a path that is scheduled to be created at a certain point in the future (which may be the expected creation time below), and is scheduled to be released at another point in the future (which may be the expected release time below) after a certain period of time (which may be the expected execution duration of the distributed computing task described below).
[0089] An alternative path can be composed of multiple communication links on the path. Taking the top alternative path in Figure 4 as an example, the path can be composed of a communication link between CPU1 and CPU2 (using network card 1), a communication link between CPU1 and GPU1, a communication link between GPU3 and GPU1 (using network card 3), and a communication link between CPU2 and GPU3. It should be noted that the communication links on the path mentioned here refer to the communication link computing devices included when only the path is considered. For example, referring to Figure 3a, there is also a communication link between CPU1 and GPU2, but this communication link is not included in the top alternative path in Figure 4, so it is not considered.
[0090] There may be multiple types of communication links. In one possible implementation, the communication link includes one or more of a point-to-point communication type, an Infiniband (IB) type, a remote direct memory access over converged Ethernet (RoCE) type, and an Ethernet type.
[0091] Among them, the point-to-point communication type may refer to the peripheral component interconnect express (PCIe) type, as well as communication technologies such as NVLink.
[0092] When a communication link exists between any two computing devices, there may be at least one type of communication link. Different types of communication links may have different transmission rates, bandwidths, and latency. The embodiments of this disclosure do not impose any restrictions on the transmission rates, bandwidths, and latency of each type of communication link.
[0093] Those skilled in the art should understand that the communication link may include more types, such as MTLink and other communication technologies, as long as data communication between two computing devices can be achieved. The embodiments of the present disclosure do not limit the specific type of the communication link.
[0094] Due to hardware limitations, the available bandwidth of each communication link is usually fixed. At a certain point in time, if there is a path that has been created that includes a certain communication link, it means that there is a distributed computing task that can use this communication link at that point in time. It can be understood that the fewer distributed computing tasks that use the same communication link at the same time, the greater the available bandwidth of each distributed computing task, and the less congestion the communication link has. Conversely, the greater the number of distributed computing tasks that use the same communication link at the same time, the smaller the available bandwidth of each distributed computing task, and the greater the congestion of the communication link. Therefore, the created path information can be used to determine the congestion level of each communication link of the alternative path, and then determine the congestion level of the alternative path.
[0095] If the creation time and workload of the distributed computing task are known, the release time of the distributed computing task can be predicted. In this case, there are two possible requirements for the target path creation time point. One is to create the target path in real time without considering the expected time point; the other is to consider the expected time point and create the target path at a predetermined time point in the future. Different requirements lead to different methods for determining the congestion level. Examples of this can be found in the further description of step S23 below.
[0096] In step S24, an alternative path whose congestion level meets a first preset condition is selected as a target path, and the target path is created.
[0097] The alternative path that meets the first preset condition may be an alternative path with the least congestion.
[0098] The method for selecting an alternative path whose congestion level meets the first preset condition is related to the method for determining the congestion level. Creating the target path may include adding relevant information of the target path to the created path information. An exemplary implementation thereof can be seen in the further description of step S24 below.
[0099] In step S25 , the controller may output relevant information of the target path to the computing node that issued the path creation request.
[0100] After receiving the relevant information of the target path, the computing node can use the target path when executing the distributed computing task.
[0101] According to the path creation method of the embodiment of the present disclosure, a controller can receive a path creation request from any computing node. The path creation request includes the identifiers of multiple computing devices, a topology type, and a first preset condition, so that the controller can determine which path to create. Based on the pre-stored topology of multiple computing nodes and the computing devices included therein, the controller determines at least one alternative path that enables communication between the multiple computing devices, so that the alternative path first meets the requirements of the included computing devices and the topology type. Then, based on the pre-stored information of the created paths, the controller determines the congestion level of each alternative path, selects the alternative path whose congestion level meets the first preset condition as the target path, and creates the target path. Thus, the optimal target path can be selected and created, and the target path can be the one with the required congestion level. The controller can output the relevant information of the target path to the computing node that issued the path creation request so that the computing node can use the target path. According to the path creation method of the embodiment of the present disclosure, the controller determines the target path based on the global topology and the information of the created paths. This not only avoids the same path being created by multiple distributed computing tasks, improves resource utilization efficiency and task execution efficiency, but also improves the accuracy of path creation.
[0102] In a possible implementation, the path creation method further includes:
[0103] When receiving a path release request from any computing node, the path indicated by the path release request is released, including deleting relevant information of the path indicated by the path release request from the created path information.
[0104] A path release request may include the identifier of the path indicated by the path release request. Accordingly, the created path information may also include the identifiers of paths that have been created but not yet released. When releasing the path indicated by the path release request, relevant information about the path indicated by the path release request may be retrieved from the created path information based on the identifier included in the path release request, and the retrieved information may be deleted.
[0105] In this way, the accuracy of the created path information can be guaranteed.
[0106] In a possible implementation, the path creation method further includes:
[0107] Receiving topology information from any computing node, the topology information including an identifier of each computing node that can communicate with the computing node, and information about an identifier pair and a communication link of each pair of computing devices that can communicate on the computing node;
[0108] Update the pre-stored topology structure according to the topology information.
[0109] For examples of topological structures, please refer to the above description and the relevant description of FIG3 .
[0110] The communication link information may refer to the type of the communication link. Because the topology information includes the identifier of each computing node that can communicate with the computing node, as well as the identifier and communication link information of each pair of computing devices that can communicate on the computing node, it can be used to update the pre-stored topology structure associated with the computing node. The topology structure update method can be implemented based on existing technologies and will not be further described here.
[0111] In this way, the accuracy of the topology can be guaranteed.
[0112] In a possible implementation, the first preset condition is that the congestion level of the target path is minimal.
[0113] Step S23 includes:
[0114] Determining, based on the created path information, a minimum value or a weighted average value of average available bandwidths of the communication links on the candidate paths at a current time point as a first congestion parameter indicating a congestion level of the candidate paths;
[0115] In step S24, selecting an alternative path whose congestion level meets a first preset condition as the target path includes:
[0116] The candidate path with the largest first congestion parameter is selected from the candidate paths as the target path.
[0117] For example, as described above, an application scenario might require real-time path creation. In this case, only the current communication link usage by distributed computing tasks is considered, without having to consider whether creating a path at a future point in time would be more efficient. In other words, a path creation request might reflect a user requirement to select the least congested alternative path, considering only the current communication link usage by distributed computing tasks.
[0118] As described above, each communication link on an alternative path has a corresponding available bandwidth, which typically remains constant. The ratio of a communication link's available bandwidth to the number of distributed computing tasks using that communication link can be used as the average available bandwidth of the communication link, i.e., the bandwidth available to each distributed computing task using that communication link. The average available bandwidth of each communication link on an alternative path can be used to determine the congestion level of the alternative path.
[0119] In one example, the minimum congestion level can be determined by the local congestion level of the alternative path. The smaller the average available bandwidth of a communication link, the greater the congestion level of the communication link. In this regard, in step S23, the number of distributed computing tasks using each communication link of the alternative path at the current time point can be determined based on the created path information. For example, the number of distributed computing tasks using the communication link can be determined by the number of created and unreleased paths in the created path information that include a communication link of the alternative path. The average available bandwidth of the communication link is then determined based on the known available bandwidth of the communication link and the determined number of distributed computing tasks. The first congestion parameter can be set to be equal to the minimum value of the average available bandwidth of each communication link on the alternative path at the current time point. In this case, the first congestion parameter can represent the local congestion level of the alternative path. The smaller the first congestion parameter, the greater the local congestion level of the alternative path; the larger the first congestion parameter, the smaller the local congestion level of the alternative path.
[0120] In this case, if the first congestion parameter of a candidate path is greater than the first congestion parameter of any other candidate path, it can be said that the candidate path has the lowest local congestion among all the candidate paths. Therefore, in step S24, the candidate path with the largest first congestion parameter is selected as the target path.
[0121] In another example, the minimum congestion level can also be determined by the overall congestion level of the alternative paths. On one alternative path, only one communication link may have a very low average available bandwidth (high congestion level), while the average available bandwidth of all other communication links may be relatively high (low congestion level). On another alternative path, only one communication link may have a very high average available bandwidth (low congestion level), while the average available bandwidth of all other communication links may be relatively low (high congestion level).
[0122] To this end, in step S23, after determining the average available bandwidth of each communication link on the alternative path at the current time point based on the created path information (see the above description for implementation), a first congestion parameter can be set equal to the weighted average of the average available bandwidth of each communication link on the alternative path at the current time point. In this case, the first congestion parameter represents the overall congestion level of the alternative path. A smaller first congestion parameter indicates a greater overall congestion level on the alternative path; a larger first congestion parameter indicates a lesser overall congestion level on the alternative path.
[0123] In this case, if the first congestion parameter of a candidate path is greater than the first congestion parameter of any other candidate path, it can be said that the candidate path has the lowest overall congestion level among all the candidate paths. Therefore, in step S24, the candidate path with the largest first congestion parameter is selected as the target path.
[0124] The weight of each communication link can be pre-set according to the transmission rate, delay, etc. of the communication link, or can be set in other ways, such as setting them all to 1. The embodiment of the present disclosure does not limit the setting method of the weight.
[0125] In this way, the method of selecting the target path is made more flexible and simpler, the required data processing cost is reduced, and the target path is selected faster and more accurately.
[0126] Furthermore, in a possible implementation, in step S24, selecting an alternative path whose congestion level meets a first preset condition as the target path further includes:
[0127] When there are multiple candidate paths with the largest first congestion parameter, the candidate path with the smallest communication delay is selected from the multiple candidate paths with the largest first congestion parameter as the target path.
[0128] For example, if there are multiple first congestion parameters with the largest first congestion parameters among all the alternative paths, then the alternative paths corresponding to the multiple largest first congestion parameters can be further selected based on other parameters of the alternative paths. Each communication link has a delay, and the sum of the delays of each communication link on the alternative path is the delay of the alternative path. The greater the delay, the slower the transmission. Therefore, the alternative path with the smallest delay can be preferentially selected as the target path. It is understood that if there are multiple alternative paths with the smallest delay, other parameters of the alternative paths, such as transmission rate, can be further selected to continue selecting the alternative paths.
[0129] Alternatively, it may be configured such that when there are multiple candidate paths corresponding to the largest first congestion parameter or multiple candidate paths with the smallest delay, one is randomly selected as the target path, which is not limited in the present disclosure.
[0130] In a possible implementation, the first preset condition is that the congestion level of the target path is minimal.
[0131] Step S23 includes:
[0132] Determining, based on the created path information, a minimum value or a weighted average value of the average available bandwidth of each communication link on the alternative path at each time point in a preset time period as a first congestion parameter indicating the congestion level of the alternative path at that time point;
[0133] determining, according to a maximum value of the first congestion parameter of the alternative path at each time point, a second congestion parameter indicating a congestion degree of the alternative path;
[0134] In step S24, selecting an alternative path whose congestion level meets a first preset condition as the target path includes:
[0135] The candidate path with the largest second congestion parameter is selected from the candidate paths as the target path.
[0136] For example, as described above, an application scenario requirement might be to select a specific time point within a preset future time period for path creation. This requires considering whether the communication link within that preset future time period is already in use by distributed computing tasks, and considering at which point within that preset time period the alternative path would be most effective when created as the target path. The path creation request might also include the expected execution duration of the distributed computing task. In other words, the path creation request might reflect the user requirement of selecting the alternative path with the lowest congestion level, given that the communication link is already in use by the distributed computing task within the preset time period.
[0137] As described above, the congestion level of the alternative path can be determined by the average available bandwidth of each communication link on the alternative path. The minimum congestion level can be determined by the local congestion level or the overall congestion level of the alternative path. In step S23, based on the created path information, the average available bandwidth of each communication link of the alternative path at each time point in the preset time period can be first determined (the implementation method thereof is described above), and the first congestion parameter of the alternative path at each time point is determined based on the minimum value or weighted average value of the average available bandwidth of each communication link on the alternative path at each time point. At this time, the first congestion parameter can represent the congestion level of the alternative path at the corresponding time point. For any alternative path, it corresponds to multiple first congestion parameters, and each first congestion parameter corresponds to a time point in the preset time period.
[0138] Then, based on the maximum value of the first congestion parameter for each alternative path at each time point, a second congestion parameter, indicating the congestion level of the alternative path, can be determined. That is, for any alternative path, the largest of its corresponding first congestion parameters is found and used as the second congestion parameter. In this case, if the second congestion parameter of a particular alternative path is greater than the second congestion parameter of any other alternative path, this indicates that the alternative path has the least congestion among all the alternative paths that can be created within the preset time period. Therefore, in step S24, the alternative path with the largest second congestion parameter is selected as the target path.
[0139] The preset time period can be a future time period and can be set according to the application scenario requirements so that when the target path is created at a certain time point in the preset time period, the impact on the execution efficiency of the distributed computing task will not be too significant. The embodiments of this disclosure do not limit the specific setting method of the preset time period.
[0140] In this way, the target path selection method is made more flexible. The congestion level of the alternative path at a certain time point within the preset time period may be lower than the congestion level at the current time point, so that the congestion level of the selected target path is as low as possible.
[0141] Furthermore, in a possible implementation, in step S24, selecting an alternative path whose congestion level meets a first preset condition as the target path further includes:
[0142] When there are multiple candidate paths with the largest second congestion parameter, the candidate path with the smallest communication delay is selected from the multiple candidate paths with the largest second congestion parameter as the target path.
[0143] For example, if there are multiple maximum second congestion parameters among all the alternative paths, then the alternative paths corresponding to the multiple maximum second congestion parameters can be further selected based on other parameters of the alternative paths. Each communication link has a delay, and the sum of the delays of each communication link on the alternative path is the delay of the alternative path. The greater the delay, the slower the transmission. Therefore, the alternative path with the minimum delay can be preferentially selected as the target path. It is understood that if there are multiple alternative paths with the minimum delay, other parameters of the alternative paths, such as transmission rate, can be further selected to continue selecting the alternative paths.
[0144] Alternatively, it may be configured such that when there are multiple candidate paths corresponding to the largest second congestion parameter or multiple candidate paths with the smallest delay, one is randomly selected as the target path, which is not limited in the present disclosure.
[0145] The following describes an exemplary method for executing step S24 in an embodiment of the present disclosure to achieve real-time creation of a target path.
[0146] In a possible implementation, the created path information includes an identifier of a created and unreleased path, an identifier of a computing device included in the path, and information about a communication link on the path.
[0147] In step S24, creating a target path includes:
[0148] The identifier of the target path, the identifier of the computing device included in the target path, and the information of the communication link on the target path are added to the created path information.
[0149] For example, since step S24 creates the target path in real time, the created path information contains information about paths that have been created and not yet released at the current time point. In this case, the created path information may include the identifier of the created and not yet released path, the identifier of the computing device included in the path, and information about the communication links on the path.
[0150] FIG5 is a first schematic diagram of created path information in a path creation method provided by an embodiment of the present disclosure.
[0151] 5 , assuming that path L0 is a created path, the created path information may include relevant information of path L0: the identifier L0 of path L0; the identifiers CPU0 and GPU0 of the computing devices included in path L0; and the information CPU0-GPU0 of the communication link on path L0.
[0152] After selecting the target path, the relevant information of the target path, that is, the identifier of the target path, the identifier of the computing device included in the target path, and the information of the communication link on the target path, are added to the created path information. Assume that the top alternative path in Figure 4 is finally selected as the target path. The identifier of the alternative path is L1, and the identifiers of the computing devices included in path L1 are CPU1, CPU2, GPU1, and GPU3; the information of the communication links on path L1 is (CPU1-GPU1, CPU1-(network card 1)-CPU2, CPU2-GPU3, GPU3-(network card 3)-GPU1). After adding the relevant information of the target path to the created path information, the creation of the target path can be achieved.
[0153] In this case, in step S25 , the target path related information output by the controller may also include an identifier of the target path, an identifier of a computing device included in the target path, and information about a communication link on the target path.
[0154] In this way, target paths can be created in real time.
[0155] The following describes an exemplary method for executing step S24 in an embodiment of the present disclosure to create a target path at a certain time point in the future.
[0156] In one possible implementation, the path creation request also includes the expected execution time of the distributed computing task, and the created path information includes the identifier of the created and unreleased path, the identifier of the computing device included in the path, information about the communication link on the path, the expected creation time of the path, and the expected release time.
[0157] Step S24 includes:
[0158] determining an expected creation time of the target path according to a time point corresponding to a second congestion parameter of the target path;
[0159] Determine the expected release time of the target path based on the expected creation time and expected execution duration of the target path;
[0160] The identifier of the target path, the identifier of the computing device included in the target path, the information of the communication link on the target path, the expected creation time and the expected release time of the target path are added to the created path information.
[0161] For example, since executing step S24 does not necessarily mean creating the target path in real time, but may also create the target path at a certain time point in the future, the created path information may include relevant information about the path that has been created and not released at the current time point, and may also include relevant information about the path that is expected to be created at a certain time point in the future and expected to be released at another time point in the future.
[0162] In this case, the created path information may include the identifier of the created and unreleased path, the identifier of the computing device included in the path, information about the communication link on the path, and the expected creation time and expected release time of the path. During step S23, the congestion level (i.e., the second congestion parameter described above) of each communication link on each candidate path at different time points during the preset time period can be determined based on the expected creation time and expected release time of each created and unreleased path.
[0163] FIG6 is a second schematic diagram of created path information in a path creation method provided by an embodiment of the present disclosure.
[0164] Assuming that paths L2 and L3 are already created, the created path information may include information related to path L2: the identifier L2 of path L2; the identifiers CPU0 and CPU1 of the computing devices included in path L2; information about the communication links CPU0-CPU1 on path L2; the expected creation time T20 and expected release time T21 of path L2. Furthermore, information related to path L3 may include the identifier L3 of path L3; the identifiers CPU1, GPU1, and CPU0 of the computing devices included in path L3; information about the communication links CPU1-GPU1 and CPU0-CPU1 on path L3; and the expected creation time T30 and expected release time T31 of path L3.
[0165] After selecting the target path, add the identifier of the target path, the identifier of the computing device included in the target path, the information of the communication link on the target path, the expected creation time and the expected release time of the target path to the created path information. Assuming that the top alternative path in Figure 4 is finally selected as the target path, the identifier of the alternative path is L1, the identifiers of the computing devices included in path L1 are CPU1, CPU2, GPU1, GPU3; the information of the communication link on path L1 (CPU1-GPU1, CPU1-(network card 1) CPU2, CPU2-GPU3, GPU3-(network card 3)-GPU1), the expected creation time of path L1 is T10, and the expected release time is T11. After adding the relevant information of the target path to the created path information, the creation of the target path can be realized.
[0166] In this case, in step S25, the relevant information of the target path output by the controller may also include the identifier of the target path, the identifier of the computing device included in the target path, the information of the communication link on the target path, the expected creation time and the expected release time of the target path.
[0167] In this way, a path to a goal can be created at some point in the future.
[0168] In a possible implementation, at any time point after the expected release time of the target path is reached and before a path release request indicating the target path is received, the path creation method further includes:
[0169] Searching for created path information to determine whether there is a created and unreleased path whose expected creation time is associated with the expected release time of the target path;
[0170] Modify the expected release time of the target path in the created path information according to the current time point;
[0171] When at least one path is found, the expected creation time and the expected release time of the at least one path are modified according to the current time point, or,
[0172] When at least one path is found, the found path is released, and based on the identifiers of the multiple computing devices included in the path, the steps of determining at least one alternative path that enables the multiple computing devices to communicate and satisfies the topology type and subsequent steps are re-executed based on the pre-stored topology structure of the multiple computing nodes and the computing devices included therein.
[0173] For example, under ideal circumstances, when the expected release time of the target path is reached, the distributed computing task will be completed, the controller will receive a path release request indicating the target path from the computing node, and the target path will be released. If an unexpected situation occurs and the distributed computing task has not yet been completed when the expected release time of the target path is reached, the target path will not be released. In other words, at any time point after the expected release time of the target path and before the path release request indicating the target path is received, the created path information still includes relevant information about the target path. Since the target path has not been released at this time, the expected release time of the target path in the created path information at these time points is inaccurate. If the created path information at these time points also stores other paths with expected creation times associated with the expected release time of the target path, the relevant information about the path is also inaccurate.
[0174] In order to ensure the accuracy of the created path information, inaccurate information can be searched and modified. The following first introduces an exemplary method of searching for inaccurate information according to an embodiment of the present disclosure.
[0175] For example, searching for inaccurate information can be to search for information on created paths and determine whether there is a created and unreleased path whose expected creation time is associated with the expected release time of the target path. If so, the relevant information of the found path is inaccurate information.
[0176] One case where the expected creation time of a path is associated with the expected release time of the target path is when the expected creation time of the path is later than the expected release time of the target path, and the communication links included in the path are partially or completely identical to those included in the target path. In other words, the path inherits some or all of the communication links of the target path. In the disclosed embodiments, such paths are classified as affected paths.
[0177] For example, referring to Figure 6 , if the created path information after adding the relevant information of path L1 is the currently stored created path information, the target path is path L2, the expected creation time T30 of path L3 is later than the expected release time T21 of path L2, and path L3 and path L2 include the same communication link CPU0-CPU1, then path L3 is associated with path L2. Path L3 is therefore an affected path, and its accuracy is directly affected by the accuracy of the expected release time of path L2.
[0178] Another case where the expected creation time of a path is associated with the expected release time of the target path is when the path includes different communication links than the target path, but shares some or all of the communication links with the affected path, and the expected creation time of the path is later than the expected release time of the affected path. In other words, the path inherits some or all of the communication links of the affected path. In the disclosed embodiments, such paths are also categorized as affected paths.
[0179] For example, referring to Figure 6 , if the created path information after path L1's related information is added is the currently stored created path information, the target path is path L2, and path L3 is an affected path. If path L1's expected creation time T10 is later than path L3's expected release time T31, and paths L1 and L3 share the same communication link, CPU1-GPU1, then path L1 is associated with path L3, and thus also with path L2. Path L3 is also an affected path, and its accuracy is indirectly affected by the accuracy of path L2's expected release time.
[0180] Those skilled in the art should understand that there are more ways to find inaccurate information, as long as the information found is information whose accuracy changes due to changes in the expected release time of the target path. The embodiments of the present disclosure do not limit the specific method of finding inaccurate information.
[0181] The following describes an exemplary method for modifying inaccurate information according to an embodiment of the present disclosure.
[0182] First, the expected release time of the target path in the created path information may be modified to be consistent with the current time point until the relevant information of the target path is deleted.
[0183] The second step is to modify the relevant information of at least one path found. The embodiment of the present disclosure provides two exemplary modification methods. The first modification method is to modify the expected creation time and expected release time of at least one path based on the current time point. That is, the computing device and communication link included in the found path remain unchanged, and the expected creation time and expected release time of the path are postponed, wherein the degree of postponement can be consistent with the degree of postponement of the expected release time of the target path. That is, the affected path is not released, and only the expected creation time and expected release time of the affected path are adjusted.
[0184] The second modification method is to release the found path and, based on the identifiers of the multiple computing devices included in the path, re-execute the steps (step S22) and subsequent steps to determine at least one alternative path that enables communication between the multiple computing devices and satisfies the topology type based on the pre-stored topology of the multiple computing nodes and the computing devices included therein. In other words, the affected path is released and a new target path is created for the distributed computing task corresponding to the affected path.
[0185] Those skilled in the art should understand that there are more ways to modify inaccurate information in the created path information, as long as the accuracy of the modified created path information is higher than that before the modification. The embodiments of the present disclosure do not limit the specific method of modifying the created path information.
[0186] In this way, the modification of the created path information can be completed to ensure the accuracy of the created path information.
[0187] In one possible implementation, the present disclosure also provides a path creation method, which is applied to a data processing system. The data processing system includes a controller and multiple computing nodes. The controller communicates with the multiple computing nodes, and each computing node includes at least one computing device. A structural diagram of the data processing system can be seen in Figure 1.
[0188] FIG7 is a second flow chart of a path creation method provided in an embodiment of the present disclosure.
[0189] As shown in FIG7 , the path creation method is applied to a data processing system, and the path creation method includes steps S71 and S72:
[0190] In step S71, when a distributed computing task is started on any computing node, the computing node sends a path creation request to the controller. The path creation request includes the identifiers, topology types, and first preset conditions of multiple computing devices. The multiple computing devices are computing devices used to execute the distributed computing task. For an exemplary implementation method, please refer to the relevant descriptions of Figures 1 and 9.
[0191] In step S72, the controller executes the path creation method described above, receives the path creation request, creates the target path, and outputs relevant information of the target path to the computing node that issued the path creation request. For exemplary implementations, see the descriptions of Figures 2 to 6 and 9.
[0192] FIG8 is a schematic diagram of the structure of a computing node and a controller provided in an embodiment of the present disclosure.
[0193] As shown in Figure 8, a computing node may include a communication library, a topology proxy module, and multiple computing devices. A controller may include a topology collection module, a topology storage module, a topology calculation module, a path management module, and a path storage module. The communication library, topology proxy module, topology collection module, topology storage module, topology calculation module, path management module, and path storage module may be implemented using either software or hardware, which is not limited in the present disclosure.
[0194] Figure 9 is a schematic diagram of the working mode of a communication library and each module provided by an embodiment of the present disclosure. The communication library and topology agent module in Figure 9 can be set on the same computing node.
[0195] The functions performed by the communication library and each module in the processes described in the above FIG. 2 to FIG. 6 are described below in conjunction with FIG. 8 and FIG. 9 .
[0196] In a possible implementation, the path creation method further includes:
[0197] Any computing node collects topology information between itself and other computing nodes, as well as topology information between computing devices within itself. The collected topology information includes the identifier of each computing node that can communicate with itself, and the identifier pair and communication link of each pair of computing devices that can communicate within itself.
[0198] Output topology information to the controller.
[0199] For example, as shown in Figure 8, the collection of topology information can be completed by a topology agent module on a computing device. For example, for computing node 1, assuming that computing node 1 can communicate with computing node 2, computing device 1 and computing device 2 within computing node 1 can communicate, and computing device 1 and computing device 3 can communicate, then the topology information collected by the topology agent module on computing node 1 may include the identifier of computing node 2, the identifier pair of computing device 1 and computing device 2, the identifier pair of computing device 1 and computing device 3, the communication link that enables computing device 1 and computing device 2 to communicate, and the communication link that enables computing node 1 and computing node 3 to communicate.
[0200] The collected topology information can be output by the topology proxy module to the topology collection module of the controller on the control node (i.e., ① in Figure 9). The compute nodes can periodically collect and output topology information. On the controller, the topology collection module can update the topology structure stored in the topology storage module (i.e., ② in Figure 9) based on the received topology information to ensure the accuracy of the topology structure.
[0201] Any compute node can execute distributed computing tasks. As shown in Figure 8, when a distributed computing task is initiated on a compute node, the communication library on that compute node is initialized. During the communication library initialization process, the library calls the topology agent module on that compute node (i.e., step 4 in Figure 9). The topology agent module generates and outputs a path creation request to the controller's path management module (i.e., step 5 in Figure 9).
[0202] On the controller, the path management module forwards the path creation request to the topology calculation module (i.e., ⑥ in Figure 9), completing the execution of step S21 described above. In response to the received path creation request, the topology calculation module obtains the topology structure currently stored by the topology storage module (i.e., ⑦ in Figure 9) and determines the alternative path, completing the execution of step S22 described above. The topology calculation module obtains the created path information currently stored by the path storage module (i.e., ⑧ in Figure 9) and determines the congestion level of each communication link on each alternative path, completing the execution of step S23 described above. The topology calculation module determines the target path based on the congestion level and outputs the relevant information of the target path to the path management module (i.e., ⑨ in Figure 9). The path management module creates the target path, wherein the method of creating the target path can be to add the relevant information of the target path to the created path information (i.e., ⑩ in Figure 9), completing the execution of step S24 described above.
[0203] The path management module is also used to output the relevant information of the target path to the topology agent module of the computing node that initiates the path creation request (i.e., ), and the execution of step S25 described above is completed. On the computing node, the topology agent module forwards the relevant information of the target path to the communication library (i.e., ), the communication library completes the initialization based on the relevant information of the target path, and then the target path can be used when the distributed computing task is executed.
[0204] In a possible implementation, the path creation method further includes:
[0205] When any computing node receives relevant information of the target path, the computing node executes the distributed computing task according to the relevant information of the target path;
[0206] After the distributed computing task is completed, the computing node sends a path release request to the controller, where the path release request indicates the target path.
[0207] For example, referring to FIG9, when the distributed computing task is finished, the communication library on the computing node calls the topology agent module (ie, the topology agent module in FIG9) again. ), the topology agent module outputs the path release request to the controller's path management module (i.e., ), wherein the path release request may indicate the path to be released. The path management module releases the path indicated by the received path release request. The method of releasing the target path may be to delete the relevant information of the target path from the created path information (i.e., ).
[0208] The present disclosure also provides a controller, the structure of which can be seen in FIG8 .
[0209] In one possible implementation, the controller communicates with a plurality of computing nodes, each computing node including at least one computing device, and the controller includes:
[0210] a path management module configured to receive a path creation request from any computing node, the path creation request including identifiers of multiple computing devices used to perform a distributed computing task, a topology type, and a first preset condition;
[0211] a topology calculation module configured to determine, based on a pre-stored topology of the plurality of computing nodes and the computing devices included therein, at least one candidate path that enables the plurality of computing devices to communicate and satisfies the topology type; determine, based on pre-stored information about created paths, a congestion level of each candidate path; select as a target path the candidate path whose congestion level satisfies the first preset condition, and create the target path by the path management module;
[0212] The path management module is further configured to output relevant information of the target path to the computing node that issues the path creation request.
[0213] The functions of each module can be found in Figure 9 and related descriptions.
[0214] In a possible implementation, the path management module is further configured to: upon receiving a path release request from any computing node, release the path indicated by the path release request, including deleting relevant information of the path indicated by the path release request from the created path information.
[0215] In one possible implementation, the controller also includes a topology collection module, which is configured to: receive topology information from any computing node, the topology information including the identification of each computing node that can communicate with the computing node, and information on the identification pair and communication link of each pair of communicative computing devices on the computing node; and update the pre-stored topology structure based on the topology information.
[0216] In one possible implementation, the first preset condition is that the congestion level of the target path is minimized, and the topology calculation module is further configured to: determine, based on the created path information, a minimum value or a weighted average value of the average available bandwidth of each communication link on the alternative path at the current time point as a first congestion parameter indicating the congestion level of the alternative path; and selecting the alternative path whose congestion level meets the first preset condition as the target path includes: selecting, from the alternative paths, the alternative path with the largest first congestion parameter as the target path.
[0217] In a possible implementation, the topology calculation module is further configured to: when there are multiple alternative paths with the largest first congestion parameter, select the alternative path with the smallest communication delay from the multiple alternative paths with the largest first congestion parameter as the target path.
[0218] In one possible implementation, the topology calculation module is further configured to: determine, based on the created path information, a minimum value or a weighted average value of the average available bandwidth of each communication link on the alternative path at each time point within a preset time period, as a first congestion parameter indicating the congestion level of the alternative path at that time point; determine, based on the maximum value of the first congestion parameter of the alternative path at each time point, a second congestion parameter indicating the congestion level of the alternative path; and select the alternative path whose congestion level meets the first preset condition as the target path, including: selecting the alternative path with the largest second congestion parameter from the alternative paths as the target path.
[0219] In a possible implementation, the topology calculation module is further configured to: when there are multiple candidate paths with the largest second congestion parameter, select the candidate path with the smallest communication delay from the multiple candidate paths with the largest second congestion parameter as the target path.
[0220] In one possible implementation, the created path information includes an identifier of a created and unreleased path, an identifier of a computing device included in the path, and information about a communication link on the path. The topology calculation module is further configured to add an identifier of the target path, an identifier of the computing device included in the target path, and information about a communication link on the target path to the created path information.
[0221] In one possible implementation, the path creation request also includes the expected execution time of the distributed computing task, and the created path information includes the identifier of the created and unreleased path, the identifier of the computing device included in the path, the information of the communication link on the path, the expected creation time and the expected release time of the path. The topology calculation module is further configured to: determine the expected creation time of the target path based on the time point corresponding to the second congestion parameter of the target path; determine the expected release time of the target path based on the expected creation time of the target path and the expected execution time; and add the identifier of the target path, the identifier of the computing device included in the target path, the information of the communication link on the target path, and the expected creation time and expected release time of the target path to the created path information.
[0222] In one possible implementation, at any time point after the expected release time of the target path is reached and before a path release request indicating the target path is received, the path management module is further configured to: search the created path information to determine whether there is a created and unreleased path whose expected creation time is associated with the expected release time of the target path; modify the expected release time of the target path in the created path information according to the current time point; and when at least one path is found, modify the expected creation time and expected release time of the at least one path according to the current time point; or, when at least one path is found, release the found path and, based on identifiers of the multiple computing devices included in the path, re-execute, based on a pre-stored topology of the multiple computing nodes and the computing devices included therein, determine at least one alternative path that enables the multiple computing devices to communicate and satisfies the topology type, and subsequent steps.
[0223] In a possible implementation, the communication link includes one or more of a point-to-point communication type, an infinite bandwidth type, a remote direct data access type based on converged Ethernet, and an Ethernet type.
[0224] In some embodiments, the functions or modules included in the controller provided by the embodiments of the present disclosure can be used to execute the method described in the above method embodiments. The specific implementation can refer to the description of the above method embodiments. For the sake of brevity, it will not be repeated here.
[0225] The present disclosure also provides a data processing system, the structure of which can be seen in FIG1 .
[0226] In a possible implementation, the data processing system includes a controller and a plurality of computing nodes, wherein the controller communicates with the plurality of computing nodes, and each computing node includes at least one computing device.
[0227] When a distributed computing task is started on any computing node, the computing node sends a path creation request to the controller, where the path creation request includes identifiers of multiple computing devices, a topology type, and a first preset condition, where the multiple computing devices are computing devices used to execute the distributed computing task;
[0228] The controller executes the path creation method, receives the path creation request and creates a target path, and outputs relevant information of the target path to the computing node that issues the path creation request.
[0229] In one possible implementation, when any computing node receives relevant information of the target path, the computing node executes the distributed computing task based on the relevant information of the target path; after the execution of the distributed computing task is completed, the computing node sends a path release request to the controller, and the path release request indicates the target path.
[0230] In some embodiments, the functions or modules included in the data processing system provided by the embodiments of the present disclosure can be used to execute the method described in the above method embodiment. Its specific implementation can refer to the description of the above method embodiment. For the sake of brevity, it will not be repeated here.
[0231] The present disclosure also provides a computer-readable storage medium having computer program instructions stored thereon, wherein the computer program instructions implement the above method when executed by a processor. The computer-readable storage medium may be a volatile or non-volatile computer-readable storage medium.
[0232] An embodiment of the present disclosure further proposes a controller, comprising: a processor; and a memory for storing instructions executable by the processor; wherein the processor is configured to implement the above method when executing the instructions stored in the memory.
[0233] An embodiment of the present disclosure also provides a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code. When the computer-readable code runs in a processor of an electronic device, the processor in the electronic device executes the above method.
[0234] FIG10 is a schematic diagram of the composition structure of a controller 1900 provided in an embodiment of the present disclosure. For example, the device 1900 can be provided as a controller. Referring to FIG10 , the device 1900 includes a processing component 1922, which further includes one or more processors, and a memory resource represented by a memory 1932 for storing instructions that can be executed by the processing component 1922, such as an application. The application stored in the memory 1932 may include one or more modules, each of which corresponds to a set of instructions. In addition, the processing component 1922 is configured to execute instructions to perform the above method.
[0235] The device 1900 may also include a power supply component 1926 configured to perform power management of the device 1900, a wired or wireless network interface 1950 configured to connect the device 1900 to a network, and an input / output interface 1958 (I / O interface). The device 1900 may operate based on an operating system stored in the memory 1932, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™, or the like.
[0236] In an exemplary embodiment, a non-volatile computer-readable storage medium is also provided, such as a memory 1932 including computer program instructions that can be executed by the processing component 1922 of the apparatus 1900 to perform the above-described method.
[0237] The present disclosure may be a system, method and / or computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for causing a processor to implement various aspects of the present disclosure.
[0238] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. More specific examples (a non-exhaustive list) of computer-readable storage media include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination thereof. As used herein, a computer-readable storage medium is not to be construed as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through an electrical wire.
[0239] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in the computer-readable storage medium in each computing / processing device.
[0240] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, and conventional procedural programming languages such as "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., utilizing an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing the state information of the computer-readable program instructions. The electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.
[0241] Various aspects of the present disclosure are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0242] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processor of the computer or other programmable data processing device, a device is generated that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, where these instructions cause the computer, programmable data processing device, and / or other device to operate in a specific manner. Thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0243] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0244] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the systems, methods and computer program products according to multiple embodiments of the present disclosure. In this regard, each box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and the part of the module, program segment or instruction contains one or more executable instructions for realizing the prescribed logical function. In some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the prescribed function or action, or can be implemented by a combination of dedicated hardware and computer instructions.
[0245] While various embodiments of the present disclosure have been described above, the foregoing description is intended to be illustrative, non-exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, their practical applications, or technological improvements in the marketplace, or to enable others skilled in the art to understand the embodiments disclosed herein. Industrial Applicability
[0246] The disclosed embodiments provide a path creation method, a data processing system, a controller, and a storage medium. The path creation method is applied to a controller, the controller communicates with multiple computing nodes, and each computing node includes at least one computing device. The method includes: receiving a path creation request from any computing node, determining at least one alternative path that enables multiple computing devices to communicate and satisfies the topology type; determining the congestion level of each alternative path; selecting an alternative path whose congestion level meets a first preset condition as a target path, and creating the target path; and outputting relevant information of the target path to the computing node. The above scheme determines the target path based on the global topological structure and the information of the created paths, which not only avoids the same paths created by multiple distributed computing tasks, improves resource utilization efficiency and task execution efficiency, but also improves the accuracy of path creation.
Claims
1. A path creation method, wherein: The path creation method is applied to a controller, the controller communicates with a plurality of computing nodes, each computing node includes at least one computing device, and the path creation method includes: Receiving a path creation request from any computing node, the path creation request including identifiers of multiple computing devices used to perform a distributed computing task, a topology type, and a first preset condition; Determine, according to the pre-stored topological structure of the plurality of computing nodes and the computing devices included therein, at least one candidate path that enables the plurality of computing devices to communicate and satisfies the topological type; Determine the congestion level of each candidate path according to the pre-stored created path information; Selecting an alternative path whose congestion level meets the first preset condition as a target path, and creating the target path; The relevant information of the target path is output to the computing node that issues the path creation request.
2. The path creation method according to claim 1, wherein: The path creation method also includes: When receiving a path release request from any computing node, releasing the path indicated by the path release request includes deleting relevant information of the path indicated by the path release request from the created path information.
3. The path creation method according to claim 2, wherein: The path creation method also includes: Receiving topology information from any computing node, the topology information including an identification of each computing node that can communicate with the computing node, and information of an identification pair and a communication link of each pair of computing devices that can communicate on the computing node; The pre-stored topology structure is updated according to the topology information.
4. The path creation method according to claim 3, wherein: The first preset condition is that the congestion level of the target path is minimal, The step of determining the congestion level of each candidate path according to the pre-stored created path information includes: Determine, according to the created path information, a minimum value or a weighted average value of average available bandwidths of the communication links on the candidate path at a current time point as a first congestion parameter indicating a congestion degree of the candidate path; The selecting the candidate path whose congestion level meets the first preset condition as the target path includes: A candidate path with the largest first congestion parameter is selected from the candidate paths as the target path.
5. The path creation method according to claim 4, wherein: The step of selecting the candidate path whose congestion degree meets the first preset condition as the target path further includes: When there are multiple candidate paths with the largest first congestion parameter, the candidate path with the smallest communication delay is selected from the multiple candidate paths with the largest first congestion parameter as the target path.
6. The path creation method according to claim 3, wherein: The first preset condition is that the congestion level of the target path is minimal, The step of determining the congestion level of each candidate path according to the pre-stored created path information includes: Determine, according to the created path information, a minimum value or a weighted average value of the average available bandwidth of each communication link on the candidate path at each time point in a preset time period as a first congestion parameter indicating the congestion degree of the candidate path at each time point; Determining a second congestion parameter indicating a congestion degree of the alternative path according to a maximum value of the first congestion parameter of the alternative path at each time point; The selecting the candidate path whose congestion level meets the first preset condition as the target path includes: A candidate path with the largest second congestion parameter is selected from the candidate paths as the target path.
7. The path creation method according to claim 6, wherein: The step of selecting the candidate path whose congestion degree meets the first preset condition as the target path further includes: When there are multiple candidate paths with the largest second congestion parameter, the candidate path with the smallest communication delay is selected from the multiple candidate paths with the largest second congestion parameter as the target path.
8. The path creation method according to claim 4, wherein: The created path information includes an identifier of a created and unreleased path, an identifier of a computing device included in the path, and information of a communication link on the path. The step of creating the target path comprises: The identifier of the target path, the identifier of the computing device included in the target path, and the identifier of the computing device on the target path The information of the communication link is added to the created path information.
9. The path creation method according to claim 6, wherein: The path creation request also includes the expected execution time of the distributed computing task, and the created path information includes the identification of the created and unreleased path, the identification of the computing device included in the path, the information of the communication link on the path, the expected creation time of the path, and the expected release time. The step of creating the target path comprises: Determining an expected creation time of the target path according to a time point corresponding to a second congestion parameter of the target path; Determining an expected release time of the target path according to the expected creation time of the target path and the expected execution duration; The identifier of the target path, the identifier of the computing device included in the target path, the information of the communication link on the target path, the expected creation time and the expected release time of the target path are added to the created path information.
10. The path creation method according to claim 9, wherein: At any time point after the expected release time of the target path is reached and before a path release request indicating the target path is received, the path creation method further includes: Searching the created path information to determine whether there is a created and unreleased path whose expected creation time is associated with the expected release time of the target path; Modify the expected release time of the target path in the created path information according to the current time point; When at least one path is found, the expected creation time and the expected release time of the at least one path are modified according to the current time point, or, When at least one path is found, the found path is released, and based on the identifiers of the multiple computing devices included in the found path, the steps of re-executing the pre-stored topological structure of the multiple computing nodes and the computing devices included therein to determine at least one alternative path that enables the multiple computing devices to communicate and satisfies the topological type and subsequent steps.
11. The path creation method according to any one of claims 1 to 10, wherein: The communication link includes one or more of a point-to-point communication type, an infinite bandwidth type, a remote direct data access type based on converged Ethernet, and an Ethernet type.
12. A path creation method, wherein: The path creation method is applied to a data processing system, the data processing system includes a controller and a plurality of computing nodes, the controller communicates with the plurality of computing nodes, each computing node includes at least one computing device, and the path creation method includes: When a distributed computing task on any computing node is started, the computing node sends a path creation request to the controller, the path creation request includes identifiers of multiple computing devices, a topology type, and a first preset condition, the multiple computing devices are computing devices used to execute the distributed computing task; The controller executes the method according to any one of claims 1 to 11, receives the path creation request and creates a target path, and outputs relevant information of the target path to the computing node that issued the path creation request.
13. The path creation method according to claim 12, wherein: The path creation method also includes: When any computing node receives relevant information of the target path, the computing node executes the distributed computing task according to the relevant information of the target path; After the distributed computing task is executed, the computing node sends a path release request to the controller, where the path release request indicates the target path.
14. A controller, wherein: The controller communicates with a plurality of computing nodes, each computing node including at least one computing device, and the controller includes: A path management module, configured to receive a path creation request from any computing node, wherein the path creation request includes identifiers of multiple computing devices used to perform a distributed computing task, a topology type, and a first preset condition; a topology calculation module configured to determine, based on the pre-stored topology structure of the plurality of computing nodes and the computing devices included therein, at least one candidate path that enables the plurality of computing devices to communicate and satisfies the topology type; determine, based on the pre-stored created path information, the congestion level of each candidate path; select the candidate path whose congestion level satisfies the first preset condition as the target path, and create the target path by the path management module; The path management module is further configured to output relevant information of the target path to the computing node that issues the path creation request.
15. A data processing system, wherein: The data processing system includes a controller and a plurality of computing nodes, wherein the controller communicates with the plurality of computing nodes, and each computing node includes at least one computing device. When a distributed computing task on any computing node is started, the computing node sends a path creation request to the controller, the path creation request includes identifiers of multiple computing devices, a topology type, and a first preset condition, the multiple computing devices are computing devices used to execute the distributed computing task; The controller executes the method according to any one of claims 1 to 11, receives the path creation request and creates a target path, and outputs relevant information of the target path to the computing node that issued the path creation request.
16. A controller, wherein: The controller comprises: processor; a memory for storing processor-executable instructions; The processor is configured to implement the method according to any one of claims 1 to 11 when executing the instructions stored in the memory.
17. A non-volatile computer-readable storage medium having computer program instructions stored thereon, wherein: When the computer program instructions are executed by a processor, the method according to any one of claims 1 to 11 is implemented.
18. A computer program product, comprising a computer-readable code, or a non-volatile computer-readable storage medium carrying the computer-readable code, wherein when the computer-readable code is executed in a processor of an electronic device, the electronic device executes the method according to any one of claims 1 to 11.
Citation Information
Patent Citations
Route planning method based on link congestion coefficients
CN109639575A
Content delivery with reliable multicast using redundant unicast overlay network
CN112543107A
Avoiding network congestion through ring-based trunking communications
CN115336236A
Data transmission method and device, electronic equipment and computer storage medium
CN116320068A
Path creation method, data processing system, controller and storage medium
CN116760761A