A high-precision ephemeris orbit parallel processing method, device, equipment and medium
By allocating multiple sets of task parameters to multiple subthreads in aerospace missions, the problem of wasting computing resources and repeatedly opening simulation scenarios is solved, the computing efficiency of high-precision ephemeris orbit simulation software is improved, and large-scale computing needs are supported.
Patent Information
- Application Number
- CN202410030754.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-09
- Publication Date
- 2025-01-10
- Estimated Expiration
- 2044-01-09
AI Technical Summary
The existing parallel computing methods have problems in aerospace missions with wasted computing resources and repeated activation of high-precision ephemeris orbit simulation scenarios, resulting in inefficient computing efficiency.
By obtaining multiple sets of task parameters and assigning them to multiple subthreads for parallel processing, real-time interaction of each set of task parameters and storing processing results, avoiding repeated opening of simulation scenarios and improving computing efficiency.
It improves the parallel computing efficiency of high-precision ephemeris orbit simulation software, saves computing resources, and supports large-scale computing needs.
Smart Images

Figure CN117873678B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of software engineering technology, and in particular to a high-precision ephemeris orbit parallel processing method, device, equipment and medium. Background Art
[0002] In the design and calculation of space missions, we often face the need for Monte Carlo random simulation or optimization calculation, which requires looping or iterating calculations on a large amount of data to obtain results that meet the constraints. Most existing calculations use a method that evenly distributes the computational load of each sub-thread, and after each parallel calculation, the sub-thread will end, close the calculation scene, and return to the main program before the next loop and data distribution. The current parallel computing method has limitations. On the one hand, due to the differences in the running time of different data groups, if the computational load of the sub-threads is evenly distributed, it may cause a single thread to be too long or too short, resulting in idle sub-threads and a waste of computing resources. On the other hand, when running each set of data, there is a need to repeatedly open and set up a high-precision ephemeris orbit simulation scene, which wastes a lot of time and makes it difficult to take advantage of parallel computing. Summary of the invention
[0003] The technical problem to be solved by the present invention is to provide a high-precision ephemeris orbit parallel processing method, device, equipment and medium, aiming to solve at least one of the above technical problems.
[0004] In a first aspect, the technical solution of the present invention to solve the above technical problem is as follows: a high-precision ephemeris orbit parallel processing method, the method comprising:
[0005] Acquire multiple groups of mission parameters corresponding to the pending space missions, where the pending space missions are missions related to the ephemeris orbit;
[0006] Determine a plurality of sub-threads corresponding to the space mission to be processed, each sub-thread correspondingly runs a high-precision ephemeris orbit simulation software, and the high-precision ephemeris orbit simulation software is used to process a set of mission parameters to obtain a processing result corresponding to the set of mission parameters;
[0007] According to the multiple groups of task parameters, a processing result corresponding to each group of task parameters is determined by using multiple sub-threads in a parallel processing manner.
[0008] The beneficial effect of the present invention is that multiple groups of task parameters corresponding to the space missions to be processed are processed in parallel based on multiple sub-threads, thereby realizing the function of real-time interaction between the client (the client corresponding to the main program that generates multiple groups of task parameters) and the parallel program data information, so as to improve the parallel computing efficiency of high-precision ephemeris orbit simulation software.
[0009] Based on the above technical solution, the present invention can also be improved as follows.
[0010] Furthermore, the above-mentioned method of determining the processing result corresponding to each group of the task parameters by using the plurality of sub-threads in a parallel processing manner according to the plurality of groups of the task parameters includes:
[0011] For each of the sub-threads, a set of the task parameters is allocated to the sub-thread, so that the sub-thread performs processing according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain processing results corresponding to the set of task parameters, and after a set of processing results corresponding to the task parameters are obtained through the sub-thread processing, another set of task parameters is allocated to the sub-thread until the last set of task parameters in the multiple sets of task parameters is allocated.
[0012] The beneficial effect of adopting the above further scheme is that in the process of using multiple sub-threads to perform parallel processing on multiple groups of task parameters, the different processing capabilities of each sub-thread are taken into consideration. Therefore, for each sub-thread, after the sub-thread processes one group of task parameters, it can continue to process the next group until the last group of task parameters in the multiple groups of task parameters is allocated, thereby realizing parallel processing of all task parameters and improving processing efficiency.
[0013] Further, for each of the sub-threads, the above-mentioned allocation of a set of the task parameters to the sub-thread, so that the sub-thread performs processing according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain processing results corresponding to the set of task parameters, includes:
[0014] Determine whether the input parameter storage space corresponding to the child thread is free;
[0015] If the input parameter storage space corresponding to the sub-thread is free, allocate a set of the task parameters to the input parameter storage space corresponding to the sub-thread, so that the sub-thread processes according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain the processing results corresponding to the set of task parameters, and store the processing results in the output result storage space corresponding to the sub-thread.
[0016] The beneficial effect of adopting the above further scheme is that based on the setting of the input parameter storage space and the output result storage space corresponding to each sub-thread, the processing efficiency of each sub-thread can be further improved, and real-time information interaction between each sub-thread and the main program can be achieved.
[0017] Further, for each of the sub-threads, the method further includes:
[0018] When the child thread processes a corresponding set of task parameters, generating processing process information;
[0019] Determine whether the process information storage space corresponding to the child thread is free;
[0020] If the process information storage space corresponding to the child thread is free, storing the processing process information in the process information storage space corresponding to the child thread;
[0021] If the process information storage space corresponding to the child thread is not empty, the process information storage space corresponding to the child thread is cleared, and the processing process information is stored in the cleared process information storage space corresponding to the child thread.
[0022] The beneficial effect of adopting the above further solution is that, based on the setting of the process information storage space corresponding to each sub-thread, interference of the processing process information can be avoided during the processing of each sub-thread.
[0023] Further, for each of the sub-threads, allocating a set of the task parameters to the sub-threads so that the sub-threads perform processing according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain processing results corresponding to the set of task parameters includes:
[0024] Starting the child thread and generating a first waiting state flag, wherein the first waiting state flag indicates that the child thread is in a state allowing data to be received;
[0025] Allocating a set of the task parameters to the child thread, generating a second waiting state identifier, wherein the second waiting state identifier indicates that the child thread is in a state where a set of task data has been received and the child thread is processing the set of task data;
[0026] After all task parameters have been allocated, a third waiting state identifier is generated, the child thread is switched to the state corresponding to the first waiting state identifier, and the processing result corresponding to the child thread is stored in the output result storage space corresponding to the child thread, and the third waiting state identifier indicates that all task parameters have been allocated.
[0027] The beneficial effect of adopting the above further solution is that, during the working process of each sub-thread, the state of the sub-thread can be represented by different waiting state identifiers, so that the working conditions of each sub-thread can be timely understood and controlled.
[0028] Furthermore, the method further comprises:
[0029] According to the processing results corresponding to the sub-threads and the thread identifiers corresponding to the sub-threads, the processing results corresponding to the sub-threads are stored in a key-value format.
[0030] The beneficial effect of adopting the above further solution is that the processing results corresponding to each of the sub-threads are stored in a key-value format, which makes it easy to manage the processing results corresponding to each of the sub-threads.
[0031] Furthermore, before obtaining the multiple groups of task parameters corresponding to the aerospace tasks to be processed, the method further includes:
[0032] For each of the sub-threads, a group of task parameters is sent to the sub-thread so that the sub-thread processes the group of task parameters, obtains processing results corresponding to the group of task parameters, and debugs the processing program corresponding to the sub-thread according to the processing results.
[0033] The beneficial effect of adopting the above further scheme is that a set of task parameters are first processed based on the sub-thread, and the processing program corresponding to the sub-thread can be debugged based on the processing result. Compared with the parallel method of encapsulating the sub-thread calculation, it can provide a more transparent debugging method and is more flexible.
[0034] In a second aspect, in order to solve the above technical problem, the present invention also provides a high-precision ephemeris orbit parallel processing device, the device comprising:
[0035] A task parameter acquisition module, used to acquire multiple groups of task parameters corresponding to the space mission to be processed, wherein the space mission to be processed is a task related to the ephemeris orbit;
[0036] A sub-thread determination module is used to determine a plurality of sub-threads corresponding to the space mission to be processed, each sub-thread correspondingly runs a high-precision ephemeris orbit simulation software, and the high-precision ephemeris orbit simulation software is used to process a group of mission parameters to obtain a processing result corresponding to the group of mission parameters;
[0037] The parallel processing module is used to determine the processing result corresponding to each group of task parameters by using a parallel processing method of a plurality of sub-threads according to the plurality of groups of task parameters.
[0038] In a third aspect, in order to solve the above-mentioned technical problem, the present invention also provides an electronic device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and when the processor executes the computer program, the high-precision ephemeris orbit parallel processing method of the present application is implemented.
[0039] In a fourth aspect, in order to solve the above-mentioned technical problem, the present invention further provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the high-precision ephemeris orbit parallel processing method of the present application is implemented.
[0040] Additional aspects and advantages of the present application will be partially given in the following description, which will become apparent from the following description, or will be understood through the practice of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings required for describing the embodiments of the present invention are briefly introduced below.
[0042] Figure 1 A schematic diagram of a process flow of a high-precision ephemeris orbit parallel processing method provided by an embodiment of the present invention;
[0043] Figure 2 A schematic flow chart of another high-precision ephemeris orbit parallel processing method provided by an embodiment of the present invention;
[0044] Figure 3 A flowchart of information interaction between a client (main program) and a sub-thread in a high-precision ephemeris orbit parallel processing method provided by an embodiment of the present invention;
[0045] Figure 4 A schematic diagram of the structure of a high-precision ephemeris orbit parallel processing device provided by one embodiment of the present invention;
[0046] Figure 5 A schematic diagram of the structure of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0047] The principles and features of the present invention are described below. The examples given are only used to explain the present invention and are not used to limit the scope of the present invention.
[0048] The technical solution of the present invention and how the technical solution of the present invention solves the above-mentioned technical problems are described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present invention will be described below in conjunction with the accompanying drawings.
[0049] The solution provided by the embodiment of the present invention can be applied to any application scenario that requires parallel processing of multiple sets of task parameters. The solution provided by the embodiment of the present invention can be executed by any electronic device, for example, it can be a user's terminal device, on which high-precision ephemeris orbit simulation software is installed and run. The program running on the terminal device for controlling each sub-thread to realize parallel task processing can be called a main program, and the terminal device can also be called a client running high-precision ephemeris orbit simulation software. The above-mentioned terminal devices include tablet computers, laptop computers, desktop computers, etc.
[0050] The embodiment of the present invention provides a possible implementation method, such as Figure 1 As shown in FIG. 1 , a flowchart of a high-precision ephemeris orbit parallel processing method is provided. The scheme can be implemented by a processor corresponding to the main program, such as a CPU. For the convenience of description, the method provided by the embodiment of the present invention will be described below by taking the processor as the execution subject as an example. Figure 1 The method may include the following steps:
[0051] Step S110, obtaining multiple groups of mission parameters corresponding to the space mission to be processed, wherein the space mission to be processed is a mission related to the ephemeris orbit;
[0052] Step S120, determining a plurality of sub-threads corresponding to the space mission to be processed, each sub-thread correspondingly running a high-precision ephemeris orbit simulation software, the high-precision ephemeris orbit simulation software being used to process a set of mission parameters to obtain a processing result corresponding to the set of mission parameters;
[0053] Step S130, according to the multiple groups of task parameters, a processing result corresponding to each group of task parameters is determined by using multiple sub-threads in a parallel processing manner.
[0054] Through the method of the present invention, multiple groups of task parameters corresponding to the space missions to be processed are processed in parallel based on multiple sub-threads, and the function of real-time interaction between the client (the client corresponding to the main program that generates the multiple groups of task parameters) and the parallel program data information is realized, so as to improve the parallel computing efficiency of the high-precision ephemeris orbit simulation software.
[0055] The scheme of the present invention is further described below in conjunction with the following specific embodiments. Before executing this scheme, first, parallel parameters and multiple groups of task parameters can be set. The parallel parameters may include but are not limited to the number of parallel sub-threads. In order to ensure the computing efficiency of the sub-threads and the normal operation of the software process, when the running time is too long, the parallel parameters may also include the task scene reset time and the sub-process reset time.
[0056] Among them, the number of parallel sub-threads refers to the number of sub-threads that can participate in parallel processing, the task scenario reset time refers to the restart time interval of the high-precision ephemeris orbit simulation software, and the high-precision ephemeris orbit simulation software can be restarted according to the restart time interval to ensure the normal operation of each high-precision ephemeris orbit simulation software, and the sub-process reset time refers to the sub-thread reset time interval, and the sub-thread can be reset according to the sub-thread reset time interval to ensure the normal operation of each sub-thread without being interfered by other factors.
[0057] Optionally, the number of sub-threads mentioned above can be determined based on the number of CPU cores of all terminal devices (terminal devices participating in this solution and used to run various high-precision ephemeris orbit simulation software). Generally, in order to ensure smooth operation of the program, the number of sub-threads should be less than the number of CPU cores.
[0058] Before executing the scheme, that is, before executing the parallel task, the sub-thread may be tested first. For the main program, the test process may be called the working mode 1 of the sub-thread, and the working mode corresponding to the parallel task may be called the working mode 2 of the sub-thread. The specific implementation method corresponding to the working mode 1 is as follows:
[0059] Since each sub-thread is the same, it is sufficient to test one of the sub-threads. For each sub-thread, a set of task parameters is sent to the sub-thread so that the sub-thread processes the set of task parameters and obtains the processing results corresponding to the set of task parameters. The processing program corresponding to the sub-thread is debugged according to the processing results to verify the correctness of the sub-thread. Here, functions such as breakpoint pause can be used, that is, the processing process of the entire solution is paused, and the above debugging is performed. After the debugging is completed, the corresponding processing process when it was paused is continued.
[0060] Optionally, the program corresponding to the working mode 1 of the sub-thread is called in the "sub-thread program test" step in the main program; the program corresponding to the working mode 2 of the sub-thread is submitted to the sub-thread in the "establish and run background parallel sub-thread" step in the main program, and the calculation process is started.
[0061] Optionally, before executing the solution corresponding to the following working mode 2, the parallel tasks currently being run in the client corresponding to each sub-thread may also be terminated to ensure that the number of parallel tasks in each client is 0, so as to avoid errors in information interaction when executing the solution corresponding to working mode 2.
[0062] It should be noted that when working mode 2 is processed in parallel, the input and output of task parameters are realized through the information interaction storage space (the general term for the various storage spaces appearing below), and several parallel sub-threads have been started, and functions such as breakpoint pause cannot be used.
[0063] After the above settings, this solution can be executed. In this embodiment, the high-precision ephemeris orbit parallel processing method may include the following steps:
[0064] Step S110, obtaining multiple groups of mission parameters corresponding to the space mission to be processed, wherein the space mission to be processed is a mission related to the ephemeris orbit;
[0065] Among them, the space mission to be processed can be a mission related to the ephemeris orbit. Therefore, multiple groups of mission parameters are also parameters related to the ephemeris orbit, such as the state parameters corresponding to the spacecraft when it is running in the ephemeris orbit. Each group of state parameters can be composed of speed and position.
[0066] Step S120, determining a plurality of sub-threads corresponding to the space mission to be processed, each sub-thread correspondingly running a high-precision ephemeris orbit simulation software, the high-precision ephemeris orbit simulation software being used to process a set of mission parameters to obtain a processing result corresponding to the set of mission parameters;
[0067] After determining multiple sub-threads, the main program can allocate multiple sub-threads to the space missions to be processed, and then submit the calculation program used by the sub-threads to process the mission parameters (the program corresponding to the high-precision ephemeris orbit simulation software) to the sub-threads so that the sub-threads can process the mission parameters.
[0068] Among them, the high-precision ephemeris orbit simulation software is a software in the prior art, which can perform calculations based on mission parameters to obtain corresponding processing results.
[0069] Step S130, according to the multiple groups of task parameters, a processing result corresponding to each group of task parameters is determined by using multiple sub-threads in a parallel processing manner.
[0070] The parallel processing method refers to that multiple sub-threads can process corresponding task parameters at the same time, which can improve the computing efficiency. It can be understood that since each sub-thread runs a high-precision ephemeris orbit simulation software, in the parallel processing process, the high-precision ephemeris orbit simulation software processes the corresponding task parameters to obtain the corresponding processing results, which are the outputs of the high-precision ephemeris orbit simulation software.
[0071] Optionally, in the above step S130, according to the multiple groups of task parameters, a processing result corresponding to each group of the task parameters is determined by using the multiple sub-threads in a parallel processing manner, including:
[0072] S1301, for each of the sub-threads, a set of the task parameters is allocated to the sub-thread, so that the sub-thread is processed by the high-precision ephemeris orbit simulation software according to the set of task parameters to obtain processing results corresponding to the set of task parameters, and after a set of processing results corresponding to the task parameters are obtained by the sub-thread processing, another set of task parameters is allocated to the sub-thread until the last set of task parameters in the multiple sets of task parameters is allocated.
[0073] Optionally, each child thread may correspond to a thread identifier, so that the main program can know the identity of the child thread.
[0074] Optionally, for each of the sub-threads, in the above S1301, a group of the task parameters is allocated to the sub-thread, so that the sub-thread performs processing according to the group of task parameters through the high-precision ephemeris orbit simulation software to obtain processing results corresponding to the group of task parameters, including:
[0075] S13011, determining whether the input parameter storage space corresponding to the child thread is free;
[0076] S13012: If the input parameter storage space corresponding to the sub-thread is free, allocate a set of the task parameters to the input parameter storage space corresponding to the sub-thread, so that the sub-thread performs processing according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain the processing results corresponding to the set of task parameters, and store the processing results in the output result storage space corresponding to the sub-thread.
[0077] The input parameter storage space is used to store task parameters. For each sub-thread, the input parameter storage space corresponding to the sub-thread can only store one set of task parameters at a time. For a sub-thread, the output result storage space corresponding to the sub-thread is used to temporarily store the processing result corresponding to the sub-thread. After all task parameters are allocated and the processing result corresponding to each set of task parameters is obtained, the processing results temporarily stored by each sub-thread can be stored in a unified storage space.
[0078] Optionally, before determining whether the input parameter storage space corresponding to the sub-thread is free, for each sub-thread, the main program may first pass to the sub-thread a command to start this round of simulation, that is, an instruction to prepare to start parallel processing. Based on this instruction, the sub-thread can know that parallel processing is about to be performed.
[0079] Optionally, the input parameter storage space corresponding to each sub-thread may correspond to a space identifier, which can be used to indicate which sub-thread the input parameter storage space belongs to. As an example, the space identifier of the input parameter storage space corresponding to the sub-thread can be expressed as: xid, where x represents the input parameter storage space, and id is the thread identifier of the sub-thread (which can be a serial number).
[0080] Optionally, the output result storage space corresponding to each sub-thread may also correspond to a space identifier, which can be used to indicate which sub-thread the output result storage space belongs to. As an example, the space identifier of the output result storage space corresponding to the sub-thread can be expressed as: res-id, where res represents the output result storage space, and id is the thread identifier of the sub-thread (which can be a serial number).
[0081] Optionally, for each of the sub-threads, the method further includes:
[0082] S13013, when the child thread processes a corresponding set of task parameters, generating processing process information; determining whether the process information storage space corresponding to the child thread is free; if the process information storage space corresponding to the child thread is free, storing the processing process information in the process information storage space corresponding to the child thread;
[0083] S13014: If the process information storage space corresponding to the child thread is not empty, clear the process information storage space corresponding to the child thread, and store the processing process information in the cleared process information storage space corresponding to the child thread.
[0084] Among them, process processing information refers to information that is irrelevant to the corresponding substantive content in the task parameter processing process, such as the processing time of a subthread processing a set of task parameters, whether there are any abnormalities in the processing process, etc. Based on the processing process information, the main program can clearly understand the processing status of each subthread and give feedback in time. When the process information storage space corresponding to the subthread is not empty, in order to ensure that the information currently stored in the process information storage space is not lost, it can be read first and then cleared.
[0085] Optionally, the process information storage space corresponding to each child thread may also correspond to a space identifier, which can be used to indicate which child thread the process information storage space belongs to. As an example, the space identifier of the output process information storage space corresponding to the child thread can be expressed as: info-id, where info represents the process information storage space, and id is the thread identifier of the child thread (which can be a serial number).
[0086] Optionally, for each of the sub-threads, if the process information storage space corresponding to the sub-thread is not empty, it can also be displayed through the main program.
[0087] Optionally, after all groups of task parameters are assigned, the main program may transmit the key value corresponding to the current loop end instruction to all sub-threads, so as to recycle the processing results stored in the output result storage space corresponding to the sub-thread according to the key value, and store the processing results corresponding to each sub-thread in the form of key-value according to the processing results corresponding to each sub-thread and the thread identifier corresponding to each sub-thread. The key represents the sub-thread, and the value represents the processing result corresponding to the sub-thread.
[0088] After all the task parameters of all groups are assigned, and the processing results corresponding to the task parameters of each group are obtained, the method further includes:
[0089] Check whether the data volume of the processing result is the same as the number of groups of task parameters, that is, whether one group of task parameters corresponds to one processing result.
[0090] The processing results can also be sorted according to the order of each group of task parameters. For example, the task parameters corresponding to the first to tenth groups are sorted from 1 to 10, and the corresponding processing results are also sorted according to the order of the first to tenth groups, that is, the processing results corresponding to the first group and the processing results corresponding to the second group are sorted in sequence to the processing results corresponding to the tenth group.
[0091] Optionally, the data generation and calculation module in the main program may include several loop calculations or optimization iterations. Each loop or iteration will generate a "packet" of data, and each pack of data will be processed together. The size of a pack of data is a matrix of nMC*n, where nMC is the number of groups of task parameters, and each row is a group of data; a group of data is a 1*n row vector, which is the amount of data required for one calculation; the unit data structure is not limited;
[0092] After calculating and obtaining the processing results corresponding to each task parameter, the method further includes:
[0093] The main program transmits the key value corresponding to the program end instruction to all sub-threads, and based on the key value, each sub-thread can end its own work.
[0094] Optionally, for each of the sub-threads, in the above S1301, a group of the task parameters is allocated to the sub-thread, so that the sub-thread performs processing according to the group of task parameters through the high-precision ephemeris orbit simulation software to obtain processing results corresponding to the group of task parameters, including:
[0095] S1302, start the child thread, at this time, the child thread start key value sent by the main program can be received, and a first waiting state identifier can be generated based on the key value, and the first waiting state identifier indicates that the child thread is in a state that allows receiving data;
[0096] S1303, when starting a group of data allocation process, a group of task parameters are allocated to the child thread, and at this time a group of data transmission start key values transmitted by the main program can be received, and a second waiting state identifier can be generated based on the key values, and the second waiting state identifier indicates that the child thread is in a state of having received a group of task data and processing the group of task data;
[0097] S1304, after all task parameters have been allocated, generate a third waiting state identifier, switch the child thread to the state corresponding to the first waiting state identifier, and store the processing result corresponding to the child thread in the output result storage space corresponding to the child thread, and the third waiting state identifier indicates that all task parameters have been allocated.
[0098] Based on the settings of the above-mentioned waiting state identifiers, the parallel processing process of this solution is as follows:
[0099] For each child thread, when a piece of data (a set of task parameters) is read from the input parameter storage space (x-id) corresponding to the child thread, it is put into the high-precision ephemeris orbit simulation software for calculation, and a corresponding calculation result (processing result) is saved; after the data in the input parameter storage space corresponding to the child thread is read, the value is cleared to wait for the next input of the task parameter; the above process of reading data and processing data is executed in a loop; during the processing, if there is any processing process information, it is stored in the process information storage space (i nfo-id) corresponding to the child thread; until a set of data transmission end key values (third waiting state identifier) transmitted by the main program is received, the processing results of the temporarily stored multiple sets of data are stored in the output result storage space (res-id) corresponding to the child thread, and the state corresponding to the first waiting state identifier is switched to wait for the allocation of the next set of data, and the above parallel processing process is repeated.
[0100] In the present application, each sub-thread has three pairs of key values in the information interaction storage space: task parameters (x-id), processing results (res-id), and process processing information (i nfo-id); the program running status can be judged by reading the data in the key value and judging by its presence or absence.
[0101] In the present application, other key values may be set in the information interaction storage space to control the opening, running and ending of the program.
[0102] Among them, the information interaction storage space is a storage space for parallel tasks, which can be shared between the client (main program) and each sub-thread; wherein, the storage method is a "key-value" combination, and the value corresponding to the key can be obtained through the name of the "key".
[0103] The steps corresponding to "allocation of task parameters and collection of processing results" in the main program and the steps corresponding to "calculation of task parameters" in the sub-thread are performed simultaneously to achieve real-time information interaction through the information interaction storage space.
[0104] In order to better illustrate and understand the principle of the method provided by the present invention, the scheme of the present invention is described below in conjunction with an optional specific embodiment. It should be noted that the specific implementation of each step in the specific embodiment should not be understood as a limitation to the scheme of the present invention. On the basis of the principle of the scheme provided by the present invention, other implementations that can be thought of by those skilled in the art should also be considered within the scope of protection of the present invention.
[0105] See also Figure 2 On the client side, it includes a parameter design module, a sub-thread program test module, a sub-program start module, a data generation and calculation module and a task end module, wherein the parameter-related module is used to set parallel parameters and multiple groups of task parameters; the sub-thread program test module is used to test the sub-thread; the sub-program start module is used to send a start instruction to the sub-thread (for example, the command for this round of simulation mentioned above); the data generation and calculation module is used to process according to the task parameters to obtain the corresponding processing results; the task end module is used to send an end instruction to the sub-thread (for example, the key value corresponding to the program end instruction mentioned above), based on which the sub-thread can end its work.
[0106] On the sub-thread side, the sub-thread program test module can first start a sub-thread by starting the process module, and then complete the test through the scenario design and operation module using the method corresponding to mode one (working mode one), test the correctness of the scenario configuration function and the calculation function, and finally close the sub-thread that has completed the test based on the closing sub-thread module.
[0107] Among them, when the subroutine start module sends a start instruction to the child thread, the start instruction can be sent to the child thread through the child thread start program. After receiving the start instruction, the child thread corresponding to the start instruction can be started based on the start process module. Then the child thread can also enter the parallel processing process through the scene design and operation module in the corresponding manner of mode two (working mode two). In the process of parallel processing, the scene configuration function and calculation function are run, and parallel processing is performed based on the set task scene reset time and sub-process reset time. Finally, the sub-thread that completes the parallel processing is closed based on the closing sub-thread module.
[0108] Among them, the process of processing task parameters by the data generation and calculation module and the process of processing task parameters by the sub-thread can be carried out simultaneously. Specifically, the data generation and calculation module can complete the information interaction with the sub-thread through the data collection and allocation program. Through the data collection and allocation program, the allocation of each group of task parameters, the processing results corresponding to each group of task parameters and the processing process information can be realized based on the number of parallel sub-threads.
[0109] See also Figure 3The information interaction flow chart between the main program and the sub-thread, where the lines with different serial numbers represent different types of data transmission processes. Line ① is the transmission of the sub-thread opening and closing instructions, which is input from the main program. The sub-thread constantly monitors the value of the instruction to open or close the sub-thread;
[0110] Line ② is the instruction to start the transmission of a set of data (task parameters), which is input from the main program. The subroutine continuously monitors the value of the instruction to prepare to receive data or return the result (processing result) of the set of data;
[0111] Line ③ is the calculation data transmission process: the main program continuously monitors the space (input parameter storage space), and when it is empty, inputs a set of data into the input parameter storage space; the subroutine also continuously monitors the space, and when it is not empty, takes out the corresponding data and resets it to empty;
[0112] Line ④ is the calculation information transmission process: the main program constantly monitors the space (process information storage space), and when it is not empty, it takes out the corresponding data, displays it, and resets it to empty; any information generated by the subroutine is directly transferred to the process information storage space;
[0113] Line ⑤ is the calculation result transmission process: the main program continuously monitors the space (output result storage space), and when it is not empty, it takes out the corresponding data, stores it, and resets it to empty; the calculation result of the subroutine is directly transferred to the output result storage space.
[0114] The files used by the parallel architecture and method include two types of programs: the main program and its functions, and the sub-thread program and its functions, among which:
[0115] The main program and its functions include: main program, sub-thread start program, data allocation interaction collection program;
[0116] The sub-thread program and its functions include: sub-thread main program, scene configuration function, and calculation function;
[0117] The main program file is the main program for running, which includes the following modules: parameter setting module; sub-thread program test module; sub-thread start module; data generation and calculation module; task end module; the main program can be modified according to the specific task;
[0118] The main function of the sub-thread start program is to submit the sub-thread main program to the parallel sub-thread and start the sub-thread running in the client background. The program has nothing to do with the specific task and is not recommended to be modified. Figure 2 The neutron thread opens the corresponding part of the program;
[0119] The main functions of the data distribution interaction collection program are: data distribution and information interaction module, structure receiving module, result sorting and verification module; the program is irrelevant to the specific task and is not recommended to be modified. Figure 2 The section on data collection and distribution procedures;
[0120] The sub-thread program contains two running modes: working mode 1 does not use parallelism, the program is just a separate serial structure, the program can be debugged, and breakpoints and other functions can be used; working mode 2 uses parallelism, the input and output of calculation parameters are realized through information interaction, and several parallel sub-threads are already started, and breakpoints and other functions cannot be used;
[0121] Among them, the main program corresponding to the child thread, that is, the switching processing program between working mode 1 and working mode 2, has nothing to do with the specific task and is not recommended to be modified;
[0122] Working mode 1: When the number of input parameters is 2, namely, a structure parameter and a set of task difference parameters, the scene configuration function and calculation function are directly called; in this mode, the program can be debugged;
[0123] Working mode 2: When the number of input parameters is 1, that is, there are only structural parameters, the parallel mode is entered;
[0124] The function of the scene configuration function is to configure the scene that is not related to the variable and set the pointer of the variable in the program to improve the calculation efficiency. The program is related to the specific task and needs to be edited and modified.
[0125] The function of the calculation function is to put a set of mission parameters into the high-precision ephemeris orbit calculation software for calculation, and obtain the processing results corresponding to the set of mission parameters; this program is related to the specific task and needs to be edited and modified;
[0126] See also Figure 3 The main program and parallel sub-threads realize information interaction through the information interaction storage space. On the main program side, the distribution and processing of each group of task parameters, the processing results corresponding to each group of task parameters, and the processing process information are mainly realized through the data collection and distribution program. The specific process is:
[0127] Step 1, assign task parameters to child threads, and always monitor whether the data group (a set of task parameters) has been assigned. If the assignment is completed, the end instruction is stored in the array transmission index storage space. If the assignment is not completed, all child threads are looped, that is, the unassigned task parameters continue to be assigned to each child thread. During the assignment process, synchronously monitor whether the task parameters have been assigned;
[0128] Step 2: During the allocation process, determine whether the computing data storage space is empty. If it is empty, store a piece of data (a set of task parameters) in the computing data storage space of the next child thread; if it is not empty, continue to access the next child thread; during the allocation process, the information stored in the computing data storage space can also be stored in the computing information storage space (process information storage space);
[0129] Step 3, after each sub-thread is processed in parallel, the technical instruction (third wait state identifier) is stored in the array transmission index storage space, and then all sub-threads are looped. If a sub-thread is processed, the processing result in the sub-thread calculation result storage space (output result storage space) is read; until each sub-thread is processed, the processing result corresponding to each sub-thread is read;
[0130] On the child thread side, for each child thread, first determine whether the child thread has finished working. If so, then finish the work. If not, determine whether a set of data transmission has ended. If not, then determine whether the computing data storage space is empty. If not, read the task parameters in the computing data storage space of the current child thread, continue processing, and clear the computing data storage space. Data processing can also be performed based on the scene configuration function and the calculation function. If information is generated, it is stored in the computing information storage space. The above processing process is the processing process for a set of data. The above processing process is looped so that each set of task parameters is processed in the same way, and the result (processing result) is stored in the computing result storage space. Finally, the child thread finishes its work.
[0131] Compared with the prior art, the present invention has the following beneficial effects:
[0132] Through the information interaction storage space, the function of real-time interaction between the client and the parallel program data information is realized, so as to improve the parallel computing efficiency of the high-precision ephemeris orbit simulation software;
[0133] It provides a method for debugging programs. Compared with the parallel method of encapsulating sub-thread calculations, it can provide a more transparent and flexible debugging method.
[0134] By first allocating and starting parallel sub-threads, and then realizing real-time allocation of parameters through close information interaction between the client (main program) and the sub-threads, the repeated opening and closing of the high-precision ephemeris orbit simulation software process can be avoided, saving a lot of time, improving the calculation efficiency of high-precision ephemeris orbit, and supporting large-scale computing needs such as Monte Carlo simulation or optimization. The calculation results show the effectiveness of this method.
[0135] Based on Figure 1Based on the same principle as the method shown in , the embodiment of the present invention also provides a high-precision ephemeris orbit parallel processing device 20, such as Figure 4 As shown in , the high-precision ephemeris orbit parallel processing device 20 may include a task parameter acquisition module 210, a sub-thread determination module 220 and a parallel processing module 230, wherein:
[0136] A mission parameter acquisition module 210 is used to acquire multiple groups of mission parameters corresponding to the space mission to be processed, wherein the space mission to be processed is a mission related to the ephemeris orbit;
[0137] A sub-thread determination module 220 is used to determine a plurality of sub-threads corresponding to the space mission to be processed, each sub-thread corresponding to running a high-precision ephemeris orbit simulation software, and the high-precision ephemeris orbit simulation software is used to process a set of mission parameters to obtain a processing result corresponding to the set of mission parameters;
[0138] The parallel processing module 230 is used to determine the processing result corresponding to each group of the task parameters by using a parallel processing method through a plurality of the sub-threads according to the plurality of groups of the task parameters.
[0139] Optionally, when the parallel processing module 230 determines the processing result corresponding to each group of the task parameters by using the plurality of sub-threads in a parallel processing manner according to the plurality of groups of the task parameters, it is specifically used to:
[0140] For each of the sub-threads, a set of the task parameters is allocated to the sub-thread, so that the sub-thread performs processing according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain processing results corresponding to the set of task parameters, and after a set of processing results corresponding to the task parameters are obtained through the sub-thread processing, another set of task parameters is allocated to the sub-thread until the last set of task parameters in the multiple sets of task parameters is allocated.
[0141] Optionally, for each of the sub-threads, when the parallel processing module 230 allocates a set of the task parameters to the sub-thread so that the sub-thread performs processing according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain a processing result corresponding to the set of task parameters, the following is specifically used:
[0142] Determine whether the input parameter storage space corresponding to the child thread is free;
[0143] If the input parameter storage space corresponding to the sub-thread is free, allocate a set of the task parameters to the input parameter storage space corresponding to the sub-thread, so that the sub-thread processes according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain the processing results corresponding to the set of task parameters, and store the processing results in the output result storage space corresponding to the sub-thread.
[0144] Optionally, for each of the sub-threads, the device further includes:
[0145] A process information storage module is used to generate processing process information when the child thread processes a corresponding set of task parameters; determine whether the process information storage space corresponding to the child thread is free; if the process information storage space corresponding to the child thread is free, store the processing process information in the process information storage space corresponding to the child thread; if the process information storage space corresponding to the child thread is not empty, clear the process information storage space corresponding to the child thread, and store the processing process information in the cleared process information storage space corresponding to the child thread.
[0146] Optionally, for each of the sub-threads, when the parallel processing module 230 allocates a set of the task parameters to the sub-thread so that the sub-thread performs processing according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain a processing result corresponding to the set of task parameters, the following is specifically used:
[0147] Starting the child thread and generating a first waiting state flag, wherein the first waiting state flag indicates that the child thread is in a state allowing data to be received;
[0148] After allocating a set of the task parameters to the child thread, a second waiting state identifier is generated, wherein the second waiting state identifier indicates that the child thread is in a state where a set of task data has been received and the child thread is processing the set of task data;
[0149] After all task parameters have been allocated, a third waiting state identifier is generated, the child thread is switched to the state corresponding to the first waiting state identifier, and the processing result corresponding to the child thread is stored in the output result storage space corresponding to the child thread, and the third waiting state identifier indicates that all task parameters have been allocated.
[0150] Optionally, the device further comprises:
[0151] The storage module is used to store the processing results corresponding to each of the sub-threads in a key-value format according to the processing results corresponding to each of the sub-threads and the thread identifiers corresponding to each of the sub-threads.
[0152] Optionally, before obtaining a plurality of sets of task parameters corresponding to the space mission to be processed, the device further includes:
[0153] The debugging module is used to send a set of task parameters to each sub-thread, so that the sub-thread processes the set of task parameters, obtains the processing results corresponding to the set of task parameters, and debugs the processing program corresponding to the sub-thread according to the processing results.
[0154] The high-precision ephemeris orbit parallel processing device of the embodiment of the present invention can execute the high-precision ephemeris orbit parallel processing method provided by the embodiment of the present invention, and its implementation principle is similar. The actions performed by each module and unit in the high-precision ephemeris orbit parallel processing device in each embodiment of the present invention correspond to the steps in the high-precision ephemeris orbit parallel processing method in each embodiment of the present invention. For the detailed functional description of each module of the high-precision ephemeris orbit parallel processing device, please refer to the description of the corresponding high-precision ephemeris orbit parallel processing method shown in the previous text, which will not be repeated here.
[0155] Among them, the above-mentioned high-precision ephemeris orbit parallel processing device can be a computer program (including program code) running in a computer device, for example, the high-precision ephemeris orbit parallel processing device is an application software; the device can be used to execute the corresponding steps in the method provided in an embodiment of the present invention.
[0156] In some embodiments, the high-precision ephemeris orbit parallel processing device provided by the embodiment of the present invention can be implemented in a combination of software and hardware. As an example, the high-precision ephemeris orbit parallel processing device provided by the embodiment of the present invention can be a processor in the form of a hardware decoding processor, which is programmed to execute the high-precision ephemeris orbit parallel processing method provided by the embodiment of the present invention. For example, the processor in the form of a hardware decoding processor can adopt one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), or other electronic components.
[0157] In other embodiments, the high-precision ephemeris orbit parallel processing device provided by the embodiment of the present invention can be implemented in software. Figure 4A high-precision ephemeris orbit parallel processing device stored in a memory is shown, which can be software in the form of a program and a plug-in, and includes a series of modules, including a task parameter acquisition module 210, a sub-thread determination module 220 and a parallel processing module 230, for implementing the high-precision ephemeris orbit parallel processing method provided in an embodiment of the present invention.
[0158] The modules involved in the embodiments of the present invention may be implemented by software or hardware, wherein the name of a module does not limit the module itself in some cases.
[0159] Based on the same principle as the method shown in the embodiments of the present invention, an electronic device is also provided in the embodiments of the present invention, which may include but is not limited to: a processor and a memory; the memory is used to store a computer program; the processor is used to execute the method shown in any embodiment of the present invention by calling the computer program.
[0160] In an alternative embodiment, an electronic device is provided, such as Figure 5 As shown, Figure 5 The electronic device 4000 shown includes: a processor 4001 and a memory 4003. The processor 4001 and the memory 4003 are connected, such as through a bus 4002. Optionally, the electronic device 4000 may also include a transceiver 4004, which may be used for data interaction between the electronic device and other electronic devices, such as data transmission and / or data reception. It should be noted that in actual applications, the transceiver 4004 is not limited to one, and the structure of the electronic device 4000 does not constitute a limitation on the embodiments of the present invention.
[0161] Processor 4001 may be a CPU (Central Processing Unit), a general-purpose processor, a DSP (Digital Signal Processor), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. It may implement or execute various exemplary logic blocks, modules and circuits described in conjunction with the disclosure of the present invention. Processor 4001 may also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.
[0162] The bus 4002 may include a path to transmit information between the above components. The bus 4002 may be a PCI (Peripheral Component Interconnect) bus or an EISA (Extended Industry Standard Architecture) bus. The bus 4002 may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 5 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.
[0163] The memory 4003 can be a ROM (Read Only Memory) or other types of static storage devices that can store static information and instructions, a RAM (Random Access Memory) or other types of dynamic storage devices that can store information and instructions, or an EEPROM (Electrically Erasable Programmable Read Only Memory), a CD-ROM (Compact Disc Read Only Memory) or other optical disk storage, optical disk storage (including compressed optical disk, laser disk, optical disk, digital versatile disk, Blu-ray disk, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited to this.
[0164] The memory 4003 is used to store the application code (computer program) for executing the solution of the present invention, and the execution is controlled by the processor 4001. The processor 4001 is used to execute the application code stored in the memory 4003 to implement the content shown in the above method embodiment.
[0165] The electronic device may also be a terminal device. Figure 5 The electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present invention.
[0166] An embodiment of the present invention provides a computer-readable storage medium, on which a computer program is stored. When the computer-readable storage medium is run on a computer, the computer can execute the corresponding contents of the aforementioned method embodiment.
[0167] According to another aspect of the present invention, a computer program product or a computer program is also provided, the computer program product or the computer program comprising computer instructions, the computer instructions being stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the methods provided in the implementation modes of the above-mentioned various embodiments.
[0168] Computer program code for performing the operations of the present invention may be written in one or more programming languages, or a combination thereof, including object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate 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 a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider).
[0169] It should be understood that the flow charts and block diagrams in the accompanying drawings illustrate the possible implementation architecture, functions and operations of the method and computer program product according to various embodiments of the present invention. In this regard, each box in the flow chart or block diagram can represent a module, a program segment, or a part of a code, and the module, the program segment, or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a sequence different from that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0170] The computer-readable storage medium provided by the embodiment of the present invention may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to, an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In the present invention, a computer-readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution system, device, or device.
[0171] The computer-readable storage medium carries one or more programs. When the one or more programs are executed by the electronic device, the electronic device executes the method shown in the above embodiment.
[0172] The above description is only a preferred embodiment of the present invention and an explanation of the technical principles used. Those skilled in the art should understand that the disclosure scope involved in the present invention is not limited to the technical solution formed by a specific combination of the above technical features, but should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above disclosed concept. For example, the above features are replaced with the technical features with similar functions disclosed in the present invention (but not limited to) by each other.
Claims
1. A high-precision ephemeris orbit parallel processing method, characterized in that: The following steps are involved: Acquire multiple groups of mission parameters corresponding to the pending space missions, where the pending space missions are missions related to the ephemeris orbit; Determine a plurality of sub-threads corresponding to the space mission to be processed, each sub-thread correspondingly runs a high-precision ephemeris orbit simulation software, and the high-precision ephemeris orbit simulation software is used to process a set of mission parameters to obtain a processing result corresponding to the set of mission parameters; According to the multiple groups of task parameters, a processing result corresponding to each group of task parameters is determined by using the multiple sub-threads in a parallel processing manner; Determining the processing result corresponding to each group of the task parameters by using multiple sub-threads in a parallel processing manner according to the multiple groups of the task parameters includes: For each of the sub-threads, a set of the task parameters is allocated to the sub-thread, so that the sub-thread performs processing according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain processing results corresponding to the set of task parameters, and after the sub-thread processes to obtain processing results corresponding to a set of task parameters, another set of task parameters is allocated to the sub-thread until the last set of task parameters among the multiple sets of task parameters is allocated; For each of the sub-threads, allocating a set of the task parameters to the sub-threads so that the sub-threads perform processing according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain processing results corresponding to the set of task parameters, includes: Starting the child thread and generating a first waiting state flag, wherein the first waiting state flag indicates that the child thread is in a state allowing data to be received; Allocating a set of the task parameters to the child thread, generating a second waiting state identifier, wherein the second waiting state identifier indicates that the child thread is in a state where a set of task data has been received and the child thread is processing the set of task data; After all task parameters have been allocated, a third waiting state identifier is generated, the child thread is switched to a state corresponding to the first waiting state identifier, and a processing result corresponding to the child thread is stored in an output result storage space corresponding to the child thread, wherein the third waiting state identifier indicates that all task parameters have been allocated; Before obtaining multiple sets of task parameters corresponding to the space mission to be processed, the method further includes: For each of the sub-threads, a set of task parameters is sent to the sub-thread, so that the sub-thread processes the set of task parameters, obtains processing results corresponding to the set of task parameters, and debugs the processing program corresponding to the sub-thread according to the processing results to verify the correctness of the sub-thread; The main program and multiple parallel sub-threads realize information interaction through the information interaction storage space. On the main program side, the distribution and processing of each group of task parameters, the processing results corresponding to each group of task parameters, and the processing process information are realized through the data collection and distribution program. The specific process is as follows: Step 1, assign task parameters to child threads, and always monitor whether a set of task parameters has been assigned. If assigned, store the end instruction in the array transmission index storage space. If not assigned, loop all child threads and continue to assign unassigned task parameters to each child thread. During the assignment process, synchronously monitor whether the task parameters have been assigned; Step 2: during the allocation process, determine whether the computing data storage space is empty. If it is empty, store a set of task parameters in the computing data storage space of the next child thread; if it is not empty, continue to access the next child thread; during the allocation process, the information stored in the computing data storage space can also be stored in the process information storage space; Step 3, after each sub-thread is processed in parallel, the third waiting state flag is stored in the array transmission index storage space, and then all sub-threads are looped. If a sub-thread is processed, the processing result in the output result storage space corresponding to the sub-thread is read; until each sub-thread is processed, the processing result corresponding to each sub-thread is read; On the child thread side, for each child thread, first determine whether the child thread has finished working. If so, then finish the work. If not, determine whether a set of task parameter transmissions has ended. If not, then determine whether the computing data storage space is empty. If not, read the task parameters in the computing data storage space corresponding to the current child thread, continue processing, and clear the computing data storage space. Data processing can also be performed based on scenario configuration functions and computing functions. If information is generated, it is stored in the computing data storage space. The processing process of a set of task parameters is looped so that each set of task parameters is processed in the same way, and each processing result is stored in the computing result storage space. Finally, the child thread finishes its work.
2. The method according to claim 1, characterized in that For each of the sub-threads, allocating a set of the task parameters to the sub-threads so that the sub-threads perform processing according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain processing results corresponding to the set of task parameters, includes: Determine whether the input parameter storage space corresponding to the child thread is free; If the input parameter storage space corresponding to the sub-thread is free, allocate a set of the task parameters to the input parameter storage space corresponding to the sub-thread, so that the sub-thread processes according to the set of task parameters through the high-precision ephemeris orbit simulation software to obtain the processing results corresponding to the set of task parameters, and store the processing results in the output result storage space corresponding to the sub-thread.
3. The method according to claim 1, characterized in that For each of the sub-threads, the method further includes: When the child thread processes a corresponding set of task parameters, generating processing process information; Determine whether the process information storage space corresponding to the child thread is free; If the process information storage space corresponding to the child thread is free, storing the processing process information in the process information storage space corresponding to the child thread; If the process information storage space corresponding to the child thread is not empty, the process information storage space corresponding to the child thread is cleared, and the processing process information is stored in the cleared process information storage space corresponding to the child thread.
4. The method according to claim 1, characterized in that: The method further comprises: According to the processing results corresponding to the sub-threads and the thread identifiers corresponding to the sub-threads, the processing results corresponding to the sub-threads are stored in a key-value format.
5. The method according to claim 1, characterized in that Before obtaining a plurality of sets of task parameters corresponding to the space mission to be processed, the method further includes: For each of the sub-threads, a group of task parameters is sent to the sub-thread so that the sub-thread processes the group of task parameters, obtains processing results corresponding to the group of task parameters, and debugs the processing program corresponding to the sub-thread according to the processing results.
6. A high-precision ephemeris orbit parallel processing device, characterized in that: A high-precision ephemeris orbit parallel processing method as described in claim 1, wherein the device comprises: A mission parameter acquisition module, used to acquire multiple sets of mission parameters corresponding to the space missions to be processed, wherein the space missions to be processed are missions related to the historical orbits; A sub-thread determination module is used to determine a plurality of sub-threads corresponding to the space mission to be processed, each sub-thread correspondingly runs a high-precision ephemeris orbit simulation software, and the high-precision ephemeris orbit simulation software is used to process a group of mission parameters to obtain a processing result corresponding to the group of mission parameters; The parallel processing module is used to determine the processing result corresponding to each group of task parameters by using a parallel processing method of a plurality of sub-threads according to the plurality of groups of task parameters.
7. An electronic device, characterized in that: The method comprises a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the method according to any one of claims 1 to 5 when executing the computer program.
8. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 5 is implemented.
Citation Information
Patent Citations
Simulation test method of integrated circuits
CN101719170A