Server scheduling method, device medium and product based on rail-optimized topology in large model

By employing an interlaced "zigzag" connection pattern and constraints in the Rail-Optimized topology of the large model, the deployment and scheduling of servers are optimized, solving the problem of low server scheduling efficiency in DCN and achieving efficient server scheduling and network resource utilization.

CN119966829BActive Publication Date: 2025-11-04SHANGHAI JIEYUE JIYUAN INTELLIGENT TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510126868.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-01-27
Publication Date
2025-11-04
Estimated Expiration
2045-01-27

AI Technical Summary

Technical Problem

In the existing technology, there is no specific server scheduling scheme for the characteristics of the Rail-Optimized topology of DCN, resulting in low server scheduling efficiency.

Method used

A server scheduling method based on Rail-Optimized topology in a large model is provided. By obtaining the server deployment scheme in the topology of the HBD, an interlaced "zigzag" connection pattern is formed. Combined with the first and second constraints, the scheduling scheme is determined to ensure that the TP group does not cross multiple backbone switches and sublines.

Benefits of technology

By optimizing server deployment and scheduling, the efficiency of server scheduling was improved with a time complexity of O(nlog n). The use of network resources was also optimized, thus improving the performance of large model training tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119966829B_ABST
    Figure CN119966829B_ABST
Patent Text Reader

Abstract

The embodiment of the application relates to the computer field, and discloses a server scheduling method based on a Rail-Optimized topology in a large model, equipment medium and product. The method is applied to a Rail-Optimized topology structure, and the method comprises the following steps: acquiring a deployment scheme of a server in a topology structure of an HBD; in the deployment scheme, the server is arranged in a plurality of sub-lines, each sub-line corresponds to a group of servers; the last server in each sub-line is connected with the last server in a next sub-line, the first server in the next sub-line is connected with the first server in a sub-line after the next sub-line, and the connection mode is formed in a staggered "zigzag" mode through the circulation; acquiring a first constraint condition and a second constraint condition of the Rail-Optimized topology structure; the first constraint condition is used for ensuring that a TP group does not cross a plurality of backbone switches, and the second constraint condition is used for ensuring that the TP group does not cross a sub-line; and according to the deployment scheme, the first constraint condition and the second constraint condition, a scheduling scheme is determined to schedule the servers according to the scheduling scheme.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computer, and particularly relates to a server scheduling method based on a Rail-Optimized topology in a large model, a device medium and a product. BACKGROUND

[0002] An artificial intelligence data center (AIDC) is a high-performance computing and data processing center designed for artificial intelligence applications, and mainly includes intelligent computing chips. It contains a traditional data center network (DCN) and a high-bandwidth domain (HBD) to meet different communication needs. Optimizing communication delay is crucial to improving resource utilization, and server scheduling according to the characteristics of large language model (LLM) training tasks is an effective method to reduce delay.

[0003] In the related art, some manufacturers have developed server scheduling technology based on the DCN topology.

[0004] However, the inventors have at least found that in the related art, when performing server scheduling, no specific scheduling scheme is proposed for the characteristics of the Rail-Optimized topology structure of the DCN, which leads to low efficiency of server scheduling. SUMMARY

[0005] An object of the present application is to provide a server scheduling method based on a Rail-Optimized topology in a large model, a device medium and a product, at least to solve the technical problem that in the related art, no specific scheduling scheme is proposed for the characteristics of the Rail-Optimized topology structure of the DCN, which leads to low efficiency of server scheduling.

[0006] To achieve the above object, some embodiments of the present application provide the following aspects:

[0007] In a first aspect, some embodiments of the present application provide a server scheduling method based on a Rail-Optimized topology in a large model. The method is applied to a Rail-Optimized topology structure, and the method comprises: obtaining a deployment scheme of a server in a topology structure of an HBD; in the deployment scheme, the server is arranged in a plurality of sub-lines, each sub-line corresponds to a group of servers; the last server in each sub-line is connected to the last server in the next sub-line, the first server in the next sub-line is connected to the first server in the sub-line after the next sub-line, and the cycle is repeated to form an interlaced "zigzag" connection mode; obtaining a first constraint condition and a second constraint condition of the Rail-Optimized topology structure; the first constraint condition is used to ensure that a TP group does not span multiple backbone switches, and the second constraint condition is used to ensure that the TP group does not span the sub-lines; and determining a scheduling scheme according to the deployment scheme, the first constraint condition and the second constraint condition, so as to schedule the servers according to the scheduling scheme.

[0008] In a second aspect, some embodiments of the present application also provide an electronic device, which comprises: one or more processors; and a memory storing computer program instructions, which, when executed, cause the processor to perform the steps of the method described above.

[0009] In a third aspect, some embodiments of the present application also provide a computer readable medium having stored thereon computer program instructions, which can be executed by a processor to implement the method described above.

[0010] In a fourth aspect, some embodiments of the present application also provide a computer program product comprising computer programs / instructions, which, when executed by a processor, implement the steps of the method described above.

[0011] Compared with the related art, the scheme provided in the embodiments of the present application provides a server scheduling method based on a Rail-Optimized topology in a large model. The method is applied to a Rail-Optimized topology structure, and a deployment scheme of a server in a topology structure of a HBD is obtained. In the deployment scheme, the server is arranged in a plurality of sub-lines, and each sub-line corresponds to a group of servers. The last server in each sub-line is connected to the last server in the next sub-line, the first server in the next sub-line is connected to the first server in the sub-line after the next sub-line, and the connection mode is formed in a staggered zigzag shape. The first constraint condition and the second constraint condition of the Rail-Optimized topology structure are obtained. The first constraint condition is used to ensure that a TP group does not cross a plurality of backbone switches, and the second constraint condition is used to ensure that the TP group does not cross the sub-line. A scheduling scheme is determined according to the deployment scheme, the first constraint condition and the second constraint condition, and the server is scheduled according to the scheduling scheme. In the present application, a special zigzag connection mode is used in the deployment scheme, and two constraint conditions are provided in combination with the characteristics of the Rail-Optimized topology structure. The first constraint condition and the second constraint condition can essentially divide a large-scale HBD-based topology structure into a plurality of sub-HBDs, and the scheduling scheme can be determined according to the sub-HBDs, and the time complexity is O(nlog n). BRIEF DESCRIPTION OF DRAWINGS

[0012] One or more embodiments are illustrated by way of example in the figures that are part of this document, and which illustrate by way of example the principles of the embodiments. The embodiments are not limited to the examples of drawings. Elements having the same reference numerals in the figures indicate like elements unless expressly stated otherwise. The figures in the drawings are not to scale.

[0013] Figure 1 An exemplary flowchart of a server scheduling method based on a Rail-Optimized topology in a large model according to some embodiments of the present application is provided.

[0014] Figure 2 An exemplary schematic diagram of a deployment scheme in a server scheduling method based on a Rail-Optimized topology in a large model according to some embodiments of the present application is provided.

[0015] Figure 3 An exemplary schematic diagram of a sub-line in a server scheduling method based on a Rail-Optimized topology in a large model according to some embodiments of the present application is provided.

[0016] Figure 4An exemplary flowchart of step S101 in a server scheduling method based on a Rail-Optimized topology in a large model according to some embodiments of the present application;

[0017] Figure 5 An exemplary flowchart of step S103 in a server scheduling method based on a Rail-Optimized topology in a large model according to some embodiments of the present application;

[0018] Figure 6 An exemplary structural diagram of an electronic device according to some embodiments of the present application. DETAILED DESCRIPTION

[0019] To make the objectives, technical solutions, and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described below in connection with the drawings in the embodiments of the present application. Obviously, the described embodiments are only some but not all of the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by a person of ordinary skill in the art without creative work fall within the protection scope of the present application.

[0020] The following terms are used herein.

[0021] AI chip, a chip used for artificial intelligence computing tasks, including AI chips, NPUs, TPUs, FPGAs, etc.

[0022] AI data center, AIDataCenter, AIDC for short, refers to a data center designed for high-performance computing and large-scale data processing for artificial intelligence applications, used for large model training or inference tasks, and the main computing devices include AI chips.

[0023] High-bandwidth domain, HBD for short, is a network architecture used to meet the high-bandwidth requirements in large model training, mainly used to support tensor parallelism and other communication-intensive parallel dimensions.

[0024] Data center network, DCN for short, is a network architecture used to meet general communication needs, mainly supporting data parallelism, pipeline parallelism, and other communication-intensive parallel dimensions.

[0025] Large language model, LLM for short.

[0026] Tensor parallelism, TP for short, is a model parallelism technique.

[0027] First embodiment

[0028] The first embodiment of the present application relates to a server scheduling method based on a Rail-Optimized topology in a large model. The method is applied to a Rail-Optimized topology structure, as shown in the following figure: Figure 1 The method can include the following steps:

[0029] Step S101, obtaining a deployment scheme of servers in the topology structure of HBD; in the deployment scheme, the servers are arranged in a plurality of sub-lines, each sub-line corresponds to a group of servers; the last server in each sub-line is connected to the last server in the next sub-line, the first server in the next sub-line is connected to the first server in the sub-line after the next sub-line, and so on, forming an interlaced "zigzag" connection mode;

[0030] Step S102, obtaining a first constraint condition and a second constraint condition of the Rail-Optimized topology structure; the first constraint condition is used to ensure that the TP group does not span multiple backbone switches, and the second constraint condition is used to ensure that the TP group does not span the sub-line;

[0031] Step S103, determining a scheduling scheme according to the deployment scheme, the first constraint condition and the second constraint condition, and scheduling the servers according to the scheduling scheme.

[0032] The above steps are described in detail as follows.

[0033] For step S101, specifically, in some examples, referring to the following figure: Figure 2 A deployment scheme is shown, which is a network topology structure composed of 32 servers. The servers are numbered from 1 to 32, and they are connected together in a certain mode. Specifically, the servers are arranged in rows and columns, with 8 servers in each row and a total of 4 rows. The last server in each row is connected in order, i.e. each server is connected to the server on its right, and in addition to the last row, the last server in each row is also connected to the first server in the next sub-line, forming an interlaced "zigzag" connection mode. Specifically as follows:

[0034] Row 1: 1-5-9-13-17-21-25-29;

[0035] Row 2: 2-6-10-14-18-22-26-30;

[0036] Row 3: 3-7-11-15-19-23-27-31;

[0037] Line 4: 4-8-12-16-20-24-28-32;

[0038] Servers numbered 1, 5, 9, 13, 17, 21, 25, and 29 form one sub-line; servers numbered 2, 6, 10, 14, 18, 22, 26, and 30 form another sub-line; servers numbered 3, 7, 11, 15, 9, 23, 27, and 31 form another sub-line; and servers numbered 4, 8, 12, 16, 20, 24, 28, and 32 form yet another sub-line. Server 29 in row 1 is connected to server 2 in row 2; server 30 in row 2 is connected to server 3 in row 3; and server 31 in row 3 is connected to server 4 in row 4, forming a closed loop.

[0039] It should be noted that, in cases such as Figure 2 In the example shown, the sub-lines are specifically parallel sub-lines. However, in some other examples, the sub-lines may be non-parallel; or, the sub-lines themselves may be broken lines, which is not specifically limited in this embodiment.

[0040] Regarding step S102, specifically, in some cases, the coverage of a group of backbone switches is limited. Therefore, if a TP group spans multiple backbone switches, cross-track traffic may occur. This cross-track traffic can lead to network congestion and degraded communication performance. To avoid this situation, TP groups should be prevented from spanning multiple backbone switches as much as possible. For example, the first constraint may specifically be that the number of computing chips in the scheduling scheme is greater than or equal to the number of computing chips required for the task size of the large model.

[0041] Furthermore, communication between servers in different states can cause cross-track traffic. However, this problem is actually simplified after implementing the deployment scheme described above: TP groups should avoid crossing sublines. As long as the servers within a TP group are all located on the same subline and in the same state, DP communication between these TP groups will not generate cross-track traffic. Therefore, the constraint is used to ensure that TP groups do not cross multiple backbone switches. For example, the second constraint can be presented in the form of the number of sublines (i.e., the number of constraints). The subline is used to characterize the line segment into which the subline is divided by the backbone switch boundary, and in this document, l' represents the subline length, l represents the length of each of the sublines, and the length l of each of the sublines is also divided into sublines l' by the backbone switch boundary. Figure 3As shown, {1, 5} is a sub-line. It can be understood that the HBD-based topology can be divided into a set of sub-lines according to the number of sub-lines, and then the scheduling scheme of each sub-line is determined, and the scheduling schemes of each sub-line are combined to obtain the final scheduling scheme. It can be understood that the number of control constraints is actually equivalent to the number of sub-HBDs cut out, and then the scheduling scheme can be determined according to the sub-HBD. The smaller the number of sub-HBDs is, the larger the size of a single sub-HBD is, and the higher the utilization rate of the intelligent computing chip is. It can be understood that the time complexity of the scheduling scheme obtained according to the sub-HBD is O(nlog n).

[0042] For example, in combination with the first constraint condition and the second constraint condition, the scheduling scheme can be obtained on the basis of the deployment scheme. Figure 3 As shown, assuming that the number of sub-lines is 2, the number of servers m contained in the TP group is 1, and there is no server failure, the HBD-based topology can be divided into a set of sub-lines {1, 5}, {9, 13} and {17, 21, 25... 16, 12, 8, 4}, and the scheduling scheme of each sub-line is determined according to these sub-lines, and the final scheduling scheme can be obtained by combining the scheduling schemes of each sub-line {{1}, {5}}, {{9}, {13}}, {{17}, {21}...}.

[0043] For step S103, specifically, in some examples, the scheduling scheme can be obtained on the basis of the deployment scheme in combination with the first constraint condition and the second constraint condition. Since the scheduling scheme is based on the first constraint condition and the second constraint condition, the number of constraints can be maximized while meeting the task size, so that the scheduling efficiency of the server can be ensured.

[0044] It can be found that the embodiment of the application provides a server scheduling method based on a Rail-Optimized topology in a large model. The method is applied to a Rail-Optimized topology structure, and a deployment scheme of a server in a topology structure of an HBD is obtained. In the deployment scheme, the server is arranged in a plurality of sub-lines, and each sub-line corresponds to a group of servers. The last server in each sub-line is connected to the last server in the next sub-line, the first server in the next sub-line is connected to the first server in the sub-line after the next sub-line, and the connection mode is formed in a staggered zigzag shape. A first constraint condition and a second constraint condition of the Rail-Optimized topology structure are obtained. The first constraint condition is used to ensure that a TP group does not cross a plurality of backbone switches, and the second constraint condition is used to ensure that the TP group does not cross the sub-line. A scheduling scheme is determined according to the deployment scheme, the first constraint condition and the second constraint condition, and the server is scheduled according to the scheduling scheme. In the application, the deployment scheme based on the special zigzag connection mode is combined with the characteristics of the Rail-Optimized topology structure, and two constraint conditions are provided. The first constraint condition and the second constraint condition can essentially divide a large-scale HBD-based topology structure into a plurality of sub-HBDs, and the scheduling scheme can be determined according to the sub-HBD, and the time complexity is O(nlog n).

[0045] Second embodiment

[0046] The second embodiment of the application relates to a server scheduling method based on a Rail-Optimized topology in a large model. The second embodiment is an improvement on the basis of the first embodiment, and the specific improvement lies in that in the first embodiment, the deployment scheme can be set by manual operation, and in the second embodiment of the application, the deployment scheme can be automatically generated, and a specific implementation manner of obtaining a deployment scheme of a server in a topology structure of an HBD is provided.

[0047] Specifically, in some embodiments, the obtaining of the deployment scheme of the server in the topology structure of the HBD, that is, step S101 can further include the following steps, as shown in Figure 4

[0048] Step S1011, determining first number information of the server in the Rail-Optimized topology structure;

[0049] Step S1012, determining the number of the sub-lines according to the Rail-Optimized topology structure;

[0050] ​Step S1013, determining second numbering information according to the first numbering information and the number of the sub-lines; the second numbering information is used to represent the sequence number of the server in the topology of the HBD; it can be seen that there is a mapping relationship between the first numbering information and the second numbering information;

[0051] Step S1014, obtaining the deployment scheme of the server in the topology of the HBD according to the second numbering information; in this way, the server is arranged in each sub-line according to the second numbering information.

[0052] Specifically, in some examples, the type of the topology of the DCN can be a Rail-Optimized topology. The first numbering information is used to represent an ordered set of numbers corresponding to each server. In the Rail-Optimized topology, different servers have their own numbers, which can be represented by letters such as A, B, C, or numbers, or a combination of numbers and letters, and the present embodiment is not limited in this regard. For example: server 1, server 2, …, server n, n is a positive integer, representing the total number of servers in the Rail-Optimized topology.

[0053] Specifically, in some examples, the number of tracks and the number of intelligent calculation chips in a single server in the Rail-Optimized topology can be obtained, and the number of sub-lines can be determined according to the number of tracks and the number of intelligent calculation chips in a single server. Wherein, the number of tracks is used to identify the "track" or "layer" in the Rail-Optimized topology. The number of intelligent calculation chips in a single server refers to the number of intelligent calculation chips included in each server in the Rail-Optimized topology. For example, the number of sub-lines can be determined according to the number of tracks and the number of intelligent calculation chips in a single server by the following formula:

[0054] p=k / r

[0055] Wherein, k represents the number of tracks, r represents the number of intelligent calculation chips in a single server, p represents the number of sub-lines.

[0056] In some examples, the second numbering information is determined according to the first numbering information and the number of sub-lines. The topology of the HBD can be any ring topology or linear topology, which is not limited in the embodiment. In the ring topology, the servers are connected to form a closed ring, and each server is directly connected to two other servers to form a continuous path. In the linear topology, the servers or nodes are linearly arranged, and each node is usually connected to only one adjacent node. It can be seen that the mapping relationship between the numbering of the servers in the topology of the DCN and the numbering of the servers in the topology of the HBD is determined through the step, so that the position and connection relationship of the servers in the topology of the HBD can be determined according to the numbering of the servers in the topology of the DCN.

[0057] In some examples, the second numbering information represents a deployment scheme of the servers in the topology of the HBD, and the corresponding servers can be deployed in the topology of the HBD according to the second numbering information. The deployment scheme includes the position relationship and connection relationship of the servers carried in the second numbering information.

[0058] Optionally, in some embodiments, determining the deployment scheme of the servers in the topology of the HBD according to the second numbering information includes: determining a traffic mode of the topology of the HBD; the traffic mode is used to indicate that the last server in each sub-line is connected to the last server in the next sub-line, the first server in the next sub-line is connected to the first server in the next sub-line, and so on to form an interlaced zigzag connection mode; and determining the deployment scheme of the servers in the topology of the HBD according to the zigzag connection mode and the second numbering information.

[0059] Optionally, in some embodiments, the determining of the second numbering information according to the first numbering information and the number of sub-lines can further include the following steps:

[0060] determining a first ordered set of servers deployed in the Rail-Optimized topology according to the total number of servers in the Rail-Optimized topology and the number of sub-lines;

[0061] determining the length of each sub-line according to the first ordered set and the number of sub-lines; the length of each sub-line is used to represent the number of servers that should be included in each sub-line;

[0062] determining the second numbering information according to the length of each sub-line.

[0063] Specifically, in some examples, the first ordered set can be represented as S where n is the total number of servers in the Rail-Optimized topology. S In some examples, the number of the server is determined by the position of the server in the Rail-Optimized topology.

[0064] Specifically, in some examples, the determination of the length of each sub-line according to the first ordered set and the number of sub-lines can be achieved by the following formula:

[0065]

[0066] where l represents the length of each sub-line, the S represents the first ordered set, the p represents the number of sub-lines.

[0067] Optionally, in some embodiments, the determination of the second number information according to the length of the sub-line can further include the following steps:

[0068] determining a data range according to the number of sub-lines;

[0069] determining the index of each sub-line according to the data range;

[0070] determining a position index located in a target sub-line according to the index of the sub-line and the length of the sub-line; the target sub-line is determined according to the index of the sub-line;

[0071] determining a second ordered set for representing the servers deployed in the topology of the HBD according to the index of the sub-line, the position index and the number of sub-lines;

[0072] determining the second number information according to the second ordered set.

[0073] Specifically, in some examples, if the number of sub-lines is p , the data range can be from 0 to p-1 .

[0074] Specifically, in some examples, the index of each sub-line can be determined according to the traversal of the data range from 0 to p-1 . It can be understood that the index i of each sub-line corresponds to a sub-line. That is, the index i of the sub-line can be used to determine which sub-line is currently being processed, so as to facilitate the allocation of servers to different sub-lines. For example, p=4The index i of the sub-line can be 0, 1, 2, 3, and different index values represent different sub-lines.

[0075] Specifically, in some examples, j can be used to represent a position index in the target sub-line, i.e., the sub-line corresponding to the index i of the sub-line. That is, the position index j j is used to determine the position of the server in the sub-line corresponding to the index i of the sub-line. In some examples, according to the parity of the index i of the sub-line, the traversal range of the position index j in the target sub-line can be different.

[0076] Optionally, in some embodiments, the step of determining the position index in the target sub-line according to the index of the sub-line and the length of the sub-line can further include the following steps: determining the parity of the index of the sub-line; and determining the position index in the target sub-line according to the parity and the length of the sub-line.

[0077] Optionally, in some embodiments, the step of determining the position index in the target sub-line according to the parity and the length of the sub-line can further include the following steps: if the index of the sub-line is even, the position index is sequentially increased based on the length of the sub-line; and if the index of the sub-line is odd, the position index is sequentially decreased based on the length of the sub-line.

[0078] Specifically, if the index i of the sub-line is even, the position index j can be sequentially increased based on the length l of the target sub-line, which means that the number of the server is sequentially increased, such as starting from 0; if the index i of the sub-line is odd, the position index j can be sequentially decreased based on the length l of the target sub-line, which means that the number of the server is sequentially decreased, such as starting from l-1. For example, if the index i of the sub-line is even, the range of the position index j is from 0 to l-1; if the index i of the sub-line is odd, the range of the position index j is from l-1 to 0. It can be seen that the position index j is used to traverse the server in each sub-line to determine the new position of each server in the deployment scheme of the server in the topology of the HBD, and the new position corresponds to a new serial number.

[0079] Optionally, in some embodiments, the step of determining the second ordered set of servers deployed in the topology of the HBD according to the index of the sub-line, the position index, and the number of sub-lines can be specifically implemented by the following formula:

[0080] i + j·p

[0081] wherein, the i represents the index of the sub-line, the j represents the position index, and the p represents the number of the sub-lines.

[0082] In particular, in some examples, an empty ordered set S deploy may be initialized first, which is used to store the second numbering information. In combination with the context, the second numbering information is obtained by converting the first numbering information of the servers in the topology of the DCN based on a preset rule. Specifically, the first numbering information of the servers in the topology of the DCN can be converted based on the index i of each sub-line, the position index j, and the number p of the sub-lines, to obtain a new serial number of each server in the topology of the HBD, i.e., the second ordered set S deploy .

[0083] For example, each i+j·p obtained can be added to the above-mentioned initialized empty ordered set, to obtain the second ordered set S deploy . The second ordered set S deploy is an ordered set of servers in the topology of the HBD, which is composed of the serial numbers of the servers in the topology of the HBD. As mentioned above, the index i of the sub-line is used to determine which sub-line is currently being processed; the position index j is used to determine the position of the server in the sub-line corresponding to the index i of the sub-line; and the p represents the number of the sub-lines.

[0084] As shown in FIG. 1 Figure 2 , assuming that the number of the sub-lines is p, there are p sub-lines L1, L2,..., L p , then the i-th sub-line is composed of servers whose serial numbers corresponding to the position index are divided by the number p of the sub-lines with a remainder of i-1, i.e.,

[0085] Li={j|(j-1)%p==i-1}

[0086] The L i represents the sub-line corresponding to the index i of the sub-line.

[0087] Further, a series of the p sub-lines are connected in a head-to-tail manner to form a new arrangement of deploying servers in the topology of the HBD. Figure 2 In the second ordered set S deploy , the following is used to form the second ordered set S

[0088] S deploy ={1,5,9,13,17,21,25,29,

[0089] 30,26,22,18,14,10,6,2,

[0090] 3, 7, 11, 15, 19, 23, 27, 31,

[0091] 32, 28, 24, 20, 16, 12, 8, 4}

[0092] Optionally, in some embodiments, the determining the second numbering information according to the second ordered set can further include the following steps: determining an edge set representing the connection relationship of the servers deployed in the topology of the HBD according to the second ordered set; and determining the second numbering information according to the second ordered set and the edge set.

[0093] Specifically, the second numbering information can be represented as G deploy , the second ordered set can be represented as S deploy , and the edge set can be represented as E deploy , then the second numbering information G deploy = <S deploy , E depoly >.

[0094] Optionally, in some embodiments, the determining the edge set representing the connection relationship of the servers deployed in the topology of the HBD according to the second ordered set can further include the following steps: obtaining the number of servers directly connected to the server in a single direction in the topology of the HBD; determining a target server according to the second ordered set and the number of servers directly connected to the server in a single direction in the topology of the HBD; and determining the edge set representing the connection relationship of the servers deployed in the topology of the HBD according to the second ordered set and the target server.

[0095] Specifically, in some examples, the number of servers directly connected to the server in a single direction in the topology of the HBD can be represented as φ. For example, the number of servers directly connected to the server S deploy [i] in a single direction in the topology of the HBD φ is 2, then the server S deploy [i] can be directly connected to S deploy [i-2], S deploy [i-1], S deploy [i+1], and S deploy [i+2]. As shown in FIG. 9, the server 9 can be directly connected to the servers 1, 5, 13, and 17. Figure 2

[0096] Specifically, in some examples, the second ordered set S deploy can be traversed according to the second ordered set S deployeach server in the second ordered set S and the number of servers φ that the server can directly connect in a single direction in the topology of HBD, find all target servers satisfying the following formula

[0097] j-i≤φ

[0098] In particular, in some examples, the second ordered set and the target server can constitute For each pair of servers satisfying the condition An edge can be created in E deploy to indicate that server can directly connect to server E deploy represents the edge set.

[0099] It should be noted that the edge set E deploy also needs to satisfy the following conditions:

[0100] 1≤i≤j≤|S deploy |

[0101] Through the above formula, it can be ensured that the scheme only considers the case that the index i of the sub-line is less than or equal to the position index j, so that the same connection relationship is avoided from being repeatedly created. It can be understood that if is connected to there is no need to make connect to

[0102] Optionally, in some embodiments, the edge set used to represent the connection relationship of the servers deployed in the topology of HBD is determined according to the second ordered set and the target server, and is specifically realized through the following formula:

[0103]

[0104] Wherein, the i represents the index of the sub-line, the j represents the position index, the S deploy represents the second ordered set, the represents the server in the second ordered set S deploy , the represents the target server, the φ represents the number of servers that the server can directly connect in a single direction in the topology of HBD, and the E deploy represents the edge set.

[0105] It can be seen that the edge set E deploy includes all servers satisfying |1≤i≤j≤|S deployand j-i≤φ To this end, the second ordered set S deploy and the establishment of a connection relationship between the target server.

[0106] It can be found that, compared with the related art, in the scheme provided by the embodiments of the application, the collaborative design of the HBD-based topology structure and the Rail-Optimized topology structure proposes a server deployment method based on a large model; by determining the first numbering information of the servers in the Rail-Optimized topology structure, and determining the number of sub-lines according to the Rail-Optimized topology structure, then determining the second numbering information according to the first numbering information and the number of sub-lines, to determine the deployment scheme of the servers in the topology structure of the HBD according to the second numbering information. Wherein, the second numbering information is used to represent the serial number of the servers in the topology structure of the HBD; in the deployment scheme, the servers are arranged in each sub-line according to the second numbering information, the last server in each sub-line is connected to the last server in the next sub-line, the first server in the next sub-line is connected to the first server in the sub-line after the next sub-line, and so on, forming an interlaced "zigzag" connection mode. It can be seen that the application can simultaneously perceive the topology structure of the HBD and the Rail-Optimized topology structure; since the number of sub-lines is determined according to the Rail-Optimized topology structure, it is beneficial to obtain a deployment scheme of the servers in the topology structure of the HBD according to the characteristics of the Rail-Optimized topology structure. Since the deployment scheme has strong adaptability, it is beneficial to optimize the use of network resources, improve the performance of the large model-based training task, and facilitate subsequent server scheduling.

[0107] Third embodiment

[0108] The third embodiment of the application relates to a server scheduling method based on a Rail-Optimized topology in a large model. The third embodiment is an improvement based on the first embodiment, and the specific improvement is that in the third embodiment of the application, a specific implementation manner of determining a scheduling scheme according to a deployment scheme, the first constraint condition and the second constraint condition is provided.

[0109] Specifically, in some embodiments, determining a scheduling scheme according to a deployment scheme, the first constraint condition and the second constraint condition, i.e., step S103 can further include the following steps, as shown in Figure 5

[0110] ​Step S1031, determining a lower limit value, and determining an upper limit value according to the total number of servers in the Rail-Optimized topology, the number of servers under the group of backbone switches, and the number of sub-lines; the upper limit value and the lower limit value are used to represent a search range;

[0111] Step S1032, determining an intermediate value according to the upper limit value and the lower limit value;

[0112] Step S1033, determining the scheduling scheme according to the intermediate value, the first constraint condition, and the second constraint condition.

[0113] For step S1031, specifically, in some examples, the upper limit value can be represented by high, and the lower limit value can be represented by low. In some examples, the upper limit value and the lower limit value can be initialized. For example, the lower limit value can be initialized to 0, and the upper limit value can be initialized according to the following formula:

[0114]

[0115] Wherein, n represents the total number of servers, d represents the number of servers under the group of backbone switches, and p represents the number of sub-lines.

[0116] Optionally, in some embodiments, the total number of servers n is the size of the ordered set of servers S, that is, n = |S|. The number of sub-lines can be determined according to the number of rails and the number of intelligent chips in a single server, which can be achieved by the following formula:

[0117] p = k / r

[0118] For step S1032, specifically, in some examples, an intermediate value can be determined according to the upper limit value and the lower limit value. When the lower limit value is less than or equal to the upper limit value, the calculation formula of the intermediate value mid can refer to the following:

[0119]

[0120] Step S1033, specifically, in some examples, before determining the scheduling scheme according to the intermediate value, the first constraint condition, and the second constraint condition, the scheduling scheme placement_scheme can be initialized as an empty set, and the empty set is used to store the final scheduling scheme placement_scheme.

[0121] It should be noted that the present embodiment can also be an improvement based on the second embodiment.

[0122] It can be found that, compared with the related art, in the embodiment, a specific implementation manner of determining a scheduling scheme according to a deployment scheme, the first constraint condition and the second constraint condition is provided, which can find a scheduling scheme satisfying the second constraint condition that minimizes cross-rail traffic while meeting the requirement of the task scale represented by the first constraint condition, and the efficiency is higher.

[0123] Fourth embodiment

[0124] The fourth embodiment of the present application relates to a server scheduling method based on a Rail-Optimized topology in a large model. The fourth embodiment is an improvement based on the third embodiment, and the specific improvement is that in the fourth embodiment of the present application, a specific implementation manner of determining the scheduling scheme according to the intermediate value, the first constraint condition and the second constraint condition is provided.

[0125] Specifically, in some embodiments, the determining the scheduling scheme according to the intermediate value, the first constraint condition and the second constraint condition, i.e., step S1033 can further include the following steps:

[0126] Step S10331, according to the second constraint condition, determining the number of sub-lines that the sub-line is divided into by the backbone switch boundary;

[0127] Step S10332, according to the number of sub-lines, performing the following operations on each sub-line: according to the length of the sub-line, obtaining the server set, edge set and failed server set corresponding to each sub-line in the deployment scheme; according to the server set, edge set and failed server set corresponding to each sub-line, obtaining a sub-line scheduling scheme; each sub-line scheduling scheme is a scheduling scheme for each sub-line;

[0128] Step S10333, according to the scheduling scheme of each sub-line, determining an initial scheduling scheme;

[0129] Step S10334, according to the intermediate value, the initial scheduling scheme and the first constraint condition, determining a scheduling scheme.

[0130] Specifically, in some examples, the initialization of the scheduling scheme is an empty set placement_scheme = {}. Then, each sub-line corresponding to the number of sub-lines can be processed in a loop. Specifically, for each sub-line i, from 1 to n_constraints: according to the deployment scheme G deploy = <S deploy ,E depoly > and the length of the sub-line, the second ordered set S deployA server set S_subline corresponding to the sub-line is popped out, i.e., the server set S_subline corresponding to the sub-line = S deploy .pop(l'). Wherein, the l' represents the sub-line length. Exemplarily, the sub-line length l' can be obtained by the following formula:

[0131]

[0132] Wherein, the l' represents the sub-line length, the d represents the number of servers under the group of backbone switches, and the p represents the number of sub-lines.

[0133] Further, the edge set E_subline and the failed server set F_subline can be determined according to the server set S_subline corresponding to the sub-line. Wherein, the edge set E_subline contains the connection relationship between all servers in the server set S_subline, i.e., all node pairs (u, v) in the server set S_subline and E deploy The failed server set F_subline is the intersection of the failed server set F and the server set S_subline corresponding to the sub-line. Then, the sub-line scheduling scheme can be obtained according to the server set S_subline corresponding to the sub-line, the edge set E_subline and the failed server set F_subline. The sub-line scheduling scheme is used to represent the scheduling scheme of each sub-line.

[0134] Further, the second ordered set S deploy The remaining sub-lines are popped out, and the remaining edge set E_res and the remaining failed server set F_res are constructed according to the above idea. Then, the remaining sub-line scheduling scheme can be obtained according to the server set corresponding to the remaining sub-line, the remaining edge set E_res and the remaining failed server set F_res.

[0135] Further, the initial scheduling scheme can be determined by merging the scheduling schemes of each sub-line. Then, the initial scheduling scheme is adjusted in combination with the intermediate value and the first constraint condition to obtain the final scheduling scheme.

[0136] Optionally, in some embodiments, the obtaining of the sub-line scheduling scheme according to the server set, the edge set and the failed server set corresponding to each sub-line, i.e., step S10332 can further include the following steps:

[0137] Step S103321, obtaining the number of servers contained in each TP group;

[0138] In step S103322, the number of servers included in each TP group is combined to obtain a sub-line scheduling scheme according to the server set, edge set and failed server set corresponding to each sub-line.

[0139] Specifically, in some examples, the number of servers included in the TP group can be represented by m. Further, the number of servers included in each TP group m can be obtained according to the server set S_subline, edge set E_subline and failed server set F_subline corresponding to the sub-line, so as to obtain a sub-line scheduling scheme, and the sub-line scheduling scheme is combined into the scheduling scheme placement_scheme. Similarly, the remaining sub-line scheduling schemes can be combined into the scheduling scheme placement_scheme. At this point, the final scheduling scheme placement_scheme can be returned, which can include the optimal scheduling scheme of all servers.

[0140] As can be seen, in this embodiment, by processing the sub-line and the remaining part of each sub-line in the deployment scheme in stages, the optimal scheduling scheme for the servers can be found while meeting the constraint conditions, thereby helping to improve the scheduling efficiency and reliability of the servers.

[0141] Optionally, in some embodiments, the obtaining of the number of servers included in each TP group can include the following steps:

[0142] Obtaining the number of intelligent algorithm chips included in a TP group and the number of intelligent algorithm chips included in each server;

[0143] Determining the number of servers included in each TP group according to the number of intelligent algorithm chips included in the TP group and the number of intelligent algorithm chips included in each server.

[0144] Specifically, in some examples, the determination of the size of each TP group according to the number of intelligent algorithm chips included in the TP group and the number of intelligent algorithm chips included in each server can be realized by the following formula:

[0145]

[0146] Wherein, m represents the size of the TP group, t represents the number of intelligent algorithm chips included in the TP group, and r represents the number of intelligent algorithm chips included in each server.

[0147] It should be noted that the embodiment can also be improved on the basis of the first embodiment and / or the second embodiment.

[0148] It can be found that in the embodiment, a specific implementation of the scheduling scheme is determined according to the intermediate value, the first constraint condition and the second constraint condition. By iteratively processing each sub-line, the scheduling scheme is gradually constructed. In this way, the scheduling efficiency of the server can be optimized while meeting the first constraint condition and the first constraint condition.

[0149] Fifth embodiment

[0150] The fifth embodiment of the application relates to a server scheduling method based on a Rail-Optimized topology in a large model. The fifth embodiment is an improvement on the basis of the fourth embodiment, and the specific improvement is that the fifth embodiment provides a specific implementation of obtaining a sub-line scheduling scheme in combination with the number of servers included in each TP group, according to the server set, edge set and failed server set corresponding to each sub-line in each sub-line.

[0151] Specifically, in some embodiments, the combination of the number of servers included in each TP group, according to the server set, edge set and failed server set corresponding to each sub-line, obtains each sub-line scheduling scheme, i.e., step S103322 can further include the following steps:

[0152] Step S1033221, determining a healthy server set according to the server set and the failed server set corresponding to each sub-line;

[0153] Step S1033222, determining a healthy edge set for representing the connection relationship between each healthy server in the healthy server set according to the healthy server set and the edge set corresponding to each sub-line;

[0154] Step S1033223, determining a healthy server subgraph according to the healthy server set and the healthy edge set;

[0155] Step S1033224, determining a connected component according to the healthy server subgraph; the connected component is used to represent an independent part obtained by dividing the network connection based on the HBD topology structure;

[0156] Step S1033225, determining each sub-line scheduling scheme according to the connected component and the number of servers included in each TP group.

[0157] In particular, all faulty server sets can be removed from each of the sub-line respectively corresponding server set, i.e. the healthy server set H can be obtained. Further, a healthy edge set HE between the healthy servers can be constructed. In an example, the healthy edge set HE can be initialized as all node pairs (u, v) in the healthy server set H. Thus far, the healthy server subgraph healthyHBD can be composed of the healthy server set H and the edge set HE.

[0158] In particular, in some examples, the determining the connected component according to the healthy server subgraph can include, for each unvisited healthy server in the healthy server set, performing the following operations: starting from a current healthy server, searching for healthy servers connected to the current healthy server in the healthy server subgraph to obtain the connected component.

[0159] Optionally, in some embodiments, the determining the connected component according to the depth-first search algorithm and the healthy server subgraph can include, for each unvisited node s, performing a depth-first search algorithm to identify a connected component containing the node s, and traversing all healthy servers connected to the node s by the depth-first search algorithm.

[0160] Optionally, in some embodiments, the determining the connected component according to the depth-first search algorithm and the healthy server subgraph can include the following steps: determining all neighbor servers of a target server in the healthy server subgraph according to the depth-first search algorithm; and determining the connected component according to the neighbor servers.

[0161] In particular, in some examples, a stack stack can be initialized to store nodes to be visited. The stack stack can initially contain only the starting node node in the healthy server set H. Additionally, an empty list component can be initialized to store all nodes in the found connected component. Further, the depth-first search algorithm can be executed, which enters a loop that continues as long as the stack stack is not empty. In each loop, a node current can be popped from the stack stack, which is the node to be processed next. Further, it can be checked whether the popped node current has been visited. This can be done by checking whether the node current is in the visited set. If the node current has not been visited, the following operations can be performed: the node current can be added to the visited set, indicating that it has been visited; the node current can be added to the component list, indicating that it is part of the connected component. Further, all neighbor nodes of the node current in the healthy server subgraph healthyHBD can be iterated over, and for each neighbor node, if it has not been visited, it can be pushed into the stack stack to be visited in a subsequent loop. When the stack stack is empty, it means that all reachable nodes have been visited and added to the connected component, and the depth-first search algorithm can end the loop. Finally, the depth-first search algorithm can return the component list, which can contain all nodes reachable from the starting node node, i.e., a complete connected component.

[0162] Optionally, in some embodiments, determining, according to the connected components and the number of servers contained in each TP group, a sub-line scheduling scheme for characterizing a scheduling scheme of each sub-line can include: detecting a size relationship of each of the connected components and the number of servers contained in each TP group; and determining the sub-line scheduling scheme according to the size relationship.

[0163] Optionally, in some embodiments, the determining the scheduling scheme according to the size relationship can further include the following steps:

[0164] If the size of the connected component is greater than or equal to the number of servers contained in the TP group, an equal number of servers to the number of servers contained in the TP group is taken out from the connected component, and the equal number of servers taken out from the connected component is taken as a TP group, until all servers in the connected component are allocated into TP groups; and a sub-line scheduling scheme is determined according to the TP groups obtained after the connected component is allocated.

[0165] Specifically, in some examples, each connected component in the connected component list component_list can be traversed. For each connected component, it is checked whether the size of the connected component is greater than or equal to the number of servers contained in the TP group. If the size of the connected component is greater than or equal to the number of servers contained in the TP group, m servers are taken out from the connected component, and the m servers taken out from the connected component are added to the scheduling scheme placement_scheme as a TP group. The above process is repeated until all servers in the connected component are allocated into TP groups. Then, the generated scheduling scheme placement_scheme can be returned.

[0166] The embodiment can also be an improvement based on any one or more of the first to third embodiments.

[0167] It can be found that, compared with the related art, in the embodiment, by traversing each healthy server in the healthy server set, the following operation is performed on each unvisited healthy server in the healthy server set: starting from a current healthy server, searching for healthy servers connected to the current healthy server in the healthy server subgraph to obtain the connected component, thereby providing a specific implementation manner of determining a connected component according to the healthy server subgraph.

[0168] Sixth Embodiment

[0169] The sixth embodiment of the present application relates to a server scheduling method based on a Rail-Optimized topology in a large model. The fifth embodiment is an improvement based on the fifth embodiment, and the specific improvement is that in the seventh embodiment of the present application, a specific implementation manner of determining a scheduling scheme according to the intermediate value, the initial scheduling scheme, and the first constraint condition is provided.

[0170] Specifically, in some embodiments, the determining a scheduling scheme according to the intermediate value, the initial scheduling scheme, and the first constraint condition, i.e., step S10334 can further include the following steps:

[0171] Step S103341, determining the size of the initial scheduling scheme, the number of servers contained in each TP group, and the number of intelligent computing chips in each server;

[0172] Step S103342, updating the intermediate value according to the product of the size of the initial scheduling scheme, the number of servers contained in each TP group, and the number of intelligent computing chips in each server, and the first constraint condition, to obtain a new upper limit value and a new lower limit value;

[0173] Step S103343, determining the scheduling scheme according to the new upper limit value and the new lower limit value;

[0174] For step S103341, specifically, in some examples, the size of the initial scheduling scheme |placement_scheme|, the number of servers m contained in each TP group, and the number of intelligent computing chips r in each server can be determined.

[0175] For step S103342, specifically, in some examples, the product of the size of the initial scheduling scheme, the number of servers contained in each TP group, and the number of intelligent computing chips in each server is |placement_scheme|·m·r. The intermediate value can be updated according to the product and the first constraint condition to obtain a new upper limit value and a new lower limit value.

[0176] Optionally, in some embodiments, the first constraint condition is specifically that the number of intelligent computing chips in the scheduling scheme is greater than or equal to the number of intelligent computing chips required by the task size of the large model. Assuming that the number of intelligent computing chips required by the task size is s, the size of the product and the number of intelligent computing chips s can be compared, and the intermediate value is updated according to the comparison result to obtain a new upper limit value and a new lower limit value.

[0177] Specifically, in some examples, if the product result |placement_scheme|·m·r≥s, the lower limit value can be updated to the intermediate value plus 1, i.e., low=mid+1. Otherwise, the upper limit value can be updated to the intermediate value minus 1, i.e., high=mid-1. And a new scheduling scheme is determined according to the new upper limit value, new lower limit value and the second constraint condition, and the cycle is continued until the new scheduling scheme satisfies |placement_scheme|·m·r≥s at any time, and thus the final scheduling scheme is obtained. Exemplarily, if the cycle ends and a scheduling scheme satisfying the above condition is still not found, the returned result can be empty (None). It can be seen that, in this step, by adjusting the intermediate value mid, the search range can be gradually narrowed until a scheduling scheme satisfying the condition is found, or a result that there is no such scheduling scheme is obtained.

[0178] The embodiment can also be an improvement based on any one or more of the first to fourth embodiments.

[0179] It can be found that, compared with the related art, in the embodiment, a specific implementation manner of determining a scheduling scheme according to the intermediate value, the initial scheduling scheme and the first constraint condition is provided, which can gradually narrow the search range while satisfying the first constraint condition until a scheduling scheme satisfying the condition is found.

[0180] The step division of the above various methods is only for the purpose of clear description, and in implementation, one step can be combined or some steps can be split and decomposed into multiple steps, as long as the same logical relationship is included, and all are within the protection scope of the present application; adding irrelevant modifications or introducing irrelevant designs in the algorithm or flow, but not changing the core design of the algorithm and flow, are within the protection scope of the present application.

[0181] It can be understood that, under the background of increasing upgrading of intelligent algorithm chip computing power and continuous expansion of large model scale, communication gradually becomes one of the bottlenecks of large model training tasks, therefore, fully improving the communication performance under the existing network resources through software and hardware collaborative design has important significance for the development of artificial intelligence industry.

[0182] The present application is the first server scheduling method capable of simultaneously sensing the HBD topology and the Rail-Optimized topology structure of a large model task in the industry, and provides related algorithm implementation. Compared with the related art, the technical solution provided by the present application has at least the following beneficial effects:

[0183] Optimizing resource utilization: By considering the Rail-Optimized topology of both HBD and DCN, hardware resources can be utilized more efficiently, avoiding waste. The HBD topology helps identify uneven distribution of hardware resources, while the Rail-Optimized topology of DCN provides an optimized solution for network connections, together achieving efficient resource utilization.

[0184] Improving system reliability: By considering the Rail-Optimized topology of both HBD and DCN, server scheduling can be optimized, improving system reliability.

[0185] Reducing operational costs: By optimizing resource utilization and improving system reliability, the application can help enterprises reduce operational costs. More efficient resource utilization can reduce hardware procurement and maintenance costs, while higher system reliability can reduce troubleshooting and system downtime, further reducing related costs.

[0186] Enhancing scalability: The application can help enterprises more easily expand their server infrastructure to meet growing demand. By considering the Rail-Optimized topology of both HBD and DCN, the technology can provide more flexible scheduling options to adapt to different workloads and traffic patterns.

[0187] Improving communication performance: By optimizing resource utilization and network connections, the application can improve server communication performance. More efficient resource utilization can reduce resource contention and bottleneck problems, while network connection optimization can reduce latency and improve communication throughput.

[0188] In summary, the application has high technical advancement and great protection value.

[0189] In addition, some embodiments of the application also provide an electronic device. The electronic device can be various forms of digital computers, such as laptops, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, etc. The electronic device can also be various forms of mobile devices, such as personal digital assistants, cellular phones, smart phones, wearable devices, and other similar computing devices.

[0190] The electronic device includes one or more processors and a memory storing computer program instructions that, when executed, cause the processor to perform the steps of the method provided by any one or more embodiments described above. Figure 6 An exemplary structure diagram of the electronic device is disclosed. As shown in Figure 6As shown, the electronic device includes one or more processors 1101, a memory 1102, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. The various components are interconnected by different buses, and can be mounted on a common main board or otherwise installed as appropriate. The processor can process instructions executed within the electronic device, including instructions stored in the memory or on the memory to display graphical information of a GUI on an external input / output device such as a display device coupled to the interface. In some other embodiments, a plurality of processors and / or buses can be used with a plurality of memories and a plurality of memory, if necessary. Also, a plurality of electronic devices can be connected, each device providing part of the necessary operations (for example, as a server array, a set of blade servers, or a multi-processor system). Among them, the components shown herein, their connections and relationships, and their functions are only examples, and are not intended to limit the implementation of the present application described and / or claimed herein.

[0191] The electronic device can also include an input device 1103 and an output device 1104. The processor 1101, the memory 1102, the input device 1103, and the output device 1104 can be connected by a bus or other means, Figure 6 for example, by a bus connection.

[0192] The input device 1103 can receive input digital or character information, and generate key signal input related to user settings and function control of the electronic device, such as a touch screen, a keypad, a mouse, a trackpad, a touchpad, a pointing stick, one or more mouse buttons, a trackball, a joystick, etc. The output device 1104 can include a display device, an auxiliary lighting device (e.g., an LED), and a tactile feedback device (e.g., a vibration motor), etc. The display device can include, but is not limited to, a liquid crystal display (LCD), a light-emitting diode (LED) display, and a plasma display. In some embodiments, the display device can be a touch screen.

[0193] To provide for interaction with a user, the electronic device can be a computer. The computer has a display device (e.g., a cathode ray tube (CRT) or liquid crystal display (LCD) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.

[0194] In the embodiments of the present application, the computer program / instruction is stored on the computer readable medium, and the computer program / instruction is executed by the processor to implement the steps of the method provided by any one or more of the embodiments. The computer readable medium can be included in the electronic device described in the above embodiments, or can exist separately and not be assembled into the device. The computer readable medium carries one or more computer readable instructions.

[0195] The memory 1102 can be used as a non-transitory computer readable medium to store non-transitory software programs, non-transitory computer executable programs and modules. The processor 1101 executes various functions and data processing of the server by running the non-transitory software programs, instructions and modules stored in the memory 1102, so as to implement the program instructions / modules corresponding to the method provided by any one or more of the embodiments in the present application.

[0196] The memory 1102 can include a program storage area and a data storage area, wherein the program storage area can store an operating system, at least one application required by a function; and the data storage area can store data created according to the use of the electronic device, etc. In addition, the memory 1102 can include a high-speed random access memory, and can also include a non-transitory memory, such as at least one magnetic disk storage device, a flash memory device, or other non-transitory solid-state memory device. In some embodiments, the memory 1102 can optionally include a memory disposed remotely with respect to the processor 1101, and these remote memories can be connected to the electronic device through a network. Examples of the above network include but are not limited to the Internet, an intranet, a local area network, a mobile communication network, and a combination thereof.

[0197] It should be noted that the computer-readable medium described herein can be a computer-readable signal medium or a computer-readable storage medium or a combination thereof. The computer-readable medium can be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a computer-readable storage medium can include, but are not limited to, an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present context, a computer-readable medium can be any tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.

[0198] Computer-readable media includes permanent and non-permanent, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD), or other optical storage, magnetic cassettes, magnetic tape disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information accessible to a computing device.

[0199] Computer program code for carrying out operations of the present application can be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider).

[0200] In the above-described embodiments, all or part of the embodiments can be implemented by software, hardware, firmware, or any combination thereof. For example, application specific integrated circuits (ASICs), general purpose computers or any other similar devices can be used. In some embodiments, software programs of the present application can be executed by a processor to implement the above steps or functions. Also, the software programs of the present application (including related data structures) can be stored in a computer-readable recording medium such as a RAM memory, a magnetic or optical drive or diskette, and the like. In addition, some steps or functions of the present application can be implemented by hardware, for example, as a circuit cooperating with a processor to perform the respective steps or functions.

[0201] The computer program product provided by the embodiments of the present application includes one or more computer programs / instructions, which, when executed by a processor, generate all or part of the processes or functions described in the embodiments of the present application. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions can be transmitted from one website, computer, server or data center to another website, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. integrated with one or more available media. The available medium can be a magnetic medium (for example, floppy disk, hard disk, magnetic tape), an optical medium (for example, DVD), or a semiconductor medium (for example, solid state disk (SSD)), etc.

[0202] The flowcharts or block diagrams in the drawings illustrate the architecture, functionality, and operation of possible implementations of devices, methods, and computer program products according to various embodiments of the present application. In this regard, each block in the flowcharts or block diagrams can represent a module, a segment, or a portion of code, which comprises one or more executable instructions for implementing the specified logical functions. It should also be noted that in some alternative implementations, the functions noted in the blocks can occur in a different order than that noted in the figures. For example, two blocks noted in succession can actually be executed substantially concurrently, or at times in reverse order, depending on the functionality involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented by dedicated-purpose hardware-based systems that perform specified functions or operations, or can be implemented by a combination of dedicated-purpose hardware and computer instructions.

[0203] The scope of the application is defined by the appended claims rather than by the description set forth herein, and therefore the specification is not intended to limit the claims in any way. No admission is made that any of the related art references are prior art. It will be apparent that modifications and / or improvements can be made to the embodiments described herein without departing from the scope of the application. Accordingly, while the application is presented in terms of embodiments, it should be appreciated that the application is not limited to these embodiments. The application is limited only by the claims that follow, the full scope of which is deemed to encompass any changes which come within the meaning and range of equivalency of the claims. None of the features or limitations described herein are intended to be limiting, but are intended to be examples of implementing the claims. Thus, the scope of the application should be determined by the appended claims and equivalents thereof, rather than by the description set forth herein.

[0204] The above description is only specific embodiments of the present application, but the protection scope of the present application is not limited thereto, and any person skilled in the art can easily make changes or replacements within the technical scope disclosed in the present application, which should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be determined by the protection scope of the claims, and the above embodiments should be regarded as exemplary and non-limiting.

Claims

1. A server scheduling method based on a Rail-Optimized topology in a large model, characterized by, The method includes: Obtain the server deployment scheme in the HBD topology; in the deployment scheme, the servers are arranged in several sub-lines, and each sub-line corresponds to a group of servers; the last server in each sub-line is connected to the last server in the next sub-line, and the first server in the next sub-line is connected to the first server in the sub-line after that, and so on, forming an interlaced "zigzag" connection pattern. Obtain the first and second constraints of the Rail-Optimized topology; the first constraint is used to ensure that the TP group does not span multiple backbone switches, and the second constraint is used to ensure that the TP group does not span the subline; Based on the deployment plan, the first constraint, and the second constraint, a scheduling plan is determined to schedule the server according to the scheduling plan.

2. The method of claim 1, wherein, The server deployment scheme in the topology for obtaining HBD includes: Determine the first number information of the server in the Rail-Optimized topology; The number of sublines is determined based on the Rail-Optimized topology. Based on the first numbering information and the number of sub-lines, the second numbering information is determined; the second numbering information is used to represent the sequence number of the server in the HBD topology. Based on the second number information, obtain the server deployment scheme in the topology of the HBD.

3. The method of claim 1, wherein, The step of determining the scheduling scheme based on the deployment scheme, the first constraint, and the second constraint includes: A lower limit value is determined, and an upper limit value is determined based on the total number of servers in the Rail-Optimized topology, the number of servers under a set of backbone switches, and the number of sublines; the upper limit value and the lower limit value are used to characterize the search range; The intermediate value is determined based on the upper and lower limits. The scheduling scheme is determined based on the intermediate value, the first constraint, and the second constraint.

4. The method of claim 3, wherein, The upper limit is determined based on the total number of servers in the Rail-Optimized topology, the number of servers under a group of backbone switches, and the number of sublines. This is specifically achieved through the following formula: ; Wherein, the represents the total number of servers in the Rail-Optimized topology, and the represents the number of servers under the group of backbone switches, and the represents the number of sub-lines.

5. The method of claim 3, wherein, Determining the scheduling scheme based on the intermediate value, the first constraint, and the second constraint includes: Based on the second constraint, determine the number of sub-lines that the sub-line is divided into by the backbone switch boundary; Based on the number of sublines, perform the following operations on each subline: based on the length of the subline, obtain the server set, edge set, and fault server set corresponding to each subline in the deployment scheme; based on the server set, edge set, and fault server set corresponding to each subline, obtain the scheduling scheme for each subline; each subline scheduling scheme is the scheduling scheme for each subline. Based on the scheduling schemes of each sub-line, determine the initial scheduling scheme; The scheduling scheme is determined based on the intermediate value, the initial scheduling scheme, and the first constraint.

6. The method of claim 5, wherein, The obtaining of each sub-line scheduling scheme comprises: obtaining the number of servers included in each TP group; obtaining each sub-line scheduling scheme according to the server set, the edge set and the failed server set corresponding to each sub-line in combination with the number of servers included in each TP group.

7. The method of claim 6, wherein, The obtaining of the number of servers included in each TP group comprises: obtaining the number of intelligent computing chips included in each TP group and the number of intelligent computing chips included in each server; determining the number of servers included in each TP group according to the number of intelligent computing chips included in each TP group and the number of intelligent computing chips included in each server.

8. The method of claim 6, wherein, The obtaining of each sub-line scheduling scheme according to the server set, the edge set and the failed server set corresponding to each sub-line in combination with the number of servers included in each TP group comprises: determining a healthy server set according to the server set and the failed server set corresponding to each sub-line; determining a healthy edge set for representing the connection relationship between each healthy server in the healthy server set according to the healthy server set and the edge set corresponding to each sub-line; determining a healthy server sub-graph according to the healthy server set and the healthy edge set; determining a connected component according to the healthy server sub-graph; the connected component is used for representing an independent part obtained by dividing the network connection based on the HBD topology structure; determining each sub-line scheduling scheme according to the connected component and the number of servers included in each TP group.

9. The method of claim 8, wherein, The determining of each sub-line scheduling scheme according to the connected component and the number of servers included in each TP group comprises: detecting the size relationship between each connected component and the number of servers included in each TP group; determining the sub-line scheduling scheme according to the size relationship.

10. The method of claim 5, wherein, The determining of the scheduling scheme according to the intermediate value, the initial scheduling scheme and the first constraint condition comprises: determining the size of the initial scheduling scheme, the number of servers included in each TP group and the number of intelligent computing chips in each server; updating the intermediate value to obtain a new upper limit value and a new lower limit value according to the product of the size of the initial scheduling scheme, the number of servers included in each TP group and the number of intelligent computing chips in each server and the first constraint condition; determining the scheduling scheme according to the new upper limit value and the new lower limit value.

11. An electronic device, comprising: The electronic device comprises: one or more processors; and a memory storing computer program instructions which, when executed, cause the processor to perform the steps of the method of any one of claims 1 to 10.

12. A computer readable medium having stored thereon computer programs / instructions, characterized in that, The computer program / instructions, when executed by the processor, implement the steps of the method of any one of claims 1 to 10.

13. A computer program product comprising computer programs / instructions, characterized in that, The computer program / instructions, when executed by the processor, implement the steps of the method of any one of claims 1 to 10.

Citation Information

Patent Citations

  • Model deployment method, system and equipment based on cluster topological structure and medium

    CN117155791A

  • Distributed system modeling method, device, equipment, medium and program product

    CN119046122A