Supercomputer-oriented high scalability mesh generation method, device, equipment and medium
By dividing the surface mesh connected domain of the target model into sub-mesh connected domains and using hash functions and connected surface identifiers to generate meshes in a multi-node environment, the problem of low mesh generation efficiency for high-complexity models is solved, and efficient parallel mesh merging and writing are achieved, which is suitable for high-resolution mesh generation in supercomputing environments.
Patent Information
- Application Number
- CN202511159239.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-19
- Publication Date
- 2025-11-11
- Estimated Expiration
- 2045-08-19
AI Technical Summary
Existing technologies suffer from excessive memory consumption, low mesh generation efficiency, and low connection surface merging efficiency when generating meshes for highly complex, large-size models. This limits the efficiency of parallel generation and makes it difficult to achieve rapid construction of high-resolution meshes in a distributed cluster of supercomputers.
The overall surface mesh of the target model is divided into multiple sub-mesh connected domains. A hash function is used to generate connection surface identifiers. Volume meshing and connection surface data processing are performed on multiple computing nodes. A connection surface mesh point number mapping table is constructed, and duplicate mesh points and surface mesh cells are deleted to achieve parallel writing of the overall mesh file.
It improves the efficiency of merging connected surfaces, enhances the generation efficiency and scalability of high-resolution meshes in complex scenarios, solves the bottleneck problem of mesh generation, and is suitable for large-scale mesh generation in supercomputing environments.
Smart Images

Figure CN120747418B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer technology, and in particular to a highly scalable grid generation method, apparatus, device, and medium for supercomputing. Background Technology
[0002] Explosion problems typically involve complex flow dynamics, such as shock wave propagation, matter interactions, and energy release. To accurately capture these intricate structures, numerical simulations require high-resolution meshes to detail the physical phenomena during an explosion. Large-scale mesh models provide sufficient resolution during numerical simulations, allowing the mesh to closely approximate the real physical scene in terms of size and structural detail. Furthermore, explosion simulations often involve large spatial scales and strong nonlinear effects, causing physical quantities (such as pressure, temperature, and velocity) to change drastically in space and time. To accurately simulate these changes, sufficiently dense mesh points must capture the gradients and rates of change of these physical quantities. To ensure the accuracy and reliability of the numerical simulation, large-scale mesh models are needed to provide the required mesh point density.
[0003] However, related technologies typically use a single-unit model to directly generate volumetric meshes. But when dealing with highly complex, large-sized models, this approach easily leads to excessive memory consumption, low mesh generation efficiency, and bottlenecks in mesh quantity generation. Parallel generation suffers from low efficiency in merging connection surfaces, causing some nodes to wait for extended periods, thus limiting overall parallel efficiency. Simultaneously, connection surface identification is inefficient, and the merging phase often relies on global search, easily causing bottlenecks such as high communication overhead and processing latency, hindering the rapid construction of the global mesh. These problems also exist in the distributed clusters of supercomputers, severely limiting the generation efficiency and scalability of high-resolution meshes in complex scenarios. Summary of the Invention
[0004] To address the aforementioned technical issues, this disclosure provides a highly scalable grid generation method, apparatus, device, and medium for supercomputing.
[0005] This disclosure provides a highly scalable grid generation method for supercomputing, the method comprising:
[0006] Obtain multiple sub-mesh connected components of the target model; wherein, the multiple sub-mesh connected components are obtained based on the overall surface mesh connected components of the target model, each sub-mesh connected component includes a connection surface shared with its adjacent sub-mesh connected components and a connection surface identifier of the connection surface, the connection surface identifier is obtained by processing the target data block based on a hash function, the target data block is a data block generated after standardizing the global number sequence of global number points including a second preset number of grid points obtained by sorting the global numbers of each grid point in the first preset number of surface mesh units of the corresponding connection surface;
[0007] The multiple sub-mesh connected components are sent to multiple computing nodes respectively; wherein, the computing nodes are used to perform volume meshing on the received sub-mesh connected components to obtain a mesh data file;
[0008] The system receives connection surface data sent by the multiple computing nodes respectively, and constructs a connection surface grid point number mapping table based on the connection surface data; wherein, the connection surface grid point number mapping table includes the connection surface identifier, the global number of each grid point in the connection surface, and the correspondence between the numbers generated by the computing nodes for each grid point and each surface grid cell in the connection surface;
[0009] Based on the connection surface grid point number mapping table, duplicate grid points and duplicate surface grid cells are deleted to obtain merged connection surface data. The merged connection surface data is then sent to the corresponding computing nodes so that each computing node obtains a grid data file without duplicate grid points and duplicate surface grid cells, and then completes the writing of the overall grid file of the target model in parallel.
[0010] This disclosure also provides a highly scalable grid generation device for supercomputing, the device comprising:
[0011] An acquisition module is used to acquire multiple sub-mesh connected regions of a target model; wherein, the multiple sub-mesh connected regions are obtained based on the overall surface mesh connected regions of the target model, each sub-mesh connected region includes a connection surface shared with its adjacent sub-mesh connected regions and a connection surface identifier of the connection surface, the connection surface identifier is obtained by processing the target data block based on a hash function, and the target data block is a data block generated after standardizing the global number sequence of global numbers including a second preset number of grid points obtained by sorting the global numbers of each grid point in a first preset number of surface mesh units corresponding to the connection surface;
[0012] The first sending module is used to send the plurality of sub-mesh connected components to a plurality of computing nodes respectively; wherein, the computing nodes are used to perform volume meshing on the received sub-mesh connected components to obtain a mesh data file;
[0013] The first receiving module is used to receive the connection surface data sent by the multiple computing nodes respectively, and construct a connection surface grid point number mapping table based on the connection surface data; wherein, the connection surface grid point number mapping table includes the connection surface identifier, the global number of each grid point in the connection surface, and the correspondence between the numbers generated by the computing nodes for each grid point and each surface grid cell in the connection surface;
[0014] The deletion module is used to delete duplicate grid points and duplicate surface grid cells based on the connection surface grid point number mapping table to obtain merged connection surface data. The merged connection surface data is then sent to the corresponding computing nodes so that each computing node obtains a grid data file without duplicate grid points and duplicate surface grid cells, and then completes the writing of the overall grid file of the target model in parallel.
[0015] This disclosure also provides an electronic device, the electronic device comprising: a processor; a memory for storing executable instructions of the processor; the processor being configured to read the executable instructions from the memory and execute the executable instructions to implement the highly scalable grid generation method for supercomputing as provided in this disclosure.
[0016] This disclosure also provides a computer-readable storage medium storing a computer program for executing the highly scalable grid generation method for supercomputing provided in this disclosure.
[0017] This disclosure also provides a computer program product, which includes a computer program / instruction that, when executed by a processor, implements the highly scalable grid generation method for supercomputing described in this disclosure.
[0018] The technical solution provided in this disclosure has the following advantages compared with the prior art: The highly scalable grid generation scheme for supercomputing provided in this disclosure obtains multiple sub-grid connected domains of the target model; wherein, the multiple sub-grid connected domains are obtained based on the overall surface grid connected domains of the target model, and each sub-grid connected domain includes a connection surface shared with its adjacent sub-grid connected domains and a connection surface identifier of the connection surface. The connection surface identifier is obtained by processing the target data block based on a hash function. The target data block is a data block generated after standardizing the global number sequence of global numbers of grid points in a first preset number of surface grid cells corresponding to the connection surface, which is then sorted. The multiple sub-grid connected domains are sent to multiple computing nodes respectively; wherein... The compute nodes are used to perform volume meshing on the received sub-mesh connected domains to obtain mesh data files. They also receive connection surface data sent by multiple compute nodes and construct a connection surface mesh point number mapping table based on the connection surface data. The connection surface mesh point number mapping table includes the connection surface identifier, the global number of each mesh point in the connection surface, and the correspondence between the numbers generated by the compute nodes for each mesh point and each face mesh cell in the connection surface. Based on the connection surface mesh point number mapping table, duplicate mesh points and duplicate face mesh cells are deleted to obtain merged connection surface data. The merged connection surface data is then sent to the corresponding compute nodes so that each compute node obtains a mesh data file without duplicate mesh points and duplicate face mesh cells, and then writes the overall mesh file of the target model in parallel. By adopting the above technical solution, in the initial surface meshing stage, a connection surface identifier is constructed based on the global number of each grid point in the preset number of surface mesh cells of the connection surface. This allows for the rapid identification of connection surfaces with the same identifier, improving the identification efficiency of the connection surface. Furthermore, a connection surface grid point number mapping table is constructed based on the connection surface data to delete duplicate grid points and duplicate surface mesh cells, resulting in merged connection surface data. The merged connection surface data is then sent to the corresponding computing nodes, enabling each computing node to obtain a mesh data file without duplicate grid points and duplicate surface mesh cells. This allows for the parallel writing of the overall mesh file of the target model, improving the efficiency of connection surface merging. The merging of connection surfaces does not depend on global search, thus improving the generation efficiency and scalability of high-resolution meshes in complex scenes. Attached Figure Description
[0019] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent when taken in conjunction with the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and the originals and elements are not necessarily drawn to scale.
[0020] Figure 1A flowchart illustrating a highly scalable grid generation method for supercomputing provided in this embodiment of the disclosure;
[0021] Figure 2 A schematic diagram of a surface mesh partitioning provided in an embodiment of this disclosure;
[0022] Figure 3 A schematic diagram illustrating the overall mesh connectivity partitioning and individual sub-mesh connectivity provided in an embodiment of this disclosure;
[0023] Figure 4 A schematic diagram illustrating the allocation of sub-mesh connected domains provided in an embodiment of this disclosure;
[0024] Figure 5 This is a schematic diagram illustrating parallel writing of a global mesh file according to an embodiment of the present disclosure;
[0025] Figure 6 This is a schematic diagram of the overall model shape provided in an embodiment of the present disclosure;
[0026] Figure 7 A schematic diagram of an overall model partitioning provided in an embodiment of this disclosure;
[0027] Figure 8 A schematic diagram of a model body mesh provided in an embodiment of this disclosure;
[0028] Figure 9 A schematic diagram of a highly scalable grid generation device for supercomputing provided in this embodiment of the present disclosure;
[0029] Figure 10 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure. Detailed Implementation
[0030] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0031] It should be understood that the steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect.
[0032] The term "comprising" and its variations as used herein are open-ended inclusions, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below.
[0033] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.
[0034] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0035] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.
[0036] Example 1:
[0037] To address the aforementioned issues, this disclosure provides a highly scalable grid generation method for supercomputing, which will be described below with reference to specific embodiments.
[0038] Figure 1 This is a flowchart illustrating a highly scalable grid generation method for supercomputing, provided in an embodiment of this disclosure. This method can be executed by a highly scalable grid generation device for supercomputing, which can be implemented in software and / or hardware and is generally integrated into an electronic device. Figure 1 As shown, the method includes:
[0039] Step 101: Obtain multiple sub-mesh connected regions of the target model; wherein, the multiple sub-mesh connected regions are obtained based on the overall surface mesh connected regions of the target model. Each sub-mesh connected region includes the connection surface shared by its adjacent sub-mesh connected regions and the connection surface identifier of the connection surface. The connection surface identifier is obtained by processing the target data block based on a hash function. The target data block is a data block generated after standardizing the global number sequence of global numbers of grid points in the first preset number of surface mesh units corresponding to the connection surface and the result is obtained by sorting the global numbers of the grid points in the first preset number of surface mesh units corresponding to the connection surface.
[0040] The highly scalable grid generation method for supercomputing provided in this disclosure can be applied to master nodes in distributed clusters, such as nodes in a distributed cluster of a supercomputer.
[0041] The target model can be a model that requires mesh generation, such as a highly complex, large-scale geometric model, like a model with a mesh scale of tens of billions or more. A sub-mesh connected region refers to a closed region obtained by dividing the overall surface mesh of the target model, whose boundary includes connecting surfaces shared with other sub-mesh connected regions. The overall surface mesh connected region of the target model can be a mesh connected region generated by dividing the target model into surface meshes using relevant software based on the mesh reference size and surface mesh type. A connecting surface can be a surface between adjacent sub-mesh connected regions, or it can be an internal surface. A connecting surface identifier is a characteristic marker of the connecting surface, such as a globally unique hash identifier used to identify the connecting surface. The first preset quantity can be a pre-set number of surface mesh units, such as 3. A surface mesh unit is a basic unit used to discretize the connecting surface, such as a triangular unit, a quadrilateral unit, etc., which are not limited in this embodiment. A mesh point is a vertex of a mesh unit. A global number can be assigned a unique global number to each mesh point by scanning the mesh point table of the overall surface mesh connected region of the target model in advance. The global number can be 0, 1, 2, ..., and this global number remains unchanged on any computing node, used for subsequent hash calculations and cross-node mapping. The second preset quantity can be a pre-set number of grid points to construct the global number sequence, such as 9. The global number sequence can be a set formed by arranging the global numbers of the second preset quantity of grid points in a certain order, such as ascending or descending.
[0042] To facilitate understanding of the above steps, we will first provide a detailed introduction to the overall surface mesh of the target model, the connected domains of multiple sub-mesh, the connection surfaces, and the generation process of the connection surfaces.
[0043] Step 1: Import the target model and generate the surface mesh.
[0044] First, import the geometric file of the target model (such as STP, IGES, etc.) into the relevant processing software, select the mesh type (such as triangular face mesh or quadrilateral face mesh), and set key parameters according to the dimensions of the geometric features, such as setting the basic size of the mesh, minimum surface size, etc. Then, perform face mesh generation and use a mesh quality inspection tool to check the mesh, such as checking for puncture surfaces, free edges, T-shaped edges, and disconnected mesh points. Finally, divide the overall face mesh into a connected domain, that is, the overall face mesh connected domain of the target model.
[0045] For example, a 100 million-grid generation embodiment for an oil storage base is used. Larger-scale grid generation embodiments follow a similar process, differing only in grid size and the number of partitions. Assuming the target model's spatial dimensions are a cube with length, width, and height of 1850m, 1600m, and 300m respectively, the target model's geometry file is imported into the relevant processing software. The mesh type is selected as a triangular network, and the mesh reference size is set to 5mm. Face mesh generation is then performed to generate the overall face mesh connected domain of the target model.
[0046] Step 2: Generation of surface mesh partitioning and connection surfaces.
[0047] Because the target model is complex and has a large number of meshes, the overall surface mesh connectivity of the target model is divided into multiple small blocks or regions, such as... Figure 2 As shown, Figure 2 This embodiment of the present disclosure provides a schematic diagram of a surface mesh partitioning. Taking one surface in the overall surface mesh connected domain as an example, this surface is divided into 6 regions, namely region 1, region 2... region 6. The surfaces between adjacent regions are called internal surfaces, i.e., connecting surfaces. For example, the surface between region 1 and region 2 is a connecting surface. Specifically, the spatial positions of the meshes on both sides of the connecting surface are corresponding, that is, the spatial positions of the mesh points on both sides coincide. Taking the connecting surface between region 1 and region 2 as an example, this connecting surface is divided into f1-f10 mesh points. The length, width, and height of the overall surface mesh connected domain of the target model are statistically analyzed. Based on the required number of divisions, the length, width, and height are equally divided to make the number of surface meshes after division approximately equal.
[0048] The mesh splitting tool is used to divide the overall surface mesh of the target model into n approximately equal regions. The surfaces between different regions are defined as connecting surfaces, and non-overlapping parts are set as solid boundaries. The connecting surfaces are copied into two parts, connecting surface-left and connecting surface-right, and then these two parts are assigned to the left and right regions, respectively. For example... Figure 2 As shown, the connecting surface - left is assigned to region 4, and the connecting surface - right is assigned to region 5. Connecting the mesh points makes the divided regions form a complete connected domain (i.e., a sub-mesh connected domain). This allows for concurrent meshing of different regions on different computation nodes, and also allows for flexible definition of mesh requirements such as the minimum mesh size for different regions, ensuring high-resolution and detailed features of the model.
[0049] For example, Figure 3 This is a schematic diagram of overall mesh connectivity partitioning and individual sub-mesh connectivity provided in an embodiment of this disclosure, as shown below. Figure 3As shown, the length, width, and height of the overall surface mesh connected domain of the target model are divided into three parts each. The connected domain is then divided from the dividing points, resulting in 27 sub-mesh connected domains. These 27 sub-mesh connected domains can be labeled as sub-mesh connected domain 1, sub-mesh connected domain 2, sub-mesh connected domain 3…sub-mesh connected domain 27. Taking sub-mesh connected domain 1 as an example, it has three corresponding connecting surfaces: connecting surface 1, connecting surface 2, and connecting surface 3. The connecting surfaces between the 27 sub-mesh connected domains are defined as connecting surface 1, connecting surface 2, connecting surface 3, and connecting surface N. The remaining surfaces not connected to other domains are defined as solid boundary walls.
[0050] Before processing the connecting surfaces, the grid point table of the overall surface mesh connected domain of the target model is first scanned, and each grid point is assigned a unique global number in sequence. This global number remains unchanged on any computing node and is used for subsequent hash calculations and cross-node mapping. After completing the assignment of global numbers, each connecting surface is copied and assigned to its two adjacent regions, forming 27 independent surface mesh connected domains (i.e., sub-mesh connected domains). The mesh structure within each sub-mesh connected domain is closed, which is suitable for parallel volume mesh generation and subsequent region stitching.
[0051] Step 3: Construct the connection surface identifier.
[0052] In the initial surface mesh construction stage before volume mesh generation, all connecting surfaces are identified, and a globally unique identifier (i.e., connecting surface identifier) is generated for each connecting surface. Since each connecting surface is topologically defined by a set of globally numbered grid points, the connecting surface identifier is generated by sorting the globally numbered grid points that make up the connecting surface using a standard method and then inputting the sorted identifier into a hash function. This ensures that consistent identifiers are generated across different computing nodes for subsequent efficient matching and merging. The generated connecting surface identifier is embedded in the connecting surface's data structure and distributed as a surface attribute along with the data to the connected domains of each sub-mesh participating in the parallel volume mesh generation.
[0053] For example, taking a face mesh element as a triangle element, with a first preset quantity of 3 and a second preset quantity of 9, the global numbers of the mesh points of all its triangle elements are obtained for any connected face. The global numbers of the three mesh points of each triangle element are rearranged in ascending order to obtain a triplet, as shown below. Sort all triples lexicographically, select the first 3 triangular units in the sequence, and denote them as the representative triangular unit set. There are 9 global IDs for its grid points. If a duplicate value is encountered, only the global ID of the first occurrence is retained, and the search continues from the sorted triangular unit sequence to find new grid points until all 9 global IDs are collected. Sort the 9 global IDs again in ascending order to obtain a fixed-length integer sequence, such as... (i.e., the aforementioned global number sequence). Each global number is converted sequentially into a 4-byte unsigned integer in little-endian byte order (i.e., normalization), and the two are concatenated to obtain a 36-byte input data block (i.e., the aforementioned target data block). Using this 36-byte data block as input to the hash function, the output 32-bit unsigned integer is the connection identifier for the corresponding connection surface. The connection identifier is written into a dedicated field of the current connection surface data structure and distributed synchronously to each parallel computing node along with the grid data of the sub-grid connected domains.
[0054] Step 102: Send multiple sub-mesh connected components to multiple computing nodes respectively; wherein, the computing nodes are used to perform volume meshing on the received sub-mesh connected components to obtain mesh data files.
[0055] In this embodiment of the disclosure, the computing node can be an independent processing unit in a distributed computing architecture responsible for executing specific computing tasks. The grid data file is a file that stores grid information after the computing node has completed the volume grid partitioning for the sub-grid connected components. Specifically, the master node can send the aforementioned multiple sub-grid connected components to multiple computing nodes according to the principle of average distribution, so that each computing node can immediately generate a local volume grid.
[0056] For example, such as Figure 4 As shown, Figure 4 This is a schematic diagram illustrating the allocation of sub-mesh connected domains according to an embodiment of this disclosure. Assuming there are 8 computing nodes, the master node distributes the aforementioned 27 sub-mesh connected domains to the 8 computing nodes, so that each node performs volume meshing on its corresponding sub-mesh connected domain to obtain the corresponding mesh data file. For example, computing node 1 is used to perform volume meshing on sub-mesh connected domain 1 to sub-mesh connected domain 4 to obtain mesh data file 1 to mesh data file 4.
[0057] In the process of constructing a volume mesh by processing multiple sub-mesh connected domains in parallel on multiple computing nodes, each computing node receives face data containing connection face identifiers and incorporates it into the local volume mesh generation process. For each sub-mesh connected domain, the computing node retains the connection face identifiers of its connected faces without modification, ensuring that copies belonging to the same pair of connected faces can be identified based on the connection face identifiers in the future.
[0058] Step 103: Receive connection surface data sent by multiple computing nodes respectively, and construct a connection surface grid point number mapping table based on the connection surface data; wherein, the connection surface grid point number mapping table includes the connection surface identifier, the global number of each grid point in the connection surface, and the correspondence between the numbers generated by the computing nodes for each grid point and each surface grid cell in the connection surface.
[0059] The connection surface data includes the connection surface identifier, the 3D coordinates of each grid point in the connection surface, and the numbers generated by the computation nodes for each grid point and each face grid cell in the connection surface. Specifically, the connection surface data can be unmerged connection surface data. The 3D coordinates of each grid point in the connection surface can be the geometric position coordinates of the grid point, usually represented as (x, y, z). The numbers generated by the computation nodes for each grid point and each face grid cell in the connection surface refer to the grid points and face grid cells that each computation node automatically assigns numbers to during the local mesh generation process within the connected domain of the sub-mesh.
[0060] In this embodiment of the disclosure, each computing node packages all the connected surface data of its own computing node in units of sub-mesh connected domains and sends them to the master node, so that the master node can collect the unmerged connected surface data from each computing node and construct a connected surface mesh point mapping table based on the connected surface data.
[0061] In this embodiment of the disclosure, since the computing node renumbers each grid point and each grid cell during the grid division of the sub-grid connected domain, a connection surface grid point numbering mapping table is constructed. Based on the correspondence between the connection surface identifier, the global number of each grid point in the connection surface, and the number generated by the computing node for each grid point and each grid cell in the connection surface included in the connection surface grid point numbering mapping table, duplicate grid points and duplicate grid cells under the same connection surface identifier are determined, which facilitates the subsequent deletion of duplicate grid points and duplicate grid cells under the same connection surface identifier.
[0062] In one optional implementation, the above-mentioned receiving of connection surface data sent by multiple computing nodes and constructing a connection surface grid point number mapping table based on the connection surface data includes: constructing a hash table with the connection surface identifier as the key; inserting each piece of connection surface data into the hash table in the order of receipt; if the number of connection surfaces corresponding to the same connection surface identifier is 2, then determining that the two connection surfaces under the same connection surface identifier are the same connection surface; establishing the correspondence between the connection surface identifier, the global number of each grid point in the connection surface, and the number generated by the computing node for each grid point and each surface grid cell in the connection surface under the same connection surface identifier, as the connection surface grid point number mapping table.
[0063] In this embodiment, the master node constructs a hash table using the connection surface identifier as the key. Each surface record (i.e., connection surface data) is inserted into the hash table in the order of receipt. When the number of records corresponding to the same key reaches two, it indicates that the same connection surface has been found. Thus, a correspondence is established between the connection surface identifier, the global number of each grid point in the connection surface, and the numbers generated by the computing node for each grid point and each surface grid cell under the same connection surface identifier, serving as a connection surface grid point number mapping table. Therefore, this embodiment proposes a method for efficient pairing of parallel body grid connection surfaces and synchronous updating of grid node numbers based on a combination of connection surface identifiers and hash mapping structures. By generating a globally unique connection surface identifier based on the global number set of grid points constituting the connection surface during the initial surface grid stage, consistent identification and efficient pairing of connection surfaces across subdomains are achieved, improving the identification efficiency of connection surfaces.
[0064] In one optional implementation, if there are two connecting surfaces corresponding to the same connecting surface identifier, then the two connecting surfaces under the same connecting surface identifier are determined to be the same connecting surface. This includes: if there are two connecting surfaces corresponding to the same connecting surface identifier, then for a set of connecting surfaces to be matched under the same connecting surface identifier, the grid points of the two connecting surfaces in the connecting surfaces to be matched are sorted according to a preset rule, and the three-dimensional coordinate difference of the grid points corresponding to the two connecting surfaces in the connecting surfaces to be matched is compared point by point. If the difference is less than or equal to a preset threshold, then the two connecting surfaces are determined to be the same connecting surface.
[0065] Here, "connecting surfaces to be matched" refers to two connecting surfaces under the same connecting surface identifier that need to be verified as the same connecting surface. The preset rule can be a pre-set rule for sorting the grid points in the connecting surfaces, such as ascending or descending order. The preset threshold refers to the maximum permissible spatial distance error used to determine the consistency of the grid point positions of two connecting surfaces. For example, the preset threshold can be set to... m.
[0066] In this embodiment, the master node constructs a hash table using the connection face identifier as the key. Each face record (i.e., connection face data) is inserted into the hash table in the order of receipt. When the number of records corresponding to the same key reaches two, it is determined that the key has found a matching connection face (i.e., a pair of connecting faces to be matched) and proceeds to the next step. The list of grid points for each successfully matched connection face is extracted. First, the vertices of the two connection faces are sorted according to a preset rule (e.g., ascending order of x, y, z coordinates). Then, the sorted vertex pairs are compared one by one, based on whether the spatial distance (e.g., the aforementioned three-dimensional coordinate difference) is within the tolerance range (i.e., the aforementioned preset threshold). If the spatial distance is less than or equal to... m determines whether it is a corresponding point. For example, compare the 3D coordinate differences of corresponding grid points on two connected surfaces point by point. If the distance between all grid points is ≤ m, then the corresponding point is considered. If m is found, then the two surfaces are confirmed to be the same connecting surface. If any grid point is out of tolerance, the surface is recorded in the "Geometric Conflict Table" for subsequent manual inspection. For each pair of successfully matched grid points, its point number in the two grid points is recorded. Finally, a mapping table of grid point numbers for a pair of connecting surfaces in the same connecting surface identifier (i.e., the connecting surface grid point number mapping table) is established to provide a consistent index relationship for subsequent grid cell number reconstruction and data merging.
[0067] As can be seen, the embodiments disclosed herein effectively solve key technical problems such as inconsistent identification of connection surfaces, inconsistent grid point numbers, and difficulties in cleaning up redundant grids during large-scale parallel mesh stitching. By constructing a unique identifier for connection surfaces based on the global number of grid points (i.e., connection surface identifier), combined with an efficient hash mapping and tolerance judgment mechanism, consistent identification of cross-subdomain connection surfaces and automatic construction of point-pair mapping relationships are achieved. This mechanism does not rely on geometric coordinate matching, avoids the risk of mismatch due to floating-point precision errors, and significantly improves the stability and automation of mesh merging.
[0068] During the mesh merging phase, a hash table is used to quickly match connected surfaces with the same connection surface identifier. Precise point-to-point mapping relationships are established through mesh point sorting and tolerance checks, completing the unification of point numbers and the removal of redundant surfaces. This effectively solves key problems in parallel mesh merging, such as difficulties in connecting surface identification, inconsistent point numbers, and redundant data cleanup, significantly improving the automation level and data consistency of large-scale mesh stitching.
[0069] Step 104: Based on the connection surface grid point number mapping table, delete duplicate grid points and duplicate surface grid cells to obtain merged connection surface data. Send the merged connection surface data to the corresponding computing nodes so that each computing node obtains a grid data file without duplicate grid points and duplicate surface grid cells, and then completes the writing of the overall grid file of the target model in parallel.
[0070] The merged connection surface data refers to the connection surface data obtained after deleting duplicate grid points and duplicate surface grid cells based on the connection surface grid point number mapping table during the connection surface merging process.
[0071] In this embodiment of the disclosure, the master node deletes duplicate connection surfaces (i.e., duplicate points and duplicate surface grid cells) according to the connection surface grid point number mapping table, releases redundant storage, and finally constructs a unified global grid to ensure the consistency of connection surface pairing and the uniqueness and correctness of grid point numbers.
[0072] In one optional implementation, after obtaining the mesh data file containing unique mesh points and unique surface mesh cells, each computing node renumbers each mesh point, surface mesh cell, and volume mesh cell in its corresponding mesh data file to ensure that the numbering is continuous and globally unique. For example, the mesh points, surface mesh cells, and volume mesh cells can be renumbered according to their coordinate order, and the mesh point index of the corresponding mesh cell can be updated with the new mesh point number to ensure that the numbering is continuous and globally unique.
[0073] In one optional implementation, each computing node writes the mesh data files of non-repeating mesh points and non-repeating surface mesh cells in parallel to the corresponding file partition according to the row number interval based on the file partitioning strategy, so as to complete the writing of the overall mesh file of the target model in parallel.
[0074] The file partitioning strategy refers to the strategy of writing the grid data files of each unique grid point and unique surface grid cell to the corresponding file partition in parallel. The line number range is the range of consecutive lines corresponding to each file partition, used to limit the specific location of the data written to that file partition in the overall grid file. Its range is determined by the number of lines of the grid data file processed by the corresponding computing node.
[0075] To optimize file writing efficiency, the number of lines in each grid data file is calculated based on the number of grids, and parallel writing of the same grid file is achieved. Specifically, multiple computing nodes are used, each running an independent process to process multiple data blocks in parallel. Assume there are n nodes running n processes, each process responsible for writing the data blocks within its node to a specific region of the file. Figure 5 As shown, Figure 5 This is a schematic diagram illustrating parallel writing of a global mesh file according to an embodiment of the present disclosure, such as... Figure 5 As shown, assuming there are four computing nodes: N1, N2, N3, and N4, with N1 running process 1, N2 running process 2, N3 running process 3, and N4 running process 4, and the total number of lines in the overall mesh file of the target model is P4, the overall mesh file can be divided into four partitions. Process 1 corresponds to the first file partition, writing lines 1 to P1 of the overall mesh file; process 2 corresponds to the second file partition, writing lines P1 to P2, and so on. Specifically, point data, surface mesh element data, and volume mesh data from each computing node can be written to their respective file partitions. In this way, each process can process its corresponding file partition in parallel, achieving efficient simultaneous write operations and significantly reducing the overall mesh file write time.
[0076] For example, if each computing node obtains mesh data files with no repeating mesh points and no repeating surface mesh cells as Volume1, Volume2, Volume3…Volumn27, and the number of rows in the mesh data files is row1, row2, row3…row27, the overall mesh file is divided into 27 parts. The first process corresponds to the first file partition, writing the contents of Volume1 to lines 1 to row1 of the file; the second process corresponds to the second file partition, writing the contents of Volume2 to lines row1+1 to row2 of the file, and so on, completing the writing of the overall mesh file in parallel.
[0077] In related technologies, grid file writing typically employs a serial strategy, which is insufficient to handle data processing demands on the scale of hundreds of millions to tens of billions of cells. This has become a key bottleneck restricting the improvement of grid generation performance. However, the file partitioning strategy based on the estimation of the number of rows in the grid data proposed in this disclosure can realize a parallel partitioning writing mechanism for the same grid file by multiple computing nodes according to the row number interval. This effectively solves the writing bottleneck problem in large-scale grid data output and significantly improves writing efficiency and parallel scalability.
[0078] Taking real-world application scenarios as an example, Figure 6 This is a schematic diagram of the overall model shape provided in an embodiment of the present disclosure. Figure 6 After partitioning the geometric model corresponding to the model in the image, multiple sub-mesh connected components can be obtained, such as... Figure 7 As shown, Figure 7 This is a schematic diagram of an overall model partitioning provided in an embodiment of this disclosure. Further, each partition (i.e., a sub-mesh connected component) can be divided into volume meshes, and the volume meshes can be merged after partitioning to obtain the volume mesh of the overall model, as shown below. Figure 8 As shown, Figure 8 This is a schematic diagram of a model body mesh provided in an embodiment of this disclosure.
[0079] The highly scalable grid generation scheme for supercomputing provided in this embodiment obtains multiple sub-grid connected regions of a target model. These multiple sub-grid connected regions are obtained by dividing the overall surface grid connected regions of the target model. Each sub-grid connected region includes a connection surface shared with its adjacent sub-grid connected regions and a connection surface identifier. The connection surface identifier is obtained by processing the target data block using a hash function. The target data block is a data block generated after standardizing a global number sequence of grid points (including a second preset number of grid points) obtained by sorting the global numbers of each grid point in a first preset number of surface grid cells corresponding to the connection surface. The multiple sub-grid connected regions are then sent to multiple computing nodes. The computing nodes are used to process the received sub-grids... The connected domains are meshed to obtain a mesh data file. The master node receives the connected surface data sent by multiple computing nodes and constructs a connected surface mesh point number mapping table based on the connected surface data. The connected surface mesh point number mapping table includes the connected surface identifier, the global number of each mesh point in the connected surface, and the correspondence between the numbers generated by the computing nodes for each mesh point and each face mesh cell in the connected surface. Based on the connected surface mesh point number mapping table, duplicate mesh points and duplicate face mesh cells are deleted to obtain merged connected surface data. The merged connected surface data is then sent to the corresponding computing nodes so that each computing node obtains a mesh data file without duplicate mesh points and duplicate face mesh cells. After that, the overall mesh file of the target model is written in parallel. By adopting the above technical solution, in the initial surface meshing stage, a connection surface identifier is constructed based on the global number of each grid point in the preset number of surface mesh cells of the connection surface. This allows for the rapid identification of connection surfaces with the same identifier, improving the identification efficiency of the connection surface. Furthermore, a connection surface grid point number mapping table is constructed based on the connection surface data to delete duplicate grid points and duplicate surface mesh cells, resulting in merged connection surface data. The merged connection surface data is then sent to the corresponding computing nodes, enabling each computing node to obtain a mesh data file without duplicate grid points and duplicate surface mesh cells. This allows for the parallel writing of the overall mesh file of the target model, improving the efficiency of connection surface merging. The merging of connection surfaces does not depend on global search, thus improving the generation efficiency and scalability of high-resolution meshes in complex scenes.
[0080] The highly scalable mesh generation scheme for supercomputing provided in this disclosure divides the overall surface mesh connectivity of a complex geometric model (i.e., the target model) into multiple sub-mesh connectivity domains. In the distributed parallel environment of a supercomputer, multiple computing nodes generate partitioned volumetric meshes in parallel. Combined with partition-level quality repair and mesh stitching methods, high-quality, scalable large-scale mesh generation is achieved. By fully utilizing a multi-node cluster architecture and calling the local memory of each computing node through a communication mechanism, the memory pressure on a single computing node is effectively reduced. This overcomes the generation bottleneck of related software at mesh scales exceeding tens of billions, enabling the volumetric mesh generation capability to scale linearly with hardware resources. It is particularly suitable for large-scale simulation scenarios in complex environments.
[0081] The highly scalable mesh generation scheme for supercomputing provided in this disclosure divides the overall surface mesh connectivity of the target model into sub-mesh connectivity. For the segmented surface meshes, volume mesh generation and mesh quality repair are performed. Then, the generated segmented volume meshes are merged to complete the high-quality generation of the overall mesh. Since the volume meshes of a single partition are relatively few in number, they are easy to view, repair, and adjust, ensuring high mesh quality and guaranteeing that the generated volume mesh can capture and reflect the details and features of the target model at high resolution. By generating meshes in parallel across a large number of computing nodes, the number of meshes processed by a single computing node is reduced, lowering the memory consumption of each process during mesh generation. This successfully solves the memory bottleneck in large-scale mesh processing, overcomes the limitations of mesh size, and enables the processing of ultra-large-scale volume meshes with hardware support, making it suitable for a wider range of applications.
[0082] In some embodiments, during the parallel processing of multiple sub-mesh connected domains by multiple computing nodes, performance metrics reported by each computing node are received, and it is determined whether there are computing nodes with unbalanced loads based on the performance metrics. If there are computing nodes with unbalanced loads, a pause command is sent to multiple computing nodes so that each computing node enters a waiting state after the currently processed sub-mesh connected domain is completed. Unprocessed sub-mesh connected domains reported by multiple computing nodes are received, and the unprocessed sub-mesh connected domains are re-partitioned based on the number of unprocessed sub-mesh connected domains and the performance metrics of each computing node. The correspondence between each computing node and each unprocessed sub-mesh connected domain is determined, and the correspondence is sent to each computing node so that each computing node performs volume mesh partitioning of the unprocessed sub-mesh connected domains based on the correspondence. The performance metrics include at least one of memory utilization, volume mesh cell generation progress, and the number of currently unprocessed sub-mesh connected domains.
[0083] Performance metrics are indicators used to reflect the performance of computing nodes. These metrics may include at least one of the following: memory utilization, volume mesh cell generation progress, and the number of currently unprocessed sub-mesh connected components. Memory utilization refers to the percentage of physical memory used by a single computing node relative to the total available memory. Volume mesh cell generation progress refers to the processing progress of the current computing node within its allocated sub-mesh connected components (e.g., M out of N components completed), reflecting the completion rate of the volume mesh generation task for that sub-mesh connected component. The number of currently unprocessed sub-mesh connected components refers to the number of sub-mesh connected components that the current node has not yet processed. Unevenly loaded computing nodes can be those with mesh generation progress significantly below the average (e.g., below 80% of the average) or those with memory utilization significantly higher than other computing nodes (e.g., more than 20% higher).
[0084] In this embodiment, after receiving unprocessed sub-mesh connected components reported by multiple computing nodes, the master node re-divides the unprocessed sub-mesh connected components according to the number of unprocessed sub-mesh connected components and the performance indicators of each computing node. For example, the unprocessed sub-mesh connected components can be divided proportionally based on the performance indicators of each computing node. Furthermore, if the performance indicators of each computing node are similar (i.e., the difference in performance indicators between computing nodes is less than a preset difference), the unprocessed sub-mesh connected components can be evenly distributed among the corresponding computing nodes.
[0085] In this embodiment of the disclosure, during the parallel volume mesh generation stage, the pre-divided multiple sub-network connected regions, such as region 1, region 2... region M, are first evenly distributed across N computing nodes, so that each computing node initially obtains M / N sub-network connected regions. Each sub-network connected region serves as an independent volume mesh generation unit, independent of the state of other sub-network connected regions.
[0086] Each compute node initiates the volume mesh generation task for the connected sub-network domains in parallel. During the mesh generation process, each compute node periodically collects its local running status, including but not limited to memory usage, volume mesh cell generation progress, and the number of currently pending connected sub-network domains. Each compute node reports the above performance metrics to the master node via the communication interface.
[0087] The master node calculates the average load level of all computing nodes based on the collected performance metrics. If the mesh generation progress of some computing nodes is significantly slower than the average (e.g., below 80% of the average), or the memory usage is significantly higher than other computing nodes (e.g., more than 20% higher), it is determined that there is a load imbalance in the current partitioning. Once this determination is triggered, the system issues a task pause command, and all computing nodes enter a waiting state after the currently processed sub-mesh connectivity is completed, preparing to enter the next stage of task reallocation.
[0088] Each compute node reports the numbers of the unprocessed sub-mesh connected components to the master node. The master node can divide the sub-mesh connected components based on the number of unprocessed sub-mesh connected components from each compute node, or based on the load status of each compute node, or other methods. This embodiment does not impose any limitations on this method. After the re-division is completed, a new "sub-mesh connected component - compute node" allocation table is generated and synchronized to all compute nodes. Based on the new task allocation results, all compute nodes continue to start the volume mesh generation process. At this stage, the number of volume mesh cells generated locally by each compute node is more balanced, avoiding the situation where some compute nodes finish early and some compute nodes lag behind for a long time, significantly improving the parallel efficiency of overall mesh generation.
[0089] For example, the master node receives performance metrics reported by each compute node every 10 seconds. If a compute node's generation rate is lower than 80% of the global average, or its memory usage is higher than 20% of the average, the master node issues a "pause reallocation" command. Each compute node suspends itself after completing the currently processed sub-mesh connectivity and reports the numbers of the sub-mesh connectivity regions that have not yet started volume mesh generation to the master node. The master node then redistributes the remaining workload evenly among the 8 nodes and publishes a new mapping table of sub-mesh connectivity regions and compute nodes. The compute nodes resume volume mesh generation based on the new table until all sub-mesh connectivity regions are completed. This ensures that the load on all compute nodes always converges within ±20%, avoiding "tailing" phenomena, and ultimately generates 27 volume mesh files (i.e., the aforementioned mesh data files).
[0090] Therefore, to address the load imbalance problem, this embodiment of the present disclosure, through the aforementioned parallel volume mesh generation method based on dynamic performance monitoring and task reallocation mechanisms, introduces a mechanism for periodically collecting the local operating status of computing nodes and centrally analyzing the master node, based on the average distribution of connected sub-mesh regions. This allows for real-time monitoring of key performance indicators such as memory usage and mesh generation progress. When the system detects significant load imbalance, it automatically triggers a task pause and dynamic reallocation process for the remaining sub-regions, effectively solving the trailing phenomenon caused by uneven initial allocation in parallel volume mesh generation, and significantly improving the overall efficiency and resource utilization of large-scale parallel volume mesh generation.
[0091] This disclosure improves task scheduling efficiency and computational resource utilization in the large-scale parallel volume mesh generation process. By periodically monitoring the local performance status of computing nodes, computational tailing and load bottlenecks caused by uneven initial task partitioning can be detected and corrected in a timely manner. Compared with traditional methods, this disclosure can adaptively adjust the load of each computing node during operation, achieve dynamic balance of resource allocation, shorten the overall mesh generation time, and improve parallel scalability, making it suitable for scenarios involving the generation of hundreds of billions of mesh cells.
[0092] Example 2:
[0093] Figure 9 This is a schematic diagram of a highly scalable grid generation device for supercomputing provided in an embodiment of this disclosure. The device can be implemented in software and / or hardware and is generally integrated into an electronic device. Figure 9 As shown, it includes:
[0094] The acquisition module 901 is used to acquire multiple sub-mesh connected regions of the target model. The multiple sub-mesh connected regions are obtained based on the overall surface mesh connected regions of the target model. Each sub-mesh connected region includes a connection surface shared with its adjacent sub-mesh connected regions and a connection surface identifier. The connection surface identifier is obtained by processing the target data block based on a hash function. The target data block is a data block generated after standardizing the global number sequence of global numbers of grid points in a first preset number of surface mesh units corresponding to the connection surface, which is obtained by sorting the global numbers of grid points in a first preset number of surface mesh units.
[0095] The first sending module 902 is used to send multiple sub-mesh connected components to multiple computing nodes respectively; wherein, the computing nodes are used to perform volume meshing on the received sub-mesh connected components to obtain a mesh data file;
[0096] The first receiving module 903 is used to receive connection surface data sent by multiple computing nodes respectively, and to construct a connection surface grid point number mapping table based on the connection surface data; wherein, the connection surface grid point number mapping table includes the connection surface identifier, the global number of each grid point in the connection surface, and the correspondence between the numbers generated by the computing nodes for each grid point and each surface grid cell in the connection surface;
[0097] The deletion module 904 is used to delete duplicate grid points and duplicate surface grid cells based on the connection surface grid point number mapping table, obtain merged connection surface data, and send the merged connection surface data to the corresponding computing nodes so that each computing node can obtain a grid data file without duplicate grid points and duplicate surface grid cells, and then complete the writing of the overall grid file of the target model in parallel.
[0098] In one optional embodiment, the apparatus further includes:
[0099] The second receiving module is used to receive the performance indicators reported by each computing node during the parallel processing of multiple sub-grid connected domains by multiple computing nodes, and to determine whether there are computing nodes with unbalanced loads based on the performance indicators.
[0100] The second sending module is used to send a pause command to multiple computing nodes if there are computing nodes with unbalanced loads, so that each computing node enters a waiting state after the currently processed sub-grid connected component is completed.
[0101] The third receiving module is used to receive unprocessed sub-grid connected components reported by multiple computing nodes, and to re-divide the unprocessed sub-grid connected components based on the number of unprocessed sub-grid connected components and the performance indicators of each computing node.
[0102] The determination module is used to determine the correspondence between each computing node and each unprocessed sub-mesh connected region, and send the correspondence to each computing node so that each computing node can perform volume meshing on the unprocessed sub-mesh connected regions based on the correspondence; wherein, the performance indicators include at least one of memory utilization, volume mesh cell generation progress and the number of currently unprocessed sub-mesh connected regions.
[0103] In one optional implementation, the connection surface data includes the connection surface identifier, the three-dimensional coordinates of each grid point in the connection surface, and the number generated by the computation node for each grid point and each surface grid cell in the connection surface.
[0104] In one optional implementation, the first receiving module 903 includes:
[0105] The construction submodule is used to build a hash table with the connection surface identifier as the key, and insert each connection surface data into the hash table in the order of receipt;
[0106] The first determining submodule is used to determine that if there are two connecting surfaces corresponding to the same connecting surface identifier, then the two connecting surfaces under the same connecting surface identifier are the same connecting surface.
[0107] A submodule is established to establish the correspondence between the connection surface identifier, the global number of each grid point in the connection surface, and the number generated by the calculation node for each grid point and each surface grid cell in the connection surface under the same connection surface identifier, which serves as a connection surface grid point number mapping table.
[0108] In one optional implementation, the first determining submodule includes:
[0109] The second determining submodule is used to determine a set of matching connection surfaces under the same connection surface identifier if there are two connection surfaces corresponding to the same connection surface identifier.
[0110] The sorting submodule is used to sort the grid points of the two connecting surfaces in the mating connecting surfaces according to preset rules.
[0111] The comparison submodule is used to compare the 3D coordinate differences of the grid points corresponding to the two connecting surfaces in the middle of the mating connecting surfaces point by point.
[0112] The third determination submodule is used to determine that two connection surfaces are the same connection surface if the difference is less than or equal to a preset threshold.
[0113] In one optional implementation, after obtaining the mesh data file containing non-repeating mesh points and non-repeating surface mesh elements, each computing node renumbers each mesh point, each surface mesh element, and each volume mesh element in its corresponding mesh data file to ensure that the numbering is continuous and globally unique.
[0114] In one optional implementation, each computing node writes the mesh data files of non-repeating mesh points and non-repeating surface mesh cells in parallel to the corresponding file partition according to the row number interval based on the file partitioning strategy, so as to complete the writing of the overall mesh file of the target model in parallel.
[0115] The highly scalable grid generation apparatus for supercomputing provided in this disclosure can execute the highly scalable grid generation method for supercomputing provided in any embodiment of this disclosure, and has the corresponding functional modules and beneficial effects of executing the method.
[0116] Example 3:
[0117] This disclosure also provides a computer program product, which includes a computer program / instruction that, when executed by a processor, implements the highly scalable grid generation method for supercomputing described in this disclosure.
[0118] Example 4:
[0119] Figure 10 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure.
[0120] The following is a detailed reference. Figure 10The diagram illustrates a structural schematic suitable for implementing the electronic device 1000 in the embodiments of this disclosure. The electronic device 1000 in the embodiments of this disclosure may include, but is not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, personal digital assistants (PDAs), tablet computers (PADs), portable media players (PMPs), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 10 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.
[0121] like Figure 10 As shown, the electronic device 1000 may include a processing unit 1001 (e.g., a central processing unit, a graphics processor, etc.), which can perform various appropriate actions and processes according to a program stored in read-only memory (ROM) 1002 or a program loaded from storage device 1008 into random access memory (RAM) 1003. The RAM 1003 also stores various programs and data required for the operation of the electronic device 1000. The processing unit 1001, ROM 1002, and RAM 1003 are interconnected via a bus 1004. An input / output (I / O) interface 1005 is also connected to the bus 1004.
[0122] Typically, the following devices can be connected to the I / O interface 1005: input devices 1006 including, for example, a touchscreen, touchpad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; output devices 1007 including, for example, a liquid crystal display (LCD), speaker, vibrator, etc.; storage devices 1008 including, for example, magnetic tape, hard disk, etc.; and communication devices 1009. Communication device 1009 allows electronic device 1000 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 10 An electronic device 1000 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively.
[0123] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication device 1009, or installed from storage device 1008, or installed from ROM 1002. When the computer program is executed by processing device 1001, it performs the functions defined in the highly scalable grid generation method for supercomputing according to embodiments of this disclosure.
[0124] It should be noted that the computer-readable medium described above in this disclosure can be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, a random access memory, a read-only memory, an electrically erasable programmable read-only memory (EPROM), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In this disclosure, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. The transmitted data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. The computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, radio frequency (RF), etc., or any suitable combination thereof.
[0125] In some implementations, clients and servers can communicate using any currently known or future-developed network protocol, such as Hypertext Transfer Protocol (HTTP), and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include Local Area Networks (LANs), Wide Area Networks (WANs), the Internet (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.
[0126] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.
[0127] The aforementioned computer-readable medium carries one or more programs, which, when executed by the electronic device, cause the electronic device to: acquire multiple sub-mesh connected components of the target model; wherein the multiple sub-mesh connected components are obtained based on the overall surface mesh connected components of the target model, each sub-mesh connected component includes a connection surface shared with its adjacent sub-mesh connected components and a connection surface identifier, the connection surface identifier is obtained by processing the target data block using a hash function, the target data block is a data block generated after standardizing a global number sequence of grid points including a second preset number of grid points obtained by sorting the global numbers of each grid point in the corresponding connection surface's surface mesh cells; and send the multiple sub-mesh connected components to multiple computing nodes respectively; wherein, the computing nodes... The node is used to perform volume meshing on the received sub-mesh connected domains to obtain a mesh data file. The master node receives connection surface data sent by multiple computing nodes and constructs a connection surface mesh point number mapping table based on the connection surface data. The connection surface mesh point number mapping table includes the connection surface identifier, the global number of each mesh point in the connection surface, and the correspondence between the numbers generated by the computing nodes for each mesh point and each face mesh cell in the connection surface. Based on the connection surface mesh point number mapping table, duplicate mesh points and duplicate face mesh cells are deleted to obtain merged connection surface data. The merged connection surface data is then sent to the corresponding computing nodes so that each computing node obtains a mesh data file without duplicate mesh points and duplicate face mesh cells, and then completes the writing of the overall mesh file of the target model in parallel.
[0128] Computer program code for performing the operations of this disclosure can be written in one or more programming languages or a combination thereof, including but not limited to object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including local area networks (LANs) or wide area networks (WANs), or it can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0129] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions 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 using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0130] The units described in the embodiments of this disclosure can be implemented in software or hardware. The names of the units are not, in some cases, intended to limit the specific unit.
[0131] The functions described above in this document can be performed at least in part by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field-Programmable Gate Array (FPGA), Application Specific Integrated Circuit (ASIC), Application Specific Standard Parts (ASSP), System on Chip (SOC), Complex Programmable Logic Device (CPLD), and so on.
[0132] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory, read-only memory, erasable programmable read-only memory, flash memory, optical fiber, portable compact disk read-only memory, optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0133] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.
[0134] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features disclosed in this disclosure that have similar functions.
[0135] Furthermore, while the operations are described in a specific order, this should not be construed as requiring these operations to be performed in the specific order shown or in a sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, while several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of this disclosure. Certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments.
[0136] Although the subject matter has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative examples of implementing the claims.
Claims
1. A highly scalable grid generation method for supercomputing, characterized in that, The method includes: Obtain multiple sub-mesh connected components of the target model; wherein, the multiple sub-mesh connected components are obtained based on the overall surface mesh connected components of the target model, each sub-mesh connected component includes a connection surface shared with its adjacent sub-mesh connected components and a connection surface identifier of the connection surface, the connection surface identifier is obtained by processing the target data block based on a hash function, the target data block is a data block generated after standardizing the global number sequence of global number points including a second preset number of grid points obtained by sorting the global numbers of each grid point in the first preset number of surface mesh units of the corresponding connection surface; The multiple sub-mesh connected components are sent to multiple computing nodes respectively; wherein, the computing nodes are used to perform volume meshing on the received sub-mesh connected components to obtain a mesh data file; The system receives connection surface data sent by the multiple computing nodes respectively, and constructs a connection surface grid point number mapping table based on the connection surface data; wherein, the connection surface grid point number mapping table includes the connection surface identifier, the global number of each grid point in the connection surface, and the correspondence between the numbers generated by the computing nodes for each grid point and each surface grid cell in the connection surface; Based on the connection surface grid point number mapping table, duplicate grid points and duplicate surface grid cells are deleted to obtain merged connection surface data. The merged connection surface data is then sent to the corresponding computing nodes so that each computing node obtains a grid data file without duplicate grid points and duplicate surface grid cells, and then completes the writing of the overall grid file of the target model in parallel.
2. The method according to claim 1, characterized in that, The method further includes: During the parallel processing of the multiple sub-grid connected domains by the multiple computing nodes, the performance indicators reported by each computing node are received, and the existence of computing nodes with unbalanced loads is determined based on the performance indicators. If there are computing nodes with unbalanced loads, a pause command is sent to the multiple computing nodes so that each computing node enters a waiting state after the currently processed sub-grid connectivity domain is completed. Receive unprocessed sub-mesh connected components reported by the multiple computing nodes respectively, and re-divide the unprocessed sub-mesh connected components based on the number of unprocessed sub-mesh connected components and the performance indicators of each computing node; The correspondence between each computing node and each unprocessed sub-mesh connected region is determined, and the correspondence is sent to each computing node so that each computing node performs volume meshing on the unprocessed sub-mesh connected regions based on the correspondence; wherein, the performance indicators include at least one of memory utilization, volume mesh cell generation progress, and the number of currently unprocessed sub-mesh connected regions.
3. The method according to claim 1, characterized in that, The connection surface data includes the connection surface identifier, the three-dimensional coordinates of each grid point in the connection surface, and the number generated by the calculation node for each grid point and each surface grid cell in the connection surface.
4. The method according to claim 3, characterized in that, The step of receiving connection surface data sent by the multiple computing nodes respectively, and constructing a connection surface grid point number mapping table based on the connection surface data, includes: A hash table is constructed using the connection surface identifier as the key, and each connection surface data is inserted into the hash table in the order of receipt; If there are two connection surfaces corresponding to the same connection surface identifier, then the two connection surfaces under the same connection surface identifier are determined to be the same connection surface; Establish a correspondence between the connection surface identifier, the global number of each grid point in the connection surface, and the number generated by the calculation node for each grid point and each surface grid cell under the same connection surface identifier, as a connection surface grid point number mapping table.
5. The method according to claim 4, characterized in that, If the number of connecting surfaces corresponding to the same connecting surface identifier is 2, then determining that the two connecting surfaces under the same connecting surface identifier are the same connecting surface includes: If there are two connection surfaces corresponding to the same connection surface identifier, then a set of connection surfaces to be matched under the same connection surface identifier is determined. The grid points of the two connecting surfaces in the mating surface are sorted according to preset rules; Compare the three-dimensional coordinate differences of the grid points corresponding to the two connecting surfaces in the mating connecting surfaces point by point; If the difference is less than or equal to a preset threshold, then the two connecting surfaces are determined to be the same connecting surface.
6. The method according to claim 1, characterized in that, After obtaining the mesh data file containing unique mesh points and unique surface mesh elements, each computing node renumbers each mesh point, surface mesh element, and volume mesh element in its corresponding mesh data file to ensure that the numbering is continuous and globally unique.
7. The method according to claim 1, characterized in that, Each computing node, based on a file partitioning strategy, writes the mesh data files of the non-repeating mesh points and the non-repeating surface mesh cells in parallel to the corresponding file partition according to the line number interval, so as to complete the writing of the overall mesh file of the target model in parallel.
8. A highly scalable grid generation device for supercomputing, characterized in that, The device includes: An acquisition module is used to acquire multiple sub-mesh connected regions of a target model; wherein, the multiple sub-mesh connected regions are obtained based on the overall surface mesh connected regions of the target model, each sub-mesh connected region includes a connection surface shared with its adjacent sub-mesh connected regions and a connection surface identifier of the connection surface, the connection surface identifier is obtained by processing the target data block based on a hash function, and the target data block is a data block generated after standardizing the global number sequence of global numbers including a second preset number of grid points obtained by sorting the global numbers of each grid point in a first preset number of surface mesh units corresponding to the connection surface; The first sending module is used to send the plurality of sub-mesh connected components to a plurality of computing nodes respectively; wherein, the computing nodes are used to perform volume meshing on the received sub-mesh connected components to obtain a mesh data file; The first receiving module is used to receive the connection surface data sent by the multiple computing nodes respectively, and construct a connection surface grid point number mapping table based on the connection surface data; wherein, the connection surface grid point number mapping table includes the connection surface identifier, the global number of each grid point in the connection surface, and the correspondence between the numbers generated by the computing nodes for each grid point and each surface grid cell in the connection surface; The deletion module is used to delete duplicate grid points and duplicate surface grid cells based on the connection surface grid point number mapping table to obtain merged connection surface data. The merged connection surface data is then sent to the corresponding computing nodes so that each computing node obtains a grid data file without duplicate grid points and duplicate surface grid cells, and then completes the writing of the overall grid file of the target model in parallel.
9. An electronic device, characterized in that, The electronic device includes: processor; Memory used to store the processor's executable instructions; The processor is configured to read the executable instructions from the memory and execute the executable instructions to implement the highly scalable grid generation method for supercomputing as described in any one of claims 1-7.
10. A computer-readable storage medium, characterized in that, The storage medium stores a computer program for executing the highly scalable grid generation method for supercomputing as described in any one of claims 1-7.
Citation Information
Patent Citations
Multi-layer region decomposition parallel computing method and device for polyhedral mesh
CN116562066A
Large-scale grid generation algorithm for parallel block extraction
CN116663364A