CN116225722A - Communication method and device of flow field variable, terminal equipment and storage medium - Google Patents

Communication method and device of flow field variable, terminal equipment and storage medium Download PDF

Info

Publication number
CN116225722A
CN116225722A CN202310505506.7A CN202310505506A CN116225722A CN 116225722 A CN116225722 A CN 116225722A CN 202310505506 A CN202310505506 A CN 202310505506A CN 116225722 A CN116225722 A CN 116225722A
Authority
CN
China
Prior art keywords
data
grid
flow field
communication
field variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310505506.7A
Other languages
Chinese (zh)
Other versions
CN116225722B (en
Inventor
赵钟
万云博
何磊
何先耀
张勇
陈坚强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Original Assignee
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Computational Aerodynamics Institute of China Aerodynamics Research and Development Center filed Critical Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority to CN202310505506.7A priority Critical patent/CN116225722B/en
Publication of CN116225722A publication Critical patent/CN116225722A/en
Application granted granted Critical
Publication of CN116225722B publication Critical patent/CN116225722B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/28Design optimisation, verification or simulation using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/08Fluids
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/14Force analysis or force optimisation, e.g. static or dynamic forces

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Fluid Mechanics (AREA)
  • Computer Graphics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

The application discloses a communication method, a device, terminal equipment and a storage medium of a flow field variable, wherein a plurality of grid subareas are obtained by acquiring an initial calculation grid and partitioning the initial calculation grid; creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region; acquiring one or more flow field variable data of a first grid subarea; compressing one or more flow field variable data and storing the compressed data in a first communication data container; and transmitting the first communication data container to the second virtual grid through the message passing mode. In the CFD iterative calculation process, a communication data container is established, a plurality of flow field variable data are compressed and stored in the communication data container and then sent to other threads, so that a plurality of communication processes in one iteration step can be reduced to one communication process, and the parallel efficiency is greatly improved.

Description

Communication method and device of flow field variable, terminal equipment and storage medium
Technical Field
The application belongs to the technical field of fluid mechanics, and particularly relates to a communication method, a device, terminal equipment and a storage medium of flow field variables.
Background
Computational fluid dynamics (Computational Fluid Dynamics, abbreviated as CFD) is an interdisciplinary discipline for numerically solving the NS equation for flow control using a computer. In the research and development process of industrial products, research and development cost can be greatly reduced, design period is shortened, fine design level of the products is improved, and powerful support is provided for construction development and digital transformation of national defense industry and national economy equipment by means of CFD numerical simulation.
With the development of CFD and computer technology, the flow problem of CFD simulation is more and more complex, and the computational grid size is also increased. For large-scale calculation grids, parallel calculation is generally adopted to realize quick calculation of the flow field. The parallel efficiency is an important index for measuring the parallel computing performance, and when the conditions such as the computing amount, the computing capacity and the number of processes are the same, the lower the parallel efficiency, the longer the time required for parallel computing is, so that the more computing resources are spent. In general, the larger the calculation scale and the number of processes, the lower the parallelism efficiency. In the engineering application of CFD, when the number of processes reaches the order of ten thousand cores, the parallel efficiency of mainstream application software is seriously reduced, and a great amount of calculation resources are wasted.
In CFD parallel computing, there are a large number of communication processes between processes, and frequent communication processes are important factors that cause a decrease in parallel efficiency. In each iteration step of CFD iterative computation, a plurality of flow field variables need to be communicated between processes, and the more complex the computation problem and the adopted model are, the more the number of the flow field variables are communicated. In the traditional communication method, each flow field variable needs to carry out a communication process, and the number of communication times is equal to the number of flow field variables, namely, the more the number of flow field variables are communicated, the more the number of communication times is. The increase in the number of communications will lead to a significant decrease in the efficiency of parallelism, and in particular the larger the computational scale, the more significant this problem will be. In addition, the increase of the communication times can also cause the problems of reduced robustness of parallel computation, incapability of starting computation and the like, and how to quickly and efficiently transmit a plurality of flow field variables is a problem which needs to be solved at present.
Disclosure of Invention
The application aims to provide a communication method, a device, terminal equipment and a storage medium of flow field variables, so as to solve the defects in the prior art, and the technical problem to be solved by the application is realized through the following technical scheme.
In a first aspect, an embodiment of the present application provides a method for communicating flow field variables, where the method includes:
acquiring an initial computing grid, and partitioning the initial computing grid to obtain a plurality of grid sub-areas, wherein the grid sub-areas at least comprise a first grid sub-area and a second grid sub-area, and the first grid sub-area is adjacent to the second grid sub-area;
creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region;
acquiring one or more flow field variable data of the first grid subarea;
compressing the one or more flow field variable data and storing the compressed data in a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data;
and transmitting the first communication data container to the second virtual grid through a message passing mode.
Optionally, the flow field variable data at least comprises a flow field variable type, a name and a plurality of dimensions; the flow field variable type at least comprises one of integer data type, floating point data type or Boolean data type; the name at least comprises a character string, and the array dimension at least comprises two-dimensional arrays and arrays with more than two dimensions.
Optionally, the acquiring one or more flow field variable data of the first grid sub-region includes:
acquiring a memory address of the flow field variable data in the first virtual grid;
sequentially cycling all interfaces in the first grid subarea, and acquiring real grid cell numbers corresponding to the interfaces;
and updating the data in the first virtual grid by sequentially updating the variable data of the flow field of each grid unit in the first grid subarea.
Optionally, the compressing the one or more flow field variable data and storing the compressed data in a first communication data container includes:
setting a memory space for the first communication data container, and moving a memory pointer to the memory space head address;
calculating a first byte number corresponding to each flow field variable data;
calculating a first face number of each interface in the first communication data container for each interface within the first grid sub-region;
converting the variable data of the flow field into data of a one-dimensional array according to the first byte number and the first surface number;
and compressing the data of the one-dimensional array to the first communication data container.
Optionally, the sending the first communication data container to the second virtual grid through a message passing mode includes:
and according to the data length and the process number of the first communication data container, a message transmission mode is adopted to put the data of the one-dimensional array into the second virtual grid, wherein the data length is the total length of the data to be transmitted, and the process number is the process number of the first grid sub-region and the process number of the adjacent grid sub-region.
Optionally, the method further comprises:
receiving data corresponding to a second communication data container sent by a second virtual grid corresponding to the second grid sub-region;
converting the data in the second communication data container into data of a plurality of multi-dimensional data to obtain a plurality of multi-dimensional flow field variable data, and updating the original flow field variable data in the first virtual grid by the plurality of multi-dimensional flow field variable data.
Optionally, the converting the data in the first communication data container into data of a plurality of multidimensional data to obtain a plurality of multidimensional flow field variable data, and updating the original flow field variable data in the first virtual grid by the plurality of multidimensional flow field variable data includes:
Moving the memory pointer of the received second communication data container to a memory space head address;
decompressing the data in the second communication data container, and calculating the second byte number of each decompressed flow field variable;
calculating a second face number of each interface in the second communication data container for each interface in a second grid sub-area;
and updating the variable data of the flow field into the first virtual grid one by one according to the second byte number and the second face number.
In a second aspect, embodiments of the present application provide a flow field variable communication device, the device including:
the first acquisition module is used for acquiring an initial calculation grid, partitioning the initial calculation grid to obtain a plurality of grid sub-areas, wherein the grid sub-areas at least comprise a first grid sub-area and a second grid sub-area, and the first grid sub-area is adjacent to the second grid sub-area;
the creating module is used for creating a first virtual grid corresponding to the first grid subarea and a second virtual grid corresponding to the second grid subarea;
a second acquisition module, configured to acquire one or more flow field variable data of the first grid sub-region;
The compression module is used for compressing the one or more flow field variable data and storing the compressed data into a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data;
and the sending module is used for sending the first communication data container to the second virtual grid through a message transmission mode.
Optionally, the flow field variable data at least comprises a flow field variable type, a name and a plurality of dimensions; the flow field variable type at least comprises one of integer data type, floating point data type or Boolean data type; the name at least comprises a character string, and the array dimension at least comprises two-dimensional arrays and arrays with more than two dimensions.
Optionally, the second obtaining module is configured to:
acquiring a memory address of the flow field variable data in the first virtual grid;
sequentially cycling all interfaces in the first grid subarea, and acquiring real grid cell numbers corresponding to the interfaces;
and updating the data in the first virtual grid by sequentially updating the variable data of the flow field of each grid unit in the first grid subarea.
Optionally, the compression module is configured to:
setting a memory space for the first communication data container, and moving a memory pointer to the memory space head address;
calculating a first byte number corresponding to each flow field variable data;
calculating a first face number of each interface in the first communication data container for each interface within the first grid sub-region;
converting the variable data of the flow field into data of a one-dimensional array according to the first byte number and the first surface number;
and compressing the data of the one-dimensional array to the first communication data container.
Optionally, the sending module is configured to:
and according to the data length and the process number of the first communication data container, a message transmission mode is adopted to put the data of the one-dimensional array into the second virtual grid, wherein the data length is the total length of the data to be transmitted, and the process number is the process number of the first grid sub-region and the process number of the adjacent grid sub-region.
Optionally, the apparatus further comprises a receiving module, where the receiving module is configured to:
receiving data corresponding to a second communication data container sent by a second virtual grid corresponding to the second grid sub-region;
Converting the data in the second communication data container into data of a plurality of multi-dimensional data to obtain a plurality of multi-dimensional flow field variable data, and updating the original flow field variable data in the first virtual grid by the plurality of multi-dimensional flow field variable data.
Optionally, the receiving module is configured to:
moving the memory pointer of the received second communication data container to a memory space head address;
decompressing the data in the second communication data container, and calculating the second byte number of each decompressed flow field variable;
calculating a second face number of each interface in the second communication data container for each interface in a second grid sub-area;
and updating the variable data of the flow field into the first virtual grid one by one according to the second byte number and the second face number.
In a third aspect, an embodiment of the present application provides a terminal device, including: at least one processor and memory;
the memory stores a computer program; the at least one processor executes the computer program stored by the memory to implement the method of communicating flow field variables provided in the first aspect.
In a fourth aspect, embodiments of the present application provide a computer readable storage medium having a computer program stored therein, the computer program when executed implementing the method of communicating flow field variables provided in the first aspect.
Embodiments of the present application include the following advantages:
according to the communication method, the device, the terminal equipment and the storage medium for the flow field variable, the initial calculation grid is obtained, the initial calculation grid is partitioned to obtain a plurality of grid subareas, the grid subareas at least comprise a first grid subarea and a second grid subarea, and the first grid subarea is adjacent to the second grid subarea; creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region; acquiring one or more flow field variable data of a first grid subarea; compressing one or more flow field variable data and storing the compressed data in a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data; in the CFD iterative calculation process, the second virtual grid sent to the first communication data container through the message transfer mode compresses a plurality of flow field variable data by establishing the communication data container, stores the flow field variable data in the communication data container, and then sends the flow field variable data to other threads, so that a plurality of communication processes in one iteration step can be reduced to one communication process, and the parallel efficiency is greatly improved.
Drawings
In order to more clearly illustrate the embodiments or prior art solutions of the present application, the drawings that are required for the description of the embodiments or prior art will be briefly described below, it being apparent that the drawings in the following description are only some of the embodiments described in the present application, and that other drawings may be obtained according to these drawings without inventive faculty for a person skilled in the art.
FIG. 1 is a flow chart of a method of communicating flow field variables in an embodiment of the present application;
FIG. 2 is a grid partitioning and virtual grid construction process in an embodiment of the present application;
FIG. 3 is a communication process between grid sub-areas in one embodiment of the present application;
FIG. 4 is a communication process of all flow field variables in one iteration step in an embodiment of the present application;
FIG. 5 is a process of centralized communication of all flow field variables in one iteration step in an embodiment of the present application;
FIG. 6 is a complete communication process in one iteration in an embodiment of the present application;
FIG. 7 is a block diagram of an embodiment of a communication device of a flow field variable of the present application;
fig. 8 is a schematic structural diagram of a terminal device of the present application.
Detailed Description
For the purposes, technical solutions and advantages of the present application, the technical solutions of the present application will be clearly and completely described below with reference to specific embodiments and corresponding drawings. It will be apparent that the described embodiments are only some, but not all, of the embodiments of the present application. All other embodiments, which can be made by one of ordinary skill in the art without undue burden from the present disclosure, are within the scope of the present disclosure.
NS equation: abbreviation of Navier-Stokes equation, used to describe the control equation of fluid mechanics;
flow field variable: state quantities such as pressure, speed, density, temperature, etc. in the flow;
CFD: computational Fluid Dynamics is used for solving an NS equation to obtain a flow field variable, dispersing a continuous NS equation into a linear equation set in the form of ax=b by a numerical dispersion method, and solving the flow field variable by an equation set solving technology.
Computing a grid: discretizing a continuous flow field into a finite number of discrete cells (triangles, tetrahedrons, etc.), these cells and the geometric topological relationships between them, known as a computational grid;
grid subregion: the original computing grid is divided into a plurality of independent areas, and each area becomes a grid subarea in order to adapt to multi-process parallel computing.
And (3) interface: after the grid is split into a plurality of sub-regions, the faces contained in each sub-region that are connected to the other sub-regions are referred to as interfaces.
Iterative calculation: the method is a typical method in numerical calculation, and is applied to the aspects of equation root finding, equation set solving, matrix eigenvalue finding and the like.
Iterative steps: one iteration of the iterative computation.
The process comprises the following steps: the method is a motion activity of a program in a computer on a certain data set, is a basic unit for resource allocation and scheduling of a system, and is a basis of an operating system structure.
Transmission buffer: a block of memory space for temporarily storing data for transmission between processes.
Receive buffer: a block of memory space for temporarily storing data for reception needed between processes.
Virtual grid: and a unit in each sub-area for storing the grid data in the adjacent sub-area.
Real grid: corresponding to the virtual grid, the virtual grid is a grid which is actually participated in calculation.
Communication data container: a data container dedicated to communications.
Message passing Mode (MPI), a cross-language communication protocol, is used to write parallel computer programs.
An embodiment of the application provides a communication method of flow field variables, which is used for concurrent transmission of the flow field variables. The communication device with the execution body being the flow field variable in this embodiment is disposed on a terminal device, for example, the terminal device at least includes a computer terminal and the like.
Referring to fig. 1, a step flow diagram of an embodiment of a method for communication of flow field variables of the present application is shown, which may specifically include the steps of:
s101, acquiring an initial calculation grid, and partitioning the initial calculation grid to obtain a plurality of grid sub-areas, wherein the grid sub-areas at least comprise a first grid sub-area and a second grid sub-area, and the first grid sub-area is adjacent to the second grid sub-area;
specifically, an initial computing grid is partitioned, a plurality of grid subareas are generated after the initial computing grid is partitioned, and each process is responsible for one subarea; then each sub-area constructs a virtual grid for storing the data of the grid units of the adjacent sub-areas; and finally, iterative calculation is carried out until convergence. The specific process of grid partitioning and virtual grid construction is shown in fig. 2.
S102, creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region;
specifically, there are multiple communication processes in each iteration step of parallel computation, and the communication processes are important factors affecting the parallel efficiency. The specific process of the communication process is as follows: and assigning values to the virtual grids corresponding to the interface after the partitioning through the data transmission process among grids of different subareas, so that the independent calculation process of each subarea is realized. The schematic process of one communication is shown in fig. 3, the subarea 1 sends the values of the units on the left side of the interface to the subarea 2, and the values are assigned to the virtual grids in the subarea 2; similarly, the values of the real grid cells corresponding to the interfaces in the subarea 2 are sent to the subarea 1, and assigned to the virtual grids in the subarea 1.
In each iteration step of CFD calculation, there are multiple flow field variables to be communicated, and the communication of each variable is a communication process, i.e. a communication process shown in fig. 3. Specifically, the flow field variables to be communicated in one iteration step include the original variable "q", the temperature "t", the three directional gradients of the original variable "dqdx, dqdy, dqdz", the limiter coefficient "limiter", and the like. The more complex the computational problem, the more complex the model employed, the more flow field variables that need to be communicated, and the more times that communication is performed. The flow field variables that need to be communicated in one iteration step are shown in particular in fig. 4.
S103, acquiring one or more flow field variable data of the first grid subarea;
specifically, the terminal device obtains one or more flow field variable data within the first grid sub-region, e.g., the flow field variable data contains an original variable "q", a temperature "t", three directional gradients of the original variable "dqdx, dqdy, dqdz", a limiter coefficient "limiter", and so forth.
S104, compressing one or more flow field variable data, and storing the compressed data into a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data;
As can be seen from fig. 5, in one iteration step, the number of communications is equal to the number of flow field variables that need to be communicated, and this communication method can cause serious communication delay and greatly reduce the parallel efficiency. The centralized communication method provided by the invention comprises the steps of firstly compressing flow field variables to be communicated into a communication data container, then sending the compressed communication data container to other subareas, receiving the communication data container from the other subareas, and using decompressed data in an iterative calculation process. A specific schematic process of centralized communication is shown in fig. 5.
S105, the first communication data container is sent to the second virtual grid through the message passing mode.
Specifically, the terminal device calculates information required for the MPI (message passing mode) transmission, such as the data length and the process number in the communication data container. The data length refers to the total length of data to be transmitted, and the process number refers to the process number of the sub-region and the process number of the adjacent sub-region; all data is sent using the MPI_Send statement in MPI. The MPI_Recv statement in MPI is used to receive the communication data container from the adjacent sub-region that it sent to the present sub-region.
According to the communication method of the flow field variable, the initial calculation grid is obtained, and the initial calculation grid is partitioned to obtain a plurality of grid subareas, wherein the grid subareas at least comprise a first grid subarea and a second grid subarea, and the first grid subarea is adjacent to the second grid subarea; creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region; acquiring one or more flow field variable data of a first grid subarea; compressing one or more flow field variable data and storing the compressed data in a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data; in the CFD iterative calculation process, the second virtual grid sent to the first communication data container through the message transfer mode compresses a plurality of flow field variable data by establishing the communication data container, stores the flow field variable data in the communication data container, and then sends the flow field variable data to other threads, so that a plurality of communication processes in one iteration step can be reduced to one communication process, and the parallel efficiency is greatly improved.
In another embodiment of the present application, the communication method of the flow field variable provided in the foregoing embodiment is further described in a supplementary manner.
Optionally, the flow field variable data includes at least a flow field variable type, a name, and a plurality of dimensions; the flow field variable type at least comprises one of integer data type, floating point data type or Boolean data type; the name includes at least a character string, and the array dimension includes at least two dimensions and arrays above two dimensions.
Optionally, acquiring one or more flow field variable data of the first grid sub-region includes:
acquiring a memory address of flow field variable data in a first virtual grid;
sequentially cycling all interfaces in the first grid subarea, and acquiring real grid cell numbers corresponding to the interfaces;
and updating the flow field variable data of each grid unit in the first grid subarea to the data in the first virtual grid.
Optionally, compressing one or more flow field variable data and storing the compressed data in a first communication data container, including:
setting a memory space for the first communication data container, and moving a memory pointer to a memory space head address;
Calculating a first byte number corresponding to each flow field variable data;
calculating a first face number of each interface in the first communication data container for each interface in the first grid sub-area;
converting the variable data of the flow field into data of a one-dimensional array according to the first byte number and the first surface number;
the one-dimensional array of data is compressed into a first communication data container.
Optionally, the second virtual grid to which the first communication data container is sent in the messaging mode includes:
and according to the data length and the process number of the first communication data container, putting the data of the one-dimensional array into the second virtual grid in a message transmission mode, wherein the data length is the total length of the data to be transmitted, and the process number is the process number of the first grid sub-region and the process number of the adjacent grid sub-region.
Optionally, the method further comprises:
receiving data corresponding to a second communication data container sent by a second virtual grid corresponding to a second grid sub-region;
converting the data in the second communication data container into a plurality of pieces of multidimensional data to obtain a plurality of pieces of multidimensional flow field variable data, and updating the original flow field variable data in the first virtual grid by the plurality of pieces of multidimensional flow field variable data.
Optionally, converting the data in the first communication data container into data of a plurality of multi-dimensional data to obtain a plurality of multi-dimensional flow field variable data, and updating the original flow field variable data in the first virtual grid by the plurality of multi-dimensional flow field variable data, including:
moving the memory pointer of the received second communication data container to a memory space head address;
decompressing the data in the second communication data container, and calculating the second byte number of each decompressed flow field variable;
calculating a second face number of each interface in the second communication data container for each interface in the second grid sub-area;
and updating the variable data of the flow field into the first virtual grid one by one according to the second byte number and the second face number.
The detailed schematic diagram of the centralized communication method is shown in fig. 6, the mpi_send statement in fig. 6 is used for transmitting all data, and the mpi_recv statement in the MPI is used for receiving a communication data container transmitted to the sub-area from the adjacent sub-area; zone1 in fig. 6 is Zone1, zone2 is Zone2, flow field variables such as "q", "dqdx", "limiter" and other flow field variables (i.e. other in fig. 6) are sent from Zone1 to Zone2, the basic principle of the centralized communication method is introduced as described above, and the steps of the integrated centralized communication method in the specific implementation process include 7 steps: registering flow field variables needing to be communicated, updating data of a sending buffer area, compressing the flow field variables to a data container, sending and receiving the data container between processes, decompressing the data from the data container, assigning a virtual grid, and releasing the memory of the buffer area.
The concentrated communication method comprises the following specific steps:
step 1: the flow field variables that need to be communicated are registered. The initialization operation in the communication process mainly opens up a corresponding memory space for flow field variables which need to be communicated in the calculation process;
comprising the following steps:
step 11: the type, name, and array dimensions of the flow field variables that need to be communicated are defined.
The flow field variable type refers to a data type such as integer type, floating point type or Boolean type data; the flow field variable names refer to character strings such as original variables 'q','t', original variable ladder quantity 'dqdx', 'dtdx', 'limit', and the like; the variable dimension pointer is used for indicating the dimension of an array to be opened up, the opened-up array is a two-dimensional array, the first dimension is the dimension of the contained data, for example, the original variable 'q' contains 5 variables of density, pressure and speed in three directions, and the second dimension is the total surface number of a zone interface.
Step 12: according to the definition in step 11, a memory space is opened for the transmission buffer. The transmit buffer is used to store data to be transmitted to other sub-regions.
Step 13: according to the definition in step 11, a memory space is opened up for the receiving buffer. The receive buffer is used to store data received from other sub-regions.
Step 2: updating the data in the transmission buffer. In the iterative calculation process, the flow field variable data in the sending buffer area is modified according to the flow field variable obtained by the latest calculation.
Comprising the following steps:
step 21: acquiring a memory address corresponding to a flow field variable to be communicated in a sending buffer area;
step 22: and sequentially cycling all interfaces in the sub-region, and acquiring real grid cell numbers corresponding to the interfaces.
Step 23: the data in the transmit buffer is updated with the flow field variable values of the real grid cells.
Step 3: the data of the transmit buffer is compressed into a communication data container. All data to be transmitted are stored in the transmission buffer, however, the data are stored in the form of a plurality of multi-dimensional arrays, and the process of compressing the data into the communication data container realizes the conversion of the plurality of multi-dimensional arrays into a one-dimensional array form with a larger length. Step 3 is to compress the data of the sending buffer into the communication data container, wherein the sending buffer contains all flow field variables such as 'q','t' and the like which need to be transmitted. The variable storage form that needs to be communicated in the sending buffer is in the form of a plurality of two-dimensional arrays, and all data in the sending buffer can be converted into the form of one-dimensional arrays based on a communication data container.
Specifically, step 3 includes:
step 31: the memory space is opened up for the communication data container and the memory pointer is moved to the memory space head address.
Step 32: and circulating all flow field variables needing to be compressed, and calculating the byte number of data needing to be transmitted.
Step 33: depending on the number of bytes calculated in step 32, and copies the data to be communicated into a communication data container.
Specifically, the conventional method is to directly transmit data in a transmitting buffer zone, firstly, compress all variables to be transmitted to a communication data container, then transmit the communication data container between processes, decompress and update the data in a receiving buffer zone after receiving the communication data container, and realize the process of converting a plurality of two-dimensional arrays into a large one-dimensional array.
The specific compression process in step 33 includes:
step 331: and cycling all interfaces, and calculating the corresponding surface number of each interface in the sending buffer area.
Step 332: the data of the transmission buffer is converted into a one-dimensional array form according to the byte number calculated in step 32.
Step 333: the data in the one-dimensional array is compressed into a communication data container.
Step 4: the communication data container is sent to other processes using a message passing pattern (MPI).
Comprising the following steps:
step 41: information required for the MPI transmission, such as the data length and the process number in the communication data container, is calculated. The data length refers to the total length of data to be transmitted, and the process number refers to the process number of the sub-region and the process number of the adjacent sub-region;
step 43: all data is sent using the MPI_Isend statement in MPI.
Step 44: the MPI_Irecv statement in MPI is used to receive the communication data container from the adjacent sub-region that it sent to the present sub-region.
Step 5: data is received from other processes and the data of the receive buffer is updated. Step 4 implements the process of communicating inter-process data, each process sending data to and receiving data from other processes. After each process receives the data, the received data is first converted from one-dimensional form to a plurality of two-dimensional arrays, and then the data of the receiving buffer is updated by the two-dimensional arrays.
Step 5 is the process of manipulating the data received from the other sub-regions. Each sub-region will send data to and receive data from the other sub-regions, the received data being used to update the data in the receive buffer.
Specifically, step 5 includes:
step 51: and moving the memory pointer of the received communication data container to the memory space head address.
Step 52: and circulating all flow field variables needing decompression, and calculating the number of bytes received by each flow field variable.
Step 53: the data of the variable is read from the communication data container, all interfaces are circulated, and the data obtained by reading is copied into the receiving buffer area in sequence.
Step 53 is a decompression process comprising:
step 531: the data of the byte size is calculated in the reading step 52 from the communication data container and stored in the form of a one-dimensional array.
Step 532: all interfaces are cycled and the corresponding face number of each interface in the receive buffer is calculated.
Step 533: and sequentially updating the data in the one-dimensional array read in the step 331 into the receiving buffer area one by one.
Step 6: and updating the data of the virtual grid cells according to the data of the receiving buffer. The data in the virtual grid cells directly participate in iterative computation, and the data in the virtual grid cells need to be updated according to the data in the buffer.
Comprising the following steps:
step 61: acquiring a memory address corresponding to a flow field variable to be communicated in a receiving buffer area;
Step 62: and sequentially cycling all interfaces in the sub-region, and acquiring the grid cell numbers corresponding to the interfaces.
Step 63: the flow field variable values of the virtual grid cells are updated with the data in the receive buffer.
Step 7: and releasing the memory space of the flow field variables which need to be communicated. And releasing the memory space of the flow field variable of the communication in the transmitting/receiving buffer zone.
Comprising the following steps:
step 71: and releasing the memory space of the sending buffer zone.
Step 72: and releasing the memory space of the receiving buffer.
It should be noted that, for simplicity of description, the method embodiments are shown as a series of acts, but it should be understood by those skilled in the art that the embodiments are not limited by the order of acts described, as some steps may occur in other orders or concurrently in accordance with the embodiments. Further, those skilled in the art will appreciate that the embodiments described in the specification are all preferred embodiments and that the acts referred to are not necessarily required by the embodiments of the present application.
According to the communication method of the flow field variable, the initial calculation grid is obtained, and the initial calculation grid is partitioned to obtain a plurality of grid subareas, wherein the grid subareas at least comprise a first grid subarea and a second grid subarea, and the first grid subarea is adjacent to the second grid subarea; creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region; acquiring one or more flow field variable data of a first grid subarea; compressing one or more flow field variable data and storing the compressed data in a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data; in the CFD iterative calculation process, the second virtual grid sent to the first communication data container through the message transfer mode compresses a plurality of flow field variable data by establishing the communication data container, stores the flow field variable data in the communication data container, and then sends the flow field variable data to other threads, so that a plurality of communication processes in one iteration step can be reduced to one communication process, and the parallel efficiency is greatly improved.
Another embodiment of the present application provides a flow field variable communication device, configured to execute the flow field variable communication method provided in the foregoing embodiment.
Referring to fig. 7, there is shown a block diagram of an embodiment of a flow field variable communication device of the present application, which may specifically include the following modules: a first acquisition module 701, a creation module 702, a second acquisition module 703, a compression module 704, and a transmission module 705, wherein:
the first obtaining module 701 is configured to obtain an initial computing grid, and partition the initial computing grid to obtain a plurality of grid sub-regions, where the grid sub-regions at least include a first grid sub-region and a second grid sub-region, and the first grid sub-region and the second grid sub-region are adjacent;
the creation module 702 is configured to create a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region;
the second acquiring module 703 is configured to acquire one or more flow field variable data of the first grid sub-region;
the compression module 704 is configured to compress one or more flow field variable data, and store the compressed data in a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data;
The sending module 705 is configured to send the first communication data container to the second virtual grid through a messaging mode.
According to the flow field variable communication device, the initial calculation grids are obtained, and the initial calculation grids are partitioned to obtain a plurality of grid subareas, wherein the grid subareas at least comprise a first grid subarea and a second grid subarea, and the first grid subarea is adjacent to the second grid subarea; creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region; acquiring one or more flow field variable data of a first grid subarea; compressing one or more flow field variable data and storing the compressed data in a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data; in the CFD iterative calculation process, the second virtual grid sent to the first communication data container through the message transfer mode compresses a plurality of flow field variable data by establishing the communication data container, stores the flow field variable data in the communication data container, and then sends the flow field variable data to other threads, so that a plurality of communication processes in one iteration step can be reduced to one communication process, and the parallel efficiency is greatly improved.
In another embodiment of the present application, the communication device for flow field variables provided in the foregoing embodiment is further described in additional detail.
Optionally, the flow field variable data includes at least a flow field variable type, a name, and a plurality of dimensions; the flow field variable type at least comprises one of integer data type, floating point data type or Boolean data type; the name includes at least a character string, and the array dimension includes at least two dimensions and arrays above two dimensions.
Optionally, the second acquisition module is configured to:
acquiring a memory address of flow field variable data in a first virtual grid;
sequentially cycling all interfaces in the first grid subarea, and acquiring real grid cell numbers corresponding to the interfaces;
and updating the flow field variable data of each grid unit in the first grid subarea to the data in the first virtual grid.
Optionally, the compression module is configured to:
setting a memory space for the first communication data container, and moving a memory pointer to a memory space head address;
calculating a first byte number corresponding to each flow field variable data;
calculating a first face number of each interface in the first communication data container for each interface in the first grid sub-area;
Converting the variable data of the flow field into data of a one-dimensional array according to the first byte number and the first surface number;
the one-dimensional array of data is compressed into a first communication data container.
Optionally, the sending module is configured to:
and according to the data length and the process number of the first communication data container, putting the data of the one-dimensional array into the second virtual grid in a message transmission mode, wherein the data length is the total length of the data to be transmitted, and the process number is the process number of the first grid sub-region and the process number of the adjacent grid sub-region.
Optionally, the apparatus further comprises a receiving module, where the receiving module is configured to:
receiving data corresponding to a second communication data container sent by a second virtual grid corresponding to a second grid sub-region;
converting the data in the second communication data container into a plurality of pieces of multidimensional data to obtain a plurality of pieces of multidimensional flow field variable data, and updating the original flow field variable data in the first virtual grid by the plurality of pieces of multidimensional flow field variable data.
Optionally, the receiving module is configured to:
moving the memory pointer of the received second communication data container to a memory space head address;
decompressing the data in the second communication data container, and calculating the second byte number of each decompressed flow field variable;
Calculating a second face number of each interface in the second communication data container for each interface in the second grid sub-area;
and updating the variable data of the flow field into the first virtual grid one by one according to the second byte number and the second face number.
For the device embodiments, since they are substantially similar to the method embodiments, the description is relatively simple, and reference is made to the description of the method embodiments for relevant points.
According to the flow field variable communication device, the initial calculation grids are obtained, and the initial calculation grids are partitioned to obtain a plurality of grid subareas, wherein the grid subareas at least comprise a first grid subarea and a second grid subarea, and the first grid subarea is adjacent to the second grid subarea; creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region; acquiring one or more flow field variable data of a first grid subarea; compressing one or more flow field variable data and storing the compressed data in a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data; in the CFD iterative calculation process, the second virtual grid sent to the first communication data container through the message transfer mode compresses a plurality of flow field variable data by establishing the communication data container, stores the flow field variable data in the communication data container, and then sends the flow field variable data to other threads, so that a plurality of communication processes in one iteration step can be reduced to one communication process, and the parallel efficiency is greatly improved.
An embodiment of the present application provides a terminal device configured to perform the communication method of the flow field variable provided in the embodiment.
Fig. 8 is a schematic structural diagram of a terminal device of the present application, as shown in fig. 8, including: at least one processor 801 and memory 802;
the memory stores a computer program; at least one processor executes the computer program stored in the memory to implement the method of communicating flow field variables provided by the above embodiments.
According to the terminal equipment provided by the embodiment, the initial calculation grids are obtained, and the initial calculation grids are partitioned to obtain a plurality of grid sub-areas, wherein the grid sub-areas at least comprise a first grid sub-area and a second grid sub-area, and the first grid sub-area is adjacent to the second grid sub-area; creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region; acquiring one or more flow field variable data of a first grid subarea; compressing one or more flow field variable data and storing the compressed data in a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data; in the CFD iterative calculation process, the second virtual grid sent to the first communication data container through the message transfer mode compresses a plurality of flow field variable data by establishing the communication data container, stores the flow field variable data in the communication data container, and then sends the flow field variable data to other threads, so that a plurality of communication processes in one iteration step can be reduced to one communication process, and the parallel efficiency is greatly improved.
Yet another embodiment of the present application provides a computer readable storage medium having a computer program stored therein, which when executed implements the method for communicating flow field variables provided in any of the above embodiments.
According to the computer readable storage medium of the embodiment, by acquiring an initial calculation grid and partitioning the initial calculation grid, a plurality of grid sub-areas are obtained, wherein the grid sub-areas at least comprise a first grid sub-area and a second grid sub-area, and the first grid sub-area is adjacent to the second grid sub-area; creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region; acquiring one or more flow field variable data of a first grid subarea; compressing one or more flow field variable data and storing the compressed data in a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data; in the CFD iterative calculation process, the second virtual grid sent to the first communication data container through the message transfer mode compresses a plurality of flow field variable data by establishing the communication data container, stores the flow field variable data in the communication data container, and then sends the flow field variable data to other threads, so that a plurality of communication processes in one iteration step can be reduced to one communication process, and the parallel efficiency is greatly improved.
It should be noted that the foregoing detailed description is exemplary and is intended to provide further explanation of the invention. Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs.
It is noted that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of example embodiments in accordance with the present application. As used herein, the singular is intended to include the plural unless the context clearly indicates otherwise. Furthermore, it will be further understood that the terms "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, steps, operations, devices, components, and/or groups thereof.
It should be noted that the terms "first," "second," and the like in the description and claims of the present application and the above figures are used for distinguishing between similar objects and not necessarily for describing a particular sequential or chronological order. It is to be understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the application described herein are capable of operation in sequences other than those illustrated or otherwise described herein.
Furthermore, the terms "comprise" and "have," as well as any variations thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, system, article, or apparatus that comprises a list of steps or elements is not necessarily limited to those elements but may include other steps or elements not expressly listed or inherent to such process, method, article, or apparatus.
Spatially relative terms, such as "above … …," "above … …," "upper surface at … …," "above," and the like, may be used herein for ease of description to describe one device or feature's spatial location relative to another device or feature as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations in use or operation in addition to the orientation depicted in the figures. For example, if the device in the figures is turned over, elements described as "above" or "over" other devices or structures would then be oriented "below" or "beneath" the other devices or structures. Thus, the exemplary term "above … …" may include both orientations of "above … …" and "below … …". The device may also be positioned in other different ways, such as rotated 90 degrees or at other orientations, and the spatially relative descriptors used herein interpreted accordingly.
In the above detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, like numerals typically identify like components unless context indicates otherwise. The illustrated embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented herein.
The foregoing description is only of the preferred embodiments of the present application and is not intended to limit the same, but rather, various modifications and variations may be made by those skilled in the art. Any modification, equivalent replacement, improvement, etc. made within the spirit and principles of the present application should be included in the protection scope of the present application.

Claims (10)

1. A method of communicating flow field variables, the method comprising:
acquiring an initial computing grid, and partitioning the initial computing grid to obtain a plurality of grid sub-areas, wherein the grid sub-areas at least comprise a first grid sub-area and a second grid sub-area, and the first grid sub-area is adjacent to the second grid sub-area;
Creating a first virtual grid corresponding to the first grid sub-region and a second virtual grid corresponding to the second grid sub-region;
acquiring one or more flow field variable data of the first grid subarea;
compressing one or more of the flow field variable data and storing the compressed data in a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data;
and transmitting the first communication data container to the second virtual grid through a message passing mode.
2. The method of communicating flow field variables according to claim 1, wherein the flow field variable data comprises at least flow field variable type, name and array dimensions; the flow field variable type at least comprises one of integer data type, floating point data type or Boolean data type; the name at least comprises a character string, and the array dimension at least comprises two-dimensional arrays and arrays with more than two dimensions.
3. The method of communicating flow field variables according to claim 2, wherein the acquiring one or more flow field variable data of the first grid sub-region comprises:
Acquiring a memory address of the flow field variable data in the first virtual grid;
sequentially cycling all interfaces in the first grid subarea, and acquiring real grid cell numbers corresponding to the interfaces;
and updating the data in the first virtual grid by sequentially updating the variable data of the flow field of each grid unit in the first grid subarea.
4. A method of communicating flow field variables according to claim 3, wherein said compressing said one or more of said flow field variable data and storing the compressed data in a first communication data container comprises:
setting a memory space for the first communication data container, and moving a memory pointer to the memory space head address;
calculating a first byte number corresponding to each flow field variable data;
calculating a first face number of each interface in the first communication data container for each interface within the first grid sub-region;
converting the variable data of the flow field into data of a one-dimensional array according to the first byte number and the first surface number;
and compressing the data of the one-dimensional array to the first communication data container.
5. The method of communicating flow field variables according to claim 4, wherein the second virtual grid to which the first communication data container is sent by a messaging mode, comprises:
and according to the data length and the process number of the first communication data container, a message transmission mode is adopted to put the data of the one-dimensional array into the second virtual grid, wherein the data length is the total length of the data to be transmitted, and the process number is the process number of the first grid sub-region and the process number of the adjacent grid sub-region.
6. The method of communicating flow field variables of claim 1, further comprising:
receiving data corresponding to a second communication data container sent by a second virtual grid corresponding to the second grid sub-region;
converting the data in the second communication data container into data of a plurality of multi-dimensional data to obtain a plurality of multi-dimensional flow field variable data, and updating the original flow field variable data in the first virtual grid by the plurality of multi-dimensional flow field variable data.
7. The method for communicating flow field variables according to claim 6, wherein converting the data in the second communication data container into data of a plurality of multi-dimensional data to obtain a plurality of multi-dimensional flow field variable data, and updating the original flow field variable data in the first virtual grid by the plurality of multi-dimensional flow field variable data, comprises:
Moving the memory pointer of the received second communication data container to a memory space head address;
decompressing the data in the second communication data container, and calculating the second byte number of each decompressed flow field variable;
calculating a second face number of each interface in the second communication data container for each interface in a second grid sub-area;
and updating the variable data of the flow field into the first virtual grid one by one according to the second byte number and the second face number.
8. A flow field variable communication device, the device comprising:
the first acquisition module is used for acquiring an initial calculation grid, partitioning the initial calculation grid to obtain a plurality of grid sub-areas, wherein the grid sub-areas at least comprise a first grid sub-area and a second grid sub-area, and the first grid sub-area is adjacent to the second grid sub-area;
the creating module is used for creating a first virtual grid corresponding to the first grid subarea and a second virtual grid corresponding to the second grid subarea;
a second acquisition module, configured to acquire one or more flow field variable data of the first grid sub-region;
The compression module is used for compressing one or more flow field variable data and storing the compressed data into a first communication data container; the flow field variable data are a plurality of multi-dimensional array data, and the compressed data are one-dimensional array data;
and the sending module is used for sending the first communication data container to the second virtual grid through a message transmission mode.
9. A terminal device, comprising: at least one processor and memory;
the memory stores a computer program; the at least one processor executes the computer program stored by the memory to implement the method of communicating flow field variables of any one of claims 1-7.
10. A computer readable storage medium, characterized in that a computer program is stored in the computer readable storage medium, which computer program, when executed, implements the communication method of flow field variables according to any one of claims 1-7.
CN202310505506.7A 2023-05-08 2023-05-08 Communication method and device of flow field variable, terminal equipment and storage medium Active CN116225722B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310505506.7A CN116225722B (en) 2023-05-08 2023-05-08 Communication method and device of flow field variable, terminal equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310505506.7A CN116225722B (en) 2023-05-08 2023-05-08 Communication method and device of flow field variable, terminal equipment and storage medium

Publications (2)

Publication Number Publication Date
CN116225722A true CN116225722A (en) 2023-06-06
CN116225722B CN116225722B (en) 2023-07-14

Family

ID=86584644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310505506.7A Active CN116225722B (en) 2023-05-08 2023-05-08 Communication method and device of flow field variable, terminal equipment and storage medium

Country Status (1)

Country Link
CN (1) CN116225722B (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116522827A (en) * 2023-07-04 2023-08-01 北京凌云智擎软件有限公司 Method, equipment and device for reconstructing flow variable of grid cell boundary surface
CN117609169A (en) * 2024-01-24 2024-02-27 中国空气动力研究与发展中心计算空气动力研究所 Parallel flow field in-situ lossless compression method and system based on single file

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170213156A1 (en) * 2016-01-27 2017-07-27 Bonsai AI, Inc. Artificial intelligence engine having multiple independent processes on a cloud based platform configured to scale
CN109088776A (en) * 2018-09-12 2018-12-25 西安交通大学 A kind of parallel C FD calculating optimization method Chong Die with communication based on supercomputer
CN113254241A (en) * 2021-06-25 2021-08-13 中国空气动力研究与发展中心计算空气动力研究所 Data cross-process transmission method applied to CFD high-performance computation
CN113392472A (en) * 2021-08-17 2021-09-14 北京航空航天大学 OpenMP parallel disturbance domain updating method for aircraft aerodynamic characteristic simulation
CN113900808A (en) * 2021-10-09 2022-01-07 合肥工业大学 MPI parallel data structure based on arbitrary polyhedron unstructured grid
CN114490011A (en) * 2020-11-12 2022-05-13 上海交通大学 Parallel acceleration implementation method of N-body simulation in heterogeneous architecture
CN115080225A (en) * 2022-03-07 2022-09-20 中山大学 Single-source shortest path calculation method and system
US11481329B1 (en) * 2019-07-15 2022-10-25 Reservoir Labs, Inc. Optimizing memory bandwidth in spatial architectures
CN115659727A (en) * 2022-10-12 2023-01-31 重庆大学 Grid division method with spiral complex structure
CN115827235A (en) * 2022-12-12 2023-03-21 招银云创信息技术有限公司 Control method of distributed system and storage medium

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170213156A1 (en) * 2016-01-27 2017-07-27 Bonsai AI, Inc. Artificial intelligence engine having multiple independent processes on a cloud based platform configured to scale
CN109088776A (en) * 2018-09-12 2018-12-25 西安交通大学 A kind of parallel C FD calculating optimization method Chong Die with communication based on supercomputer
US11481329B1 (en) * 2019-07-15 2022-10-25 Reservoir Labs, Inc. Optimizing memory bandwidth in spatial architectures
CN114490011A (en) * 2020-11-12 2022-05-13 上海交通大学 Parallel acceleration implementation method of N-body simulation in heterogeneous architecture
CN113254241A (en) * 2021-06-25 2021-08-13 中国空气动力研究与发展中心计算空气动力研究所 Data cross-process transmission method applied to CFD high-performance computation
CN113392472A (en) * 2021-08-17 2021-09-14 北京航空航天大学 OpenMP parallel disturbance domain updating method for aircraft aerodynamic characteristic simulation
CN113900808A (en) * 2021-10-09 2022-01-07 合肥工业大学 MPI parallel data structure based on arbitrary polyhedron unstructured grid
CN115080225A (en) * 2022-03-07 2022-09-20 中山大学 Single-source shortest path calculation method and system
CN115659727A (en) * 2022-10-12 2023-01-31 重庆大学 Grid division method with spiral complex structure
CN115827235A (en) * 2022-12-12 2023-03-21 招银云创信息技术有限公司 Control method of distributed system and storage medium

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
XI ZHANG: ""Hybrid MPI and CUDA paralleled finite volume unstructured CFD simulations on a multi-GPU system"", 《FUTURE GENERATION COMPUTER SYSTEMS》, vol. 139, pages 1 - 16 *
YURK: "\"并行计算-粒度\"", pages 1 - 5, Retrieved from the Internet <URL:《https://zhuanlan.zhihu.com/p/439869221》> *
李华兵: "\"基于CUDA架构的LBM共享内存计算优化\"", 《桂林电子科技大学学报》, vol. 40, no. 04, pages 333 - 337 *
赵钟: ""适用于任意网格的大规模并行CFD计算框架PHengLEI"", 《计算机学报》, vol. 42, no. 11, pages 2368 - 2383 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116522827A (en) * 2023-07-04 2023-08-01 北京凌云智擎软件有限公司 Method, equipment and device for reconstructing flow variable of grid cell boundary surface
CN116522827B (en) * 2023-07-04 2023-10-20 北京凌云智擎软件有限公司 Flow variable reconstruction method, equipment and device for calculation of aerodynamic thermal environment
CN117609169A (en) * 2024-01-24 2024-02-27 中国空气动力研究与发展中心计算空气动力研究所 Parallel flow field in-situ lossless compression method and system based on single file
CN117609169B (en) * 2024-01-24 2024-03-26 中国空气动力研究与发展中心计算空气动力研究所 Parallel flow field in-situ lossless compression method and system based on single file

Also Published As

Publication number Publication date
CN116225722B (en) 2023-07-14

Similar Documents

Publication Publication Date Title
CN116225722B (en) Communication method and device of flow field variable, terminal equipment and storage medium
CN109145255B (en) Heterogeneous parallel computing method for updating sparse matrix LU decomposition row
CN109002659B (en) Fluid machinery simulation program optimization method based on super computer
CN115016951B (en) Flow field numerical simulation method and device, computer equipment and storage medium
CN113254241B (en) Data cross-process transmission method applied to CFD high-performance computation
CN116258042B (en) Large-scale heat transfer heterogeneous parallel simulation method based on DDM
Mudalige et al. A plug-and-play model for evaluating wavefront computations on parallel architectures
CN112861374B (en) Multi-physical coupling simulation processing method, device and equipment based on pre-controller
CN113177335B (en) Automatic generation method and system for large-scale grid of full reactor core structure of fast neutron reactor
CN103235717B (en) There is the processor of polymorphic instruction set architecture
CN115906684A (en) Hydrodynamics multi-grid solver parallel optimization method for Shenwei architecture
CN114511094B (en) Quantum algorithm optimization method and device, storage medium and electronic device
CN113157806B (en) Grid data distributed storage service system, method, device, equipment and medium
CN110209631A (en) Big data processing method and its processing system
Kumar et al. Spatially-aware parallel I/O for particle data
Yu et al. GPU-based JFNG method for power system transient dynamic simulation
Poyraz et al. Application-specific I/O optimizations on petascale supercomputers
CN107608786A (en) A kind of high stored building group Method of Seismic Disaster Analysisof based on GPU and Distributed Calculation
Cohen et al. Statistical analysis of message passing programs to guide computer design
Yellapragada Analysis of communication and computation overlap in accelerated programs
Mackay et al. A study of I/O in a parallel finite element groundwater transport code
Namburu et al. An effective data parallel self‐starting explicit methodology for computational structural dynamics on the connection machine CM‐5
JPH06348746A (en) Finite element method oscillation analysis system for multiprocessor
Wu et al. MPI derived datatypes and data communication analysis in meteorological applications
CN112559435A (en) Many-core parallel optimization method based on large-scale three-dimensional matrix transposition of on-chip blocking

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant