Method for allocating computing nodes, electronic device, storage medium and program product

By acquiring the target grid file, weight information allocation rules, and computing cluster architecture information, grid elements are grouped and computing nodes are assigned, solving the problem of unbalanced load among computing nodes and improving computing efficiency.

CN120929280BActive Publication Date: 2026-01-27INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202511463035.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-10-14
Publication Date
2026-01-27
Estimated Expiration
2045-10-14

AI Technical Summary

Technical Problem

The problem of uneven load distribution among computing nodes in existing technologies leads to low computing efficiency.

Method used

By acquiring the target grid file, weight information allocation rules, and target computing cluster architecture information, grid elements are grouped based on this information, and a computing node is assigned to each grid domain to achieve load balancing.

Benefits of technology

It improves load balancing among computing nodes and enhances computing efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120929280B_ABST
    Figure CN120929280B_ABST
Patent Text Reader

Abstract

The application discloses a kind of allocation method of computing node, electronic equipment, storage medium and program product, it is related to computer technical field, including: first, obtain target grid file, weight information distribution rule and the architecture information of target computing cluster.Therein, grid data of multiple grid elements is included in target grid file, and target computing cluster includes multiple computing nodes.Then, according to the architecture information, the grid data of grid element, weight information distribution rule, after grouping to the grid element in target grid file, multiple grid domains are obtained.Finally, again, one computing node is distributed to each grid domain.In this way, in the process of dividing grid domain, the resource amount difference between each grid element is considered, can improve the load balancing between divided grid domain, that is, the load balancing between each computing node can be guaranteed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to methods for allocating computing nodes, electronic devices, storage media, and program products. Background Technology

[0002] In the field of fluid dynamics, complex geometric models require the generation of computational mesh files suitable for solving through mesh generation. To improve computational efficiency, the mesh elements included in the computational mesh file are generally divided into multiple subdomains, and then a computing node is assigned to each subdomain. For example, the computing node can be a central processing unit (CPU), a graphics processing unit (GPU), etc., to achieve parallel computing.

[0003] In the current process of subdomain partitioning, the partitioning is generally based on a single type of mesh element, which can be various types such as cells (triangles), edges, and vertices. For example, subdomains can be partitioned directly based on the number of cells in a balanced manner and then distributed to various computing nodes for computation. However, this can lead to an imbalance in the load between computing nodes. Summary of the Invention

[0004] This application provides a method, apparatus, electronic device, storage medium, and program product for allocating computing nodes to solve the problem of unbalanced load among computing nodes.

[0005] This application provides a method for allocating computing nodes, including:

[0006] Obtain the target mesh file, weight information allocation rules, and architecture information of the target computing cluster. The target mesh file includes mesh data of multiple mesh elements, and the target computing cluster includes multiple computing nodes.

[0007] Based on the architecture information, the grid data of multiple grid elements, and the weight information allocation rules, the grid elements included in the target grid file are grouped to obtain multiple grid domains;

[0008] Each grid domain is assigned a computing node, which is used by each computing node to perform computing operations on the grid data of the grid elements in its assigned grid domain based on the pre-acquired computing task information.

[0009] This application also provides a computing node allocation device, comprising:

[0010] The acquisition module is used to acquire the target grid file, weight information allocation rules, and architecture information of the target computing cluster. The target grid file includes grid data of multiple grid elements, and the target computing cluster includes multiple computing nodes.

[0011] The grouping module is used to group the grid elements included in the target grid file according to the architecture information, the grid data of multiple grid elements, and the weight information allocation rules, so as to obtain multiple grid domains.

[0012] The allocation module is used to allocate a computing node to each grid domain. Each computing node performs computing operations on the grid data of the grid elements in its assigned grid domain based on the pre-acquired computing task information.

[0013] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for implementing the allocation method of any of the above-described computing nodes when executing the computer program.

[0014] This application also provides a computer-readable storage medium storing a computer program, wherein when the computer program is executed by a processor, it implements the steps of any of the above-described methods for allocating computing nodes.

[0015] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the above-described methods for allocating computing nodes.

[0016] This application first obtains the target grid file, weight allocation rules, and architecture information of the target computing cluster. The target grid file includes grid data for multiple grid elements, and the target computing cluster includes multiple computing nodes. Then, based on the architecture information, grid data, and weight allocation rules, the grid elements in the target grid file are grouped to obtain multiple grid domains. Finally, a computing node is assigned to each grid domain. In this grid domain partitioning process, the architecture information indicates the computing power and node distribution of the target computing cluster, the grid data indicates the resource requirements for executing the computing tasks corresponding to the grid elements, and the weight allocation rules unify the units of different types of resources. Thus, by combining the grid data and weight allocation rules, the resource requirements between each grid element can be determined. Combined with the architecture information, grid domains that conform to the architecture characteristics of the target computing cluster can be partitioned. Furthermore, considering the resource differences between grid elements during the partitioning process improves load balancing between the partitioned grid domains, thereby ensuring load balancing among the computing nodes. Attached Figure Description

[0017] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0018] Figure 1 A schematic diagram of a computing cluster architecture provided for an embodiment of this application;

[0019] Figure 2 A flowchart illustrating a method for allocating computing nodes provided in an embodiment of this application;

[0020] Figure 3 A schematic diagram of a grid provided for an embodiment of this application;

[0021] Figure 4 Another grid diagram provided for an embodiment of this application;

[0022] Figure 5 A schematic flowchart of a computing node allocation device provided in an embodiment of this application;

[0023] Figure 6 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0024] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0025] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0026] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0027] The computing node allocation method provided in this application can be implemented by a computing cluster, such as... Figure 1 As shown, a computing cluster can include multiple computing nodes, and one or more of these computing nodes can be set as management nodes to execute the allocation method for the computing nodes.

[0028] Embodiments of this application provide a method for allocating computing nodes, which can be executed by a management node, such as... Figure 2 As shown, the specific processing steps of the computing node allocation method may include:

[0029] Step S201: Obtain the target grid file, weight information allocation rules, and target computing cluster architecture information.

[0030] The target mesh file can include mesh data for multiple mesh elements. Mesh elements can be of different types, such as cells, edges, and vertices. Mesh data includes geometric information and / or physical variable values ​​for each mesh element. For example, vertex mesh data can include geometric information, such as vertex identifiers and coordinates. Edge mesh data can include geometric information, including the identifiers of the starting and destination vertices, and the identifier of the cell to which the edge belongs. Edge mesh data can be used to calculate gradient directions, etc. Cell mesh data can include geometric information and physical variable values. Geometric information can include the cell identifier and the identifiers of its constituent vertices, while physical variable values ​​can be velocities, temperatures, etc., in different directions.

[0031] The target computing cluster may include multiple servers, and each server may include multiple memory access nodes. Each memory access node includes multiple cores, and each core is one of the aforementioned computing nodes. Therefore, the target computing cluster comprises multiple computing nodes. Memory access nodes can be Non-Uniform Memory Access (NUMA) nodes. Cores can be Central Processing Unit (CPU) cores or Graphics Processing Unit (GPU) cores.

[0032] Specifically, in the field of computational fluid dynamics, complex geometric models typically require mesh generation to create a suitable computational mesh for solving the problem. The computational mesh can be polygonal, such as triangular, and a triangle can include elements, edges, vertices, etc., i.e., the mesh elements mentioned above. Furthermore, to improve the efficiency of large-scale parallel computing, the mesh elements can be divided into multiple partitions and distributed across multiple computing nodes to achieve parallel acceleration. Generally, the management node can use a pre-installed meshing tool to perform meshing operations on the original mesh file to obtain the target mesh file. For example, meshing tools can be METIS, ParMETIS, Scotch, Zoltan, etc. The original mesh file can be a mesh file related to the computational fluid dynamics (CFD) task. The format of the original mesh file can be the Computational Fluid Dynamics General Notation System (CGNS) format, the Visualization Toolkit (VTK) format, the Hierarchical Data Format version 5 (HDF5) format, etc.

[0033] Step S202: Based on the architecture information, the grid data of multiple grid elements, and the weight information allocation rules, the grid elements included in the target grid file are grouped to obtain multiple grid domains.

[0034] Specifically, since architectural information can be used to indicate the computing power and distribution of computing nodes in the target computing cluster, and grid data can be used to indicate the amount of resources required to execute the computing tasks corresponding to grid elements and the location information of the grid elements, and further, since resources may be of different types, weight information allocation rules can be used to unify the units of different types of resources. Therefore, the management node can analyze the architectural information, the grid data of multiple grid elements, and the weight information allocation rules to group the multiple grid elements included in the target grid file, and determine the grid data of all grid elements included in each group of grid elements to be computed as a grid domain.

[0035] Step S203: Assign a computing node to each grid domain, so that each computing node can perform computing operations on the grid data of the grid elements in its assigned grid domain based on the pre-acquired computing task information.

[0036] The pre-acquired computational task information may include initial conditions, boundary conditions, computational equations, and other information.

[0037] Specifically, the management node can assign a computing node to each grid domain. For example, the identification information of the computing nodes are computing node 1, computing node 2, and computing node 3, and the identification information of the grid domains is grid domain 1, grid domain 2, grid domain 3, grid domain 4, and grid domain 5. In the process of assigning computing nodes, grid domains 1 and 4 can be assigned to computing node 1, grid domains 2 and 5 can be assigned to computing node 2, and grid domain 5 can be assigned to computing node 3.

[0038] The mesh domain partitioning method of this application first obtains a target mesh file, weight information allocation rules, and the architecture information of a target computing cluster. The target mesh file includes mesh data of multiple mesh elements, and the target computing cluster includes multiple computing nodes. Then, based on the architecture information, the mesh data of the mesh elements, and the weight information allocation rules, the mesh elements in the target mesh file are grouped to obtain multiple mesh domains. Finally, a computing node is allocated to each mesh domain. In the above mesh domain partitioning process, since the architecture information can be used to indicate the computing power and distribution of computing nodes in the target computing cluster, the mesh data can be used to indicate the amount of resources required to execute the computing tasks corresponding to the mesh elements, and the weight information allocation rules can be used to unify the units of different types of resources, the differences in the required resource amounts between each mesh element can be determined by combining the mesh data of the mesh elements and the weight information allocation rules. Combined with the architecture information, mesh domains that conform to the architecture characteristics of the target computing cluster can be partitioned. Furthermore, considering the differences in resource amounts between each mesh element during the mesh domain partitioning process can improve the load balancing between the partitioned mesh domains, that is, it can ensure the load balancing between each computing node.

[0039] In some optional implementations, the mesh data described above includes at least the geometric information and element type of the mesh elements; the element type can be cells, vertices, edges, etc. Accordingly, in step S202 above, the management node can perform grouping operations on the mesh elements in the target mesh file using the following specific steps:

[0040] Step 1: Once it is determined that the grid data of the target grid element also includes the target physical variable value, the load weight information of the target grid element is determined according to the target physical variable value and the weight information allocation rules.

[0041] The target grid element is any one of multiple grid elements.

[0042] Alternatively, in step two, after determining that the grid data of the target grid element does not include the target physical variable value, the load weight information of the target grid element is determined according to the element type and weight information allocation rules.

[0043] Step 3: After determining the load weight information corresponding to multiple mesh elements, the mesh elements included in the target mesh file are grouped according to the architecture information, as well as the geometric information and load weight information of multiple mesh elements, to obtain multiple groups of mesh elements to be calculated.

[0044] In this context, the grid data corresponding to the multiple elements in a grid element group to be calculated constitutes the grid domain corresponding to that grid element group.

[0045] Specifically, since the mesh data of a mesh element may include only geometric information and element type, or it may also include physical variable values, the management node can determine the load weight information of the target mesh element based on the content included in the mesh data of each mesh element. Taking a target mesh element as an example, if it is determined that the mesh data of the target mesh element includes target physical variable values ​​in addition to geometric information and element type, the management node can determine the load weight information of the target mesh element based on the target physical variable values ​​and weight information allocation rules. If it is determined that the mesh data of the target mesh element does not include target physical variable values, the management node can determine the load weight information of the target mesh element based on the element type and weight information allocation rules. The load weight information of each mesh element can be determined in a similar way.

[0046] Since load weight information can be used to indicate the resource requirements of grid elements, after determining the load weight information of each grid element, the management node can group the grid elements included in the target grid file according to the architecture information, as well as the geometric information and load weight information of multiple grid elements, to obtain multiple groups of grid elements to be calculated.

[0047] Finally, the management node can construct a grid domain corresponding to each grid element group to be calculated by dividing the grid data of the multiple elements included in each grid element group.

[0048] Thus, since different physical variable values ​​involve different number of iterations, i.e., different computational loads, when the grid data includes physical variable values, the computational resource requirements of network elements can be accurately determined by using the allocation rules of physical variable values ​​and weight information. Some grid elements do not include physical variable values ​​and may only be used to indicate gradient direction and coordinate information, but they still need to participate in the calculation. Therefore, the load weight information can be determined by using the element type and weight information allocation rules of the grid elements so that the load of the grid domain can be calculated subsequently. In addition, geometric information is used to indicate the positional relationship between network elements, such as whether they are adjacent, so that adjacent network elements can be assigned to the same group as much as possible during the grid domain partitioning process, reducing communication complexity. It can be seen that by combining architectural information, geometric information, and load weight information to perform grid element grouping operations, the load among the final groups of grid elements to be calculated can be balanced and conform to the architectural characteristics of the target computing cluster.

[0049] In some optional implementations, the weight information allocation rules may include multiple physical variable value ranges and computational weight information corresponding to each of the multiple physical variable value ranges. For example, the computational weight information may be computational load weight values. Accordingly, in step one above, the management node may determine the load weight information of the target mesh element using the following specific steps:

[0050] Step 1: Based on the target physical variable values ​​included in the target mesh element, determine the target physical variable value range that the target physical variable value falls into among multiple physical variable value ranges.

[0051] Step 2: Based on the target physical variable value range, determine the target computational weight information corresponding to the target physical variable value range from the computational weight information corresponding to the multiple physical variable value ranges.

[0052] Step 3: Directly determine the target computational weight information as the load weight information of the target grid element.

[0053] Specifically, first, the management node determines the target physical variable value range into which the target physical variable value falls among multiple physical variable value ranges. Then, it can obtain the target computational weight information corresponding to the target physical variable value range and directly determine the target computational weight information corresponding to the target physical variable value range as the load weight information of the target grid element.

[0054] In this way, the weight information allocation rules can be flexibly adjusted for different physical scenarios, and the weight information of the computational load can be matched through the mapping relationship, which is quite convenient.

[0055] In some optional implementations, the weight information allocation rules also include multiple communication object quantity ranges and communication volume weight information corresponding to each of the multiple communication object quantity ranges. For example, the communication volume weight information can be a communication volume load weight value. Accordingly, based on step 2 above, the management node can determine the load weight information of the target mesh element using the following specific steps:

[0056] Step 4: Obtain the number of communication objects corresponding to each of the multiple grid elements.

[0057] Step 5: Based on the number of communication objects corresponding to the target grid element, determine the target communication object number range within multiple communication object number ranges.

[0058] Step 6: Based on the target communication object quantity range, determine the target communication volume weight information corresponding to the target communication object quantity range from the communication volume weight information corresponding to the multiple communication object quantity ranges respectively.

[0059] Step 7: Combine the target communication volume weight information and the target computation volume weight information to determine the load weight information of the target grid element.

[0060] Specifically, the management node can first obtain the number of communication objects corresponding to multiple mesh elements. This number of communication objects can be determined based on the geometric information of the mesh elements; for example, when two cells share an edge, these two cells are each other's communication objects. Then, the management node can determine the target communication object number range within which the number of communication objects corresponding to the target mesh element falls from multiple ranges. Finally, it can determine the target communication volume weight information corresponding to the target communication object number range from the communication volume weight information corresponding to each of the multiple communication object number ranges. Finally, the management node can combine the target communication volume weight information and the target computation volume weight information to determine the load weight information of the target mesh element.

[0061] Thus, since communication load is also a significant factor affecting computational efficiency, the number of communication objects can be used to differentiate the communication needs of each grid element. This ensures that the communication load is as balanced as possible when subsequently partitioning the grid domain, reducing the number of communications between computing nodes, effectively lowering global synchronization wait time, and improving computational efficiency. Furthermore, considering both computational and communication loads simultaneously results in a more balanced grid domain, greatly improving load balancing and computational efficiency among computing nodes.

[0062] In some optional implementations, the weight information allocation rules may include load weight information corresponding to multiple element types respectively. Accordingly, in step two above, the management node can determine the load weight information corresponding to the element type in the weight information allocation rules based on the element type in the grid data of the target grid element, and determine the load weight information as the load weight information of the target grid element.

[0063] In some alternative implementations, in step three above, the management node may divide the mesh domain using the following specific steps:

[0064] Step 1: Based on the sub-architecture information of each level and the load weight information of multiple grid elements, the grid elements included in the target grid file are grouped according to the hierarchy from high to low, resulting in multiple initial grid element groups.

[0065] Step 2: Based on the load weight information and geometric information of the mesh elements included in the multiple initial mesh element groups, perform a migration operation on one or more mesh elements to obtain multiple mesh element groups to be calculated.

[0066] Specifically, in step 1, the management node can first group the grid elements in the target grid file according to the architecture of the target computing cluster, obtaining multiple initial grid element groups to facilitate subsequent optimization operations. Since the target computing cluster includes multiple layers, the architecture information can include sub-architecture information for each layer; for example, sub-architecture information can include the number of nodes at that layer. Therefore, the management node can group the grid elements in the target grid file sequentially from high to low layer using the sub-architecture information of each layer to obtain multiple initial grid element groups.

[0067] In the process of dividing the initial grid element groups according to the architecture information, for the highest level (first level), the management node can divide the grid elements included in the target grid file into multiple first-level task groups, equal to the number of nodes in the first level, based on the number of nodes in the first level, the load weight information of each grid element, and the pre-acquired first load balancing threshold (which can be 20%). Furthermore, for the second level, which is not the highest level, the management node can divide the target task group into multiple sub-task groups, equal to the number of nodes in the second level. Here, the target task group is any one of the multiple task groups obtained after the division operation at a level one level higher than the second level; the second level is any level other than the highest level; when the second level is the lowest level among the multiple levels, the resulting sub-task groups are the initial grid element groups.

[0068] For example, the target computing cluster includes 4 servers, each server includes 2 memory access nodes, and each memory access node includes 4 cores. In the process of dividing the initial grid element groups, the management node can first divide the grid elements into 4 primary task groups, then divide each primary task group into 2 secondary task groups, and finally divide each secondary task group into 4 tertiary task groups. In this way, all the tertiary task groups are the initial grid element groups mentioned above.

[0069] Specifically, in the first-level grouping operation, the management node can first divide the grid elements into multiple task groups equal to the number of nodes in the first level, based on the number of cells and the number of nodes in the first level. Then, the management node can calculate the total computational load weight value corresponding to each task group based on the load weight information of the grid elements in each task group (for example, calculating the sum of the computational load weight values ​​included in the load weight information of each grid element to obtain the total computational load weight value). Furthermore, based on the total computational load weight value corresponding to each task group, the load balancing index value (for example, variance or standard deviation) is determined. If the load balancing index value is less than the first load balancing threshold, the first-level partitioning operation is considered complete. If the load balancing metric value is greater than or equal to the first load balancing threshold, the first task group with the largest total computational load weight value can be identified. Within this first task group, the first grid element with the largest computational load weight value is then identified and migrated to the second task group with the smallest total computational load weight value. The load balancing metric value is then recalculated, and this process continues until the load balancing metric value falls below the first load balancing threshold, at which point the first-level grouping operation is considered complete. A similar approach can be used in the second-level grouping operation.

[0070] In step 2, the management node can identify and migrate grid elements that have a significant impact on load balancing based on the load weight and geometric information of each grid element, until the load is balanced among the grid element groups.

[0071] In some alternative implementations, in step 2 above, the management node can perform the migration operation of grid elements according to the following specific steps to achieve load balancing among the various grid element groups:

[0072] Step a: Based on the load weight information and geometric information of the mesh elements included in the multiple initial mesh element groups, select at least one candidate migration mesh element from the mesh elements included in the target mesh file.

[0073] Step b: In the current iteration round, after determining that there are unmigrated candidate migration grid elements, select one candidate migration grid element from the unmigrated candidate migration grid elements as the target candidate migration grid element corresponding to the current iteration round.

[0074] Step c involves migrating the target candidate migration grid element from the group of grid elements to be migrated to the adjacent group of grid elements, resulting in multiple groups of grid elements corresponding to the current iteration round.

[0075] Among them, the grid element group to be migrated is the grid element group to which the target candidate migration grid element belongs, and the adjacent grid element group is the grid element group that is adjacent to both the target candidate migration grid element and the grid element group to be migrated.

[0076] Step d: When the current iteration round is determined to be the last iteration round based on the load weight information of the grid elements included in the multiple grid element groups corresponding to the current iteration round and / or the current iteration number, the grid element group obtained in the last iteration round is determined as the grid element group to be calculated.

[0077] Alternatively, in step e, if it is determined that the current iteration is not the last iteration based on the load weight information of the grid elements included in the multiple grid element groups corresponding to the current iteration and / or the current iteration number, proceed to the next iteration until the last iteration is determined, and then determine the grid element group obtained after the migration operation of the last iteration as the grid element group to be calculated.

[0078] Specifically, in step a, since the position information of the mesh element can indicate whether the mesh element belongs to the mesh element at the migrateable location, and the load weight information of the mesh element can indicate the migration value of the mesh element, at least one candidate migrated mesh element can be selected from the mesh elements included in the target mesh file after performing analysis operations based on the load weight information and geometric information of the mesh elements included in multiple initial mesh element groups respectively.

[0079] In step b, since the number of candidate migration grid elements may be one or more, the task migration node can perform one or more migration operations. The following explanation uses any given migration operation as an example: in the current iteration round, if there are still candidate migration grid elements that have not yet been migrated, one of these candidate migration grid elements can be selected as the target candidate migration grid element corresponding to the current iteration round.

[0080] In step c, the management node can migrate the target candidate migration grid element from the group of grid elements to be migrated to the adjacent group of grid elements. In this way, the grid elements in the group of grid elements to be migrated and the adjacent group of grid elements change, resulting in multiple groups of grid elements corresponding to the current iteration round.

[0081] In step d, the management node can determine whether the current iteration round meets the preset stopping condition based on the load weight information of the grid elements included in the multiple grid element groups corresponding to the current iteration round, and one or all elements of the current iteration number. Accordingly, the preset stopping condition may include load balancing and / or the current iteration number being equal to the preset iteration number.

[0082] For example, the management node can re-determine whether the load is balanced among the various grid element groups based on the load weight information of the grid elements included in the multiple grid element groups corresponding to the current iteration round. If so, the current iteration round can be determined as the last round. Alternatively, the management node can directly determine whether the current iteration number is equal to the preset iteration number. If so, the current iteration round can be determined as the last round.

[0083] In step e, if the management node determines that the load is unbalanced among the various grid element groups and determines that the current iteration number is less than the preset iteration number, it can proceed to the next iteration round to continue performing the grid element migration operation. This process continues until the last iteration round is determined. The grid element group obtained after the migration operation of the last iteration round is then determined as the grid element group to be calculated.

[0084] In this way, migrating candidate migration grid elements one by one in each iteration, rather than moving multiple candidate migration elements at once, avoids over-adjustment caused by moving a large number of elements at once. Furthermore, migration operations only occur between adjacent groups, avoiding additional communication overhead.

[0085] In some optional implementations, during the process of determining whether the grid element groups corresponding to the current iteration round are load-balanced, the management node can calculate a load balancing index value based on the load weight information of the grid elements included in the multiple grid element groups corresponding to the current iteration round. The load balancing index value can be a computational load balancing index value or a communication load balancing index value, and can be expressed in the form of variance or standard deviation. When the load balancing index value is determined to be less than a preset second load balancing threshold (which can be 5%), the current iteration round can be determined to be the last round. The second load balancing threshold can be less than the first load balancing threshold.

[0086] In some optional implementations, when the load balancing index value is the traffic load balancing index value, in step d above, the management node can determine the traffic balancing index value (which can be variance or standard deviation) corresponding to the current iteration round based on the traffic weight information corresponding to each grid element group, and compare the traffic balancing index value corresponding to the current iteration round with the traffic balancing index value of the previous iteration round. If the decrease is less than a preset threshold (which can be 1%), then the current iteration round can be determined as the last round.

[0087] Accordingly, in step e, if the management node determines that the load is unbalanced among the various grid element groups and the management node determines that the current iteration number is less than the preset iteration number and the decrease is greater than or equal to the preset magnitude threshold, then the next iteration round can be entered to continue the grid element migration operation. This process continues until the last iteration round is determined, at which point the grid element group obtained after the migration operation of the last iteration round is determined as the grid element group to be calculated.

[0088] In some alternative implementations, in step a above, the management node may select candidate migration grid elements according to the following specific steps:

[0089] Step a1: Determine the total load weight information of the target initial grid element group based on the load weight information of the multiple grid elements included in the target initial grid element group.

[0090] The target initial mesh element group can be any one of multiple initial mesh element groups.

[0091] Step a2: After determining the total load weight information corresponding to the multiple initial mesh element groups, select at least one candidate migration mesh element from the mesh elements included in the target mesh file based on the total load weight information corresponding to the multiple initial mesh element groups, the load weight information and geometric information of the mesh elements included in the multiple initial mesh element groups.

[0092] Specifically, taking the target initial grid element group as an example, the management node can calculate the total load weight information of the target grid element group based on the load weight information of the multiple grid elements included in the target initial grid element group.

[0093] For example, load weight information may include communication load weight value and computation load weight value, and total load weight information may include total communication load weight value and total computation load weight value. Accordingly, the management node can calculate the total computation load weight value using the following expression:

[0094] (1)

[0095] in, The total computational load weight value for the i-th initial grid element group. This represents the computational load weight value of a mesh element of a cell type. This represents the computational load weight value of a mesh element of edge type. The computational load weight value for a vertex-type mesh element.

[0096] Furthermore, the total traffic load weight value is calculated using the following expression:

[0097] (2)

[0098] in, This represents the total traffic load weight value for the i-th initial grid element group. The traffic load weight value for grid elements.

[0099] Since the total load weight information can indicate whether the load is balanced among the initial grid element groups, the position information of the grid elements in the initial grid element groups can indicate whether the grid elements belong to the grid elements in the migrateable positions, and the load weight information of the grid elements in the initial grid element groups can indicate the migration value of the grid elements, after calculating the total load weight information corresponding to multiple initial grid element groups, the management node can select at least one candidate migrated grid element from the grid elements included in the target grid file after analyzing the total load weight information corresponding to multiple initial grid element groups, the load weight information and geometric information of the grid elements included in multiple initial grid element groups from the grid element group dimension and the grid element dimension.

[0100] In some alternative implementations, in step a2 above, the management node may select candidate migration grid elements according to the following specific steps:

[0101] Step a21: Select the grid element group to be migrated from the multiple initial grid element groups according to the total load weight information corresponding to the multiple initial grid element groups and the pre-acquired grid element group selection rules.

[0102] Step a22: Based on the total load weight information corresponding to the multiple initial mesh element groups, and the load weight information and geometric information of the multiple mesh elements included in the mesh element group to be migrated, at least one candidate migration mesh element is selected from the mesh element group to be migrated.

[0103] Specifically, the management node can select the initial grid element group whose total load weight information conforms to the grid element group selection rules from multiple initial grid element groups, based on the total load weight information corresponding to each initial grid element group and the pre-acquired grid element group selection rules. For example, the total load weight information may include the total communication load weight value and the total computation load weight value, and the grid element selection rule may be to select the initial grid element group with the largest total communication load weight value or the largest total computation load weight value as the grid element group to be migrated.

[0104] After determining the group of grid elements to be migrated, in order to facilitate the migration, the management node can select candidate grid elements that have a significant impact on load balancing from the group of grid elements to be migrated, based on the geometric information and load weight information of each grid element included in the group of grid elements, considering both location and load.

[0105] In some alternative implementations, in step a22 above, the management node may select candidate migration grid elements using the following specific steps:

[0106] Based on the geometric information of multiple mesh elements included in the mesh element group to be migrated, determine multiple boundary mesh elements included in the mesh element group to be migrated; based on the load weight information corresponding to the multiple boundary mesh elements, select at least one candidate migration mesh element from the multiple boundary mesh elements.

[0107] Specifically, the management node can determine whether each grid element in the group of grid elements to be migrated is a boundary grid element located at the boundary, based on the geometric information of each grid element. Furthermore, for boundary grid elements, the management node can select candidate migration grid elements from among the boundary grid elements based on the load weight information corresponding to each of the multiple boundary grid elements.

[0108] For example, the management node can sort each boundary grid element by size according to the computational load weight value included in the load weight information, and select the boundary grid element that ranks higher than the preset order as the candidate migration grid element.

[0109] In some alternative implementations, in step b above, if it is determined that there are no unmigrated candidate migration grid elements in the current iteration, the task migration node can reselect candidate migration grid elements according to the above steps and then perform the grid element migration operation, and so on, until the last iteration is determined.

[0110] In some optional implementations, prior to step b above, the management node may sort at least one candidate migration grid element according to the following steps: Accordingly, in step b, the management node may select the target candidate migration grid element corresponding to the current iteration based on the sorting of the candidate migration grid elements.

[0111] Step f: Based on the load weight information of the target candidate migration grid elements and the total load weight information of the group of grid elements to be migrated, determine the total load weight information of the group of grid elements to be migrated after the change.

[0112] Step g: Determine the total load weight information of the adjacent grid element group after the change based on the load weight information of the target candidate migration grid element and the total load weight information of the adjacent grid element group.

[0113] Step h: Based on the total load weight information of the grid element group to be migrated after the change, the total load weight information of the adjacent grid element groups after the change, the total load weight information of other grid element groups, and the initial load balancing information, determine the marginal cost corresponding to the target candidate grid element to be migrated.

[0114] The initial load balancing information can be determined based on the total load weight information of the initial grid element group (refer to the specific steps in step a1 above). The initial load balancing information may include the initial computational load balancing index value and the initial communication load balancing index value.

[0115] Step i: Determine the order of each target candidate migration grid element based on the marginal cost corresponding to each target candidate migration grid element, so that in any iteration round, the candidate migration grid element with the highest order is selected as the target candidate migration grid element for that iteration round based on the order of the unmigrated candidate migration grid elements.

[0116] Specifically, since only the total load weight information of the target candidate migration grid element group and its adjacent grid element groups will change after the target candidate migration grid element is migrated, the management node can calculate the changed total load weight information of the target candidate migration grid element group and its adjacent grid element groups in steps f and g, respectively. Furthermore, the management node can determine the marginal cost corresponding to the target candidate migration grid element based on the changed total load weight information of the target candidate migration grid element group, the changed total load weight information of the adjacent grid element groups, the total load weight information of other grid element groups, and the initial load balancing index value. The changed total load weight information can include the computational load balancing index value and the communication load balancing index value.

[0117] In this way, by sorting candidate migration grid elements based on marginal cost, we can understand in advance the impact of the migration of candidate migration grid elements on load balancing. During migration, we can first migrate candidate migration grid elements that have a greater impact on load balancing, which can improve the efficiency of migration.

[0118] For example, step h can be expressed as follows:

[0119] (3)

[0120] in, This is the marginal cost. This is the change in the load balancing index value. These are pre-acquired tradeoff coefficients used to indicate the importance of traffic load. This represents the change in the value of the traffic load balancing index. It can be the absolute value of the difference between the computational load balancing index value in the changed total load weight information and the initial computational load balancing index value. This can be the absolute value of the difference between the traffic load balancing index value in the changed total load weight information and the initial traffic load balancing index value. The tradeoff coefficient can be adjusted according to the actual application scenario and computing scale. For the same application scenario, it can be adaptively adjusted based on historical computing results, for example, based on the change in the traffic load balancing index value.

[0121] In some optional implementations, after step S202 above, the management node can determine the grid domain number to which each grid element belongs, and generate a computational load statistics table based on the grid domain number and computational load weight value. It can also generate a communication load statistics table based on the grid domain number and communication load weight value. Furthermore, it can generate a communication heatmap based on the geometric information of the grid elements in each grid domain and their communication load weight values. Finally, it can generate a grid domain partitioning diagram based on the geometric information of the grid elements in each grid domain. This facilitates review and manual adjustments by technical personnel, providing greater flexibility.

[0122] In some alternative implementations, the computational load weight values ​​for different element types can be set based on the actual application scenario. For example, when performing computational operations on each mesh domain using an explicit time-progression method, the computational load weight values ​​for all element types can be increased; for higher-order finite element methods or discontinuous Galerkin (DG) methods that primarily focus on vertex reconstruction, the computational load weight values ​​for all vertex types can be increased; for heat transfer or coupled multiphysics scenarios where the communication ratio needs to be considered, the computational load weight values ​​for all edge types can be increased. The amount of increase can be specified in advance by the technical personnel.

[0123] The advantages of this solution will be illustrated below with two specific examples.

[0124] In the external modulus momentum equation, the mesh domain template used can be as follows: Figure 3 As shown, the system includes four units: A, B, C, and D. Calculating the velocity of unit A requires information from its neighboring units to calculate the gradient. The calculation loop follows the edges of the units (e.g., ...). Figure 3 The bold line segment indicated by ij is used in the calculation of the continuity equation. The mesh domain template used in the calculation can be as follows: Figure 4 As shown, to calculate the water level at vertex n, it is necessary to integrate the boundary of the control volume surrounding it, which is composed of the centers of adjacent triangles and the midpoints of their sides.

[0125] Traditional mesh generation tools can only choose one primary object as the partitioning criterion: either by cell or by vertex. If partitioned by cell, the computational load for the momentum equation is balanced (because the difference in the number of cells allocated to each core is small), but the computation for the continuity equation becomes unbalanced. This is because a vertex may belong to multiple cells; if this vertex happens to be located at the boundary between different cores, the core computing it needs to obtain information from other cores, resulting in high communication overhead and potentially causing one processor to handle far more vertices than others. Conversely, if partitioned by vertex, the continuity equation is balanced, but the momentum equation becomes unbalanced. This method, however, considers both cells and edges as partitioning objects simultaneously. By taking into account the computational and communication loads of different types of mesh elements, iterative optimization is performed to achieve the optimal mesh partitioning, ensuring load balance among all computing nodes.

[0126] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0127] Embodiments of this application also provide a computing node allocation device, such as... Figure 5 As shown, it includes:

[0128] The acquisition module 510 is used to acquire the target grid file, weight information allocation rules, and architecture information of the target computing cluster. The target grid file includes grid data of multiple grid elements, and the target computing cluster includes multiple computing nodes.

[0129] Grouping module 520 is used to group the grid elements included in the target grid file according to the architecture information, the grid data of multiple grid elements, and the weight information allocation rules, so as to obtain multiple grid domains.

[0130] The allocation module 530 is used to allocate a computing node to each grid domain, so that each computing node can perform computing operations on the grid data of the grid elements in its assigned grid domain based on the pre-acquired computing task information.

[0131] In some optional implementations, the mesh data includes at least the geometric information and element type of the mesh elements; the grouping module 520 is specifically used for:

[0132] Once it is determined that the grid data of the target grid element also includes the target physical variable value, the load weight information of the target grid element is determined according to the target physical variable value and the weight information allocation rule. The target grid element is any one of multiple grid elements.

[0133] Alternatively, once it is determined that the grid data of the target grid element does not include the target physical variable value, the load weight information of the target grid element is determined according to the element type and weight information allocation rules.

[0134] Once the load weight information corresponding to multiple mesh elements is determined, the mesh elements included in the target mesh file are grouped according to the architecture information, as well as the geometric information and load weight information of multiple mesh elements, to obtain multiple groups of mesh elements to be calculated.

[0135] In this context, the grid data of multiple grid elements included in a grid element group to be calculated constitute the grid domain corresponding to that grid element group.

[0136] In some optional implementations, the weight information allocation rules include multiple physical variable value ranges and computational weight information corresponding to each of the multiple physical variable value ranges; the grouping module 520 is specifically used for:

[0137] Based on the target physical variable value, determine the target physical variable value range that the target physical variable value falls into among multiple physical variable value ranges;

[0138] Based on the target physical variable value range, the target computational weight information corresponding to the target physical variable value range is determined from the computational weight information corresponding to the multiple physical variable value ranges respectively;

[0139] The target computational weight information is directly determined as the load weight information of the target grid element.

[0140] In some optional implementations, the weight information allocation rule further includes multiple communication object quantity ranges and communication volume weight information corresponding to each of the multiple communication object quantity ranges; the grouping module 520 is also used for:

[0141] Get the number of communication objects corresponding to each of the multiple grid elements;

[0142] Based on the number of communication objects corresponding to the target grid element, determine the target communication object number range that the number of communication objects corresponding to the target grid element falls into from multiple communication object number ranges;

[0143] Based on the target communication object quantity range, the target communication volume weight information corresponding to the target communication object quantity range is determined from the communication volume weight information corresponding to the multiple communication object quantity ranges respectively;

[0144] The target communication volume weight information and the target computation volume weight information are jointly determined as the load weight information of the target grid element.

[0145] In some optional implementations, the architecture information includes sub-architecture information at multiple levels; the grouping module 520 is specifically used for:

[0146] Based on the sub-architecture information of each level and the load weight information of multiple grid elements, the grid elements included in the target grid file are grouped according to the hierarchy from high to low, resulting in multiple initial grid element groups.

[0147] Based on the load weight information and geometric information of the mesh elements included in multiple initial mesh element groups, a migration operation is performed on one or more mesh elements to obtain multiple mesh element groups to be calculated.

[0148] In some alternative implementations, the grouping module 520 is specifically used for:

[0149] Based on the load weight information and geometric information of the mesh elements included in the multiple initial mesh element groups, at least one candidate migration mesh element is selected from the mesh elements included in the target mesh file.

[0150] In the current iteration round, once it is determined that there are unmigrated candidate migration grid elements, one candidate migration grid element is selected from the unmigrated candidate migration grid elements as the target candidate migration grid element corresponding to the current iteration round.

[0151] After migrating the target candidate migration grid element from the grid element group to be migrated to the adjacent grid element group, multiple grid element groups are obtained corresponding to the current iteration round. Among them, the grid element group to be migrated is the grid element group to which the target candidate migration grid element belongs, and the adjacent grid element group is the grid element group that is adjacent to both the target candidate migration grid element and the grid element group to be migrated.

[0152] When determining that the current iteration is the last iteration based on the load weight information of the grid elements included in the multiple grid element groups corresponding to the current iteration and / or the current iteration number, the grid element group obtained in the last iteration is determined as the grid element group to be calculated.

[0153] Alternatively, if it is determined that the current iteration is not the last iteration based on the load weight information of the grid elements included in the multiple grid element groups corresponding to the current iteration and / or the current iteration number, proceed to the next iteration until the last iteration is determined. Then, the grid element group obtained after the migration operation of the last iteration is determined as the grid element group to be calculated.

[0154] In some alternative implementations, the grouping module 520 is specifically used for:

[0155] Based on the load weight information of the multiple mesh elements included in the target initial mesh element group, the total load weight information of the target initial mesh element group is determined, wherein the target initial mesh element group is any one of the multiple initial mesh element groups;

[0156] Once the total load weight information corresponding to the multiple initial mesh element groups is determined, at least one candidate migration mesh element is selected from the mesh elements included in the target mesh file based on the total load weight information corresponding to the multiple initial mesh element groups, the load weight information of the mesh elements included in the multiple initial mesh element groups, and the geometric information.

[0157] In some alternative implementations, the grouping module 520 is specifically used for:

[0158] Based on the total load weight information corresponding to the multiple initial grid element groups and the pre-acquired grid element group selection rules, select the grid element group to be migrated from the multiple initial grid element groups;

[0159] Based on the total load weight information corresponding to the multiple initial mesh element groups, and the load weight information and geometric information of the multiple mesh elements included in the mesh element group to be migrated, at least one candidate migration mesh element is selected from the mesh element group to be migrated.

[0160] In some optional implementations, based on the total load weight information corresponding to the multiple initial mesh element groups, and the load weight information and geometric information of the multiple mesh elements included in the mesh element group to be migrated, at least one candidate migration mesh element is selected from the mesh element group to be migrated, including:

[0161] Based on the geometric information of multiple mesh elements included in the mesh element group to be migrated, determine the multiple boundary mesh elements included in the mesh element group to be migrated;

[0162] Based on the load weight information corresponding to multiple boundary grid elements, at least one candidate migration grid element is selected from the multiple boundary grid elements.

[0163] For a description of the features of the computing node allocation device in the corresponding embodiment, please refer to the relevant description of the computing node allocation method in the corresponding embodiment, which will not be repeated here.

[0164] Embodiments of this application also provide an electronic device, such as... Figure 6 As shown, it includes a memory 10 and a processor 20. The memory 10 stores a computer program, and the processor 20 is configured to run the computer program to perform the steps in any of the above-described embodiments of the computing node allocation method.

[0165] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described embodiments of the computing node allocation method when running.

[0166] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0167] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above-described embodiments of the computing node allocation method.

[0168] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described embodiments of the computing node allocation method.

[0169] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0170] The foregoing has provided a detailed description of a computing node allocation method, apparatus, electronic device, storage medium, and program product provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are merely for the purpose of helping to understand the method and core ideas of this application. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of this application.

Claims

1. A method for allocating computing nodes, characterized in that, include: The target mesh file, weight information allocation rules, and architecture information of the target computing cluster are obtained. The target mesh file includes mesh data of multiple mesh elements, and the target computing cluster includes multiple computing nodes. The mesh data includes at least the geometric information and element type of the mesh elements. Once it is determined that the grid data of the target grid element also includes the target physical variable value, the load weight information of the target grid element is determined according to the target physical variable value and the weight information allocation rule, wherein the target grid element is any one of the multiple grid elements; Once the load weight information corresponding to each of the multiple mesh elements is determined, the mesh elements included in the target mesh file are grouped according to the architecture information, as well as the geometric information and load weight information of the multiple mesh elements, to obtain multiple groups of mesh elements to be calculated. Among them, the grid data of multiple grid elements included in a grid element group to be calculated constitutes a grid domain corresponding to the grid element group to be calculated; Each of the grid domains is assigned a computing node, which is used by each computing node to perform computing operations on the grid data of the grid elements in the grid domain assigned to it, based on pre-acquired computing task information.

2. The method for allocating computing nodes according to claim 1, characterized in that, The method further includes: Once it is determined that the grid data of the target grid element does not include the target physical variable value, the load weight information of the target grid element is determined according to the element type and the weight information allocation rule.

3. The method for allocating computing nodes according to claim 2, characterized in that, The weighting information allocation rule includes multiple physical variable value ranges and computational weight information corresponding to each of the multiple physical variable value ranges; when the grid data of the target grid element is determined to also include target physical variable values, the load weight information of the target grid element is determined according to the target physical variable values ​​and the weighting information allocation rule, including: Based on the target physical variable value, determine the target physical variable value range into which the target physical variable value falls among multiple ranges of physical variable values; Based on the target physical variable value range, the target computational weight information corresponding to the target physical variable value range is determined from the computational weight information corresponding to the multiple physical variable value ranges respectively. The target computational weight information is directly determined as the load weight information of the target grid element.

4. The method for allocating computing nodes according to claim 3, characterized in that, The weight information allocation rule also includes multiple communication object quantity ranges and communication volume weight information corresponding to each of the multiple communication object quantity ranges; the method further includes: Obtain the number of communication objects corresponding to each of the multiple grid elements; Based on the number of communication objects corresponding to the target grid element, determine the target communication object number range into which the number of communication objects corresponding to the target grid element falls from multiple communication object number ranges; Based on the target communication object quantity range, the target communication volume weight information corresponding to the target communication object quantity range is determined from the communication volume weight information corresponding to the multiple communication object quantity ranges respectively; The target communication volume weight information and the target computation volume weight information are jointly determined as the load weight information of the target grid element.

5. The method for allocating computing nodes according to any one of claims 2 to 4, characterized in that, The architecture information includes sub-architecture information at multiple levels; after determining the load weight information corresponding to each of the multiple mesh elements, the mesh elements included in the target mesh file are grouped according to the architecture information, as well as the geometric information and load weight information of the multiple mesh elements, to obtain multiple groups of mesh elements to be calculated, including: According to the hierarchy from high to low, based on the sub-architecture information of each level and the load weight information of multiple mesh elements, the mesh elements included in the target mesh file are grouped to obtain multiple initial mesh element groups. Based on the load weight information and geometric information of the mesh elements included in the multiple initial mesh element groups, a migration operation is performed on one or more mesh elements to obtain multiple mesh element groups to be calculated.

6. The method for allocating computing nodes according to claim 5, characterized in that, The process involves performing a migration operation on one or more mesh elements based on the load weight information and geometric information of the mesh elements included in the plurality of initial mesh element groups, resulting in a plurality of mesh element groups to be calculated, including: Based on the load weight information and geometric information of the mesh elements included in the multiple initial mesh element groups, at least one candidate migration mesh element is selected from the mesh elements included in the target mesh file. In the current iteration round, once it is determined that there are unmigrated candidate migration grid elements, one candidate migration grid element is selected from the unmigrated candidate migration grid elements as the target candidate migration grid element corresponding to the current iteration round. After migrating the target candidate migration grid element from the grid element group to be migrated to the adjacent grid element group, multiple grid element groups corresponding to the current iteration round are obtained. The grid element group to be migrated is the grid element group to which the target candidate migration grid element belongs, and the adjacent grid element group is the grid element group that is adjacent to both the target candidate migration grid element and the grid element group to be migrated. When the current iteration round is determined to be the last iteration round based on the load weight information of the grid elements included in the multiple grid element groups corresponding to the current iteration round and / or the current iteration number, the grid element group obtained in the last iteration round is determined as the grid element group to be calculated. Alternatively, if it is determined that the current iteration is not the last iteration based on the load weight information of the grid elements included in the multiple grid element groups corresponding to the current iteration and / or the current iteration number, the next iteration is entered until the last iteration is determined. Then, the grid element group obtained after the migration operation of the last iteration is determined as the grid element group to be calculated.

7. The method for allocating computing nodes according to claim 6, characterized in that, The step of selecting at least one candidate migration mesh element from the mesh elements included in the target mesh file based on the load weight information and geometric information of the mesh elements included in the plurality of initial mesh element groups includes: Based on the load weight information of multiple mesh elements included in the target initial mesh element group, the total load weight information of the target initial mesh element group is determined, wherein the target initial mesh element group is any one of the multiple initial mesh element groups; After determining the total load weight information corresponding to the multiple initial mesh element groups, at least one candidate migration mesh element is selected from the mesh elements included in the target mesh file based on the total load weight information corresponding to the multiple initial mesh element groups, the load weight information and geometric information of the mesh elements included in the multiple initial mesh element groups.

8. The method for allocating computing nodes according to claim 7, characterized in that, After determining the total load weight information corresponding to each of the multiple initial mesh element groups, at least one candidate migration mesh element is selected from the mesh elements included in the target mesh file based on the total load weight information corresponding to each of the multiple initial mesh element groups, the load weight information and geometric information of the mesh elements included in each of the multiple initial mesh element groups, including: Based on the total load weight information corresponding to the multiple initial grid element groups and the pre-acquired grid element group selection rules, select the grid element group to be migrated from the multiple initial grid element groups; Based on the total load weight information corresponding to the multiple initial mesh element groups, and the load weight information and geometric information of the multiple mesh elements included in the mesh element group to be migrated, at least one candidate migration mesh element is selected from the mesh element group to be migrated.

9. The method for allocating computing nodes according to claim 8, characterized in that, The step of selecting at least one candidate migration mesh element from the group of mesh elements to be migrated, based on the total load weight information corresponding to the multiple initial mesh element groups and the load weight information and geometric information of the multiple mesh elements included in the group of mesh elements to be migrated, includes: Based on the geometric information of the multiple mesh elements included in the mesh element group to be migrated, determine the multiple boundary mesh elements included in the mesh element group to be migrated; Based on the load weight information corresponding to the multiple boundary grid elements, at least one candidate migration grid element is selected from the multiple boundary grid elements.

10. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the computing node allocation method as described in any one of claims 1 to 9 when executing the computer program.

Citation Information

Patent Citations

  • Load distribution method, device and system for numerical reservoir simulation

    CN120508403A