A distributed high-performance solution method for large-scale GNSS networks
Through distributed parallel computing and cluster computing technology, the problems of low timeliness and resource utilization in traditional GNSS network data processing are solved, efficient baseline solution and quality inspection are achieved, and the needs of modern surveying and mapping benchmarks are met.
Patent Information
- Application Number
- CN202411605593.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-12
- Publication Date
- 2025-09-02
- Estimated Expiration
- 2044-11-12
AI Technical Summary
The traditional GNSS network data processing methods have problems such as low baseline solution timeliness, low computing resource utilization rate and low automation, which is difficult to meet the needs of large-scale GNSS network data processing.
The high-performance solution method of distributed-single-node parallel mode and distributed-cluster parallel mode is adopted. Through process pooling and load balancing technology, the collaborative operation of multi-core parallel and network multi-node parallel operation is realized. Combined with powerful quality inspection functions, the computing resource allocation and solution process is optimized.
The timeliness and computing resource utilization rate of large-scale GNSS network data processing has been improved, efficient baseline solution and quality inspection have been achieved, and the strong potential needs of modern surveying and mapping benchmarks have been met.
Smart Images

Figure CN119473549B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of high-precision global satellite navigation and positioning, and in particular relates to a distributed high-performance solution method for a large-scale GNSS network. Background Art
[0002] With the full implementation of my country's Beidou Navigation Satellite System (BDS) and the interoperability and modernization of multi-system GNSS technologies, GNSS has entered the era of multi-system, multi-frequency signals, encompassing tens of thousands of global reference stations and over 100 navigation satellites. The total amount of data stored in the Crustal Dynamics Data Information System (CDDIS) data center has exceeded 20TB. In recent years, to meet the diverse needs of real-time positioning, disaster prevention, plate motion analysis, and ecological and environmental monitoring, the scale of continuously operating base station networks in many countries and regions around the world has continued to expand, leading to a massive increase in the volume of GNSS data. While this dramatic increase in multi-frequency, multi-mode GNSS data helps improve product solution accuracy, it also significantly increases model complexity and computation time.
[0003] In recent years, with the continuous development of GNSS technology, observation data has shown the characteristics of real-time, high precision, and large temporal and spatial span. From the perspective of spatial scale, the data can cover not only a local area, but also a country or the world. From the perspective of time scale, it can range from seconds, hours, days to years, or even decades. As the number of base stations continues to rise, the scale of the GNSS network continues to expand, and the amount of data increases dramatically, the demand for data processing in large-scale GNSS networks continues to increase, and the timeliness of data processing faces huge challenges. The problems exposed by traditional serial and multi-window baseline solution methods are becoming more and more prominent, and it is becoming increasingly difficult to meet the strong timeliness needs of national and regional modern surveying and mapping benchmarks. There is an urgent need to study new data processing solutions. Specifically:
[0004] (1) Low timeliness of baseline solution
[0005] Currently, the traditional method for large-scale GNSS network baseline solution in data centers is a semi-automated, fragmented operation involving multiple windows opened manually on a single machine. This approach relies more on the technical expertise of technicians than on scientific high-performance computing theories and models, resulting in limitations and low baseline solution timeliness. On the one hand, it fails to fully unleash the computing power of a single computer. On the other hand, it lacks the ability for multiple computers to collaborate. As the volume of GNSS network data and the number of stations continue to increase, traditional methods are increasingly unable to meet the urgent needs of baseline solution.
[0006] (2) Low computing resource utilization
[0007] The number of windows opened manually in the traditional way is very blind, and it is impossible to fully tap and repeatedly schedule computer resources, resulting in a large amount of idle and wasted computer resources in the data center. An unreasonable number of windows will not only make the baseline solution inefficient, but also easily cause machine jams and crashes.
[0008] (3) Low degree of automation
[0009] Traditional baseline solutions require manual fragmentation of subnets or subtasks before solving them, resulting in several isolated subprojects. Once the baseline solutions for each subproject are complete, the results are manually merged one by one. This is not only cumbersome and lacks automation, but also prone to errors and rework. Summary of the Invention
[0010] In view of the current massive large-scale GNSS network, the traditional single-machine centralized processing mode and the solution that simply relies on increasing single-node configuration can no longer meet the needs.
[0011] To achieve the above objectives, the present invention provides a large-scale GNSS network distributed high-performance solution method, comprising the following steps:
[0012] S1. Set project solution parameters;
[0013] S2. Based on the total number of baseline solution tasks for a single day, choose to use the distributed-single-node parallel mode or the distributed-cluster parallel mode;
[0014] S3, upload the data to be solved;
[0015] S4, using the corresponding mode to solve;
[0016] S5. Perform quality check on the single-day baseline solution;
[0017] S6, time series analysis;
[0018] S7, network adjustment analysis;
[0019] S8. Obtain the solution results.
[0020] Furthermore, in the S1, setting project solution parameters, the parameters include project name, GNSS network level, solution constellation, coordinate system, data sampling rate, subnet division method, baseline solution, network adjustment, etc.
[0021] Furthermore, the specific process of step S2, selecting the distributed-single-node parallel mode or the distributed-cluster parallel mode based on the total number of baseline solution tasks in a single day, is as follows: the distributed-single-node parallel mode is suitable for large-scale GNSS networks where the total number of baseline solution tasks in a single day does not exceed 800 and the computing power of a single node can support it; the distributed-cluster parallel mode is suitable for ultra-large-scale GNSS networks where the total number of baseline solution tasks in a single day is greater than 800 and the computing power of a single node is insufficient to support it.
[0022] Furthermore, the corresponding mode is used for solving the problem in S4. If the distributed-single-node parallel mode is used, the specific process is as follows:
[0023] S401, the client configures distributed single-node computing parameters and baseline solution strategy parameters;
[0024] S402: The client uploads the data to be solved to the server based on the TCP protocol network socket technology.
[0025] S403, the server checks the timeliness of the observation data and tables file;
[0026] S404. The server divides the subnets according to the subnet partition list and the corresponding observation data and table files, and generates a parallel computing file system;
[0027] S405. The server determines the number of processes to initialize the process pool based on the number of tasks (i.e., the number of time periods) calculated for the daily baseline, the number of logical cores of the server's CPU (automatically identified by the program), and distributed single-node computing parameters.
[0028] S406: The server submits the single-day baseline solution task and high-performance solution parameters to the dynamically scalable process pool, and performs parallel solution on the baselines of each subnet to obtain the single-day baseline solution for each subnet.
[0029] Furthermore, in step S406, the server submits the daily baseline solution task and high-performance solution parameters to a dynamically scalable process pool, which performs parallel solution on the baselines of each subnet to obtain a daily baseline solution for each subnet. The specific steps are as follows:
[0030] S501, initialization process pool:
[0031] The process pool creates a main process (management process) and a corresponding number of child processes (resource processes) based on the preset concurrency number. The main process applies for space to store data structures and manage the status (e.g., idle, busy) and related information (e.g., process ID, pipe file descriptors, etc.) of the child processes. Considering that the local computer may have other tasks besides large-scale GNSS network baseline solution work, in order to balance the computing power requirements of both, the optimal number of processes P is calculated as follows:
[0032]
[0033] Where P is the optimal number of processes, C is the number of logical cores of the computer, N is the total number of baseline solution tasks in a single day, and S is the preset number of concurrent tasks;
[0034] S502, monitoring task:
[0035] The main process or a specific task dispatcher is responsible for monitoring the daily baseline solution task queues of each subnet; when a new task arrives, it is placed in the task queue;
[0036] S503, task allocation:
[0037] The main process (or task dispatcher) checks the status of the child processes in the process pool, finds the idle child process through inter-process communication (such as pipes, message queues, etc.), and assigns the task to the idle child process;
[0038] S504, child process execution task:
[0039] The sub-process receives the daily baseline solution task information from the main process and performs operations such as file reading and writing and baseline solution according to the set parameters. During the execution of the baseline solution task, the sub-process can update its status (for example, from idle to busy) and return to the idle state after the task is completed.
[0040] S505, task completion and result return:
[0041] After completing the task, the sub-process returns the daily baseline solution result to the main process through file writing, message sending, etc., and notifies the main process that it has completed the task and can accept new tasks through mechanisms such as pipeline writing operations and sending signals;
[0042] S506, process pool resource recovery and shutdown
[0043] When all single-day baseline solution tasks are completed, the main process is responsible for reclaiming the sub-process resources of the completed tasks, including closing file descriptors and releasing memory. The main process closes the process pool and waits for all sub-processes to exit. It ensures that all resources are released correctly to avoid resource leaks.
[0044] Furthermore, the S4 is solved using the corresponding mode; if distributed-cluster parallel is used, the specific process is as follows:
[0045] S601: The client configures distributed cluster computing parameters and baseline solution strategy parameters;
[0046] S602: The client uploads the data to be solved to the master node of the cluster based on the TCP protocol network socket technology.
[0047] S603, the master node checks the timeliness of the observation data and tables files;
[0048] S604: The master node divides the subnets according to the subnet partition list and the corresponding observation data and table files, and generates a parallel computing file system;
[0049] S605: The master node configures the optimal computing throughput of the master and slave nodes of the cluster system based on the number of tasks (i.e., the number of time periods) solved by the single-day baseline and the distributed cluster computing parameters;
[0050] S606: Submit the single-day baseline solution task and high-performance solution parameters to the high-performance solution cluster. The master node collaborates with the slave nodes to perform distributed parallel solution on the baselines of each subnet to obtain the single-day baseline solution for each subnet.
[0051] Furthermore, in S605, the master node configures the optimal computing throughput P of the master and slave nodes of the cluster system according to the number of tasks (i.e., the number of time periods) solved by the single-day baseline and the distributed cluster computing parameters, and the calculation formula is:
[0052]
[0053] Among them, C m is the number of logical cores of the master node (Master) in the cluster system, T is the number of slave nodes (Worker) in the cluster system, C i is the number of logical cores of the i-th slave node, C' j is the number of concurrent processes when the jth slave node is not fully loaded. In particular, when j = 1, let N is the total number of baseline solution tasks in a single day, and P is the optimal computing throughput of the cluster system.
[0054] Furthermore, in step S606, the task of solving the single-day baseline and the high-performance solution parameters are submitted to the high-performance solution cluster. The master node collaborates with the slave nodes to perform distributed parallel solution on the baselines of each subnet to obtain the single-day baseline solution for each subnet. The specific steps are as follows:
[0055] S701, master and slave nodes synchronously solve data:
[0056] The master node (Master) sends the solution data to each slave node (Worker) synchronously in a broadcast aggregation communication mode (master-slave replication mode). The operations in this process include: each slave node starts the data transmission service on its own designated port; the master node starts multiple data transmission services on multiple ports in a multi-process parallel manner according to the number of slave nodes; the master node sends the solution data to each slave node on the corresponding port simultaneously;
[0057] S702, Task Monitoring and Heartbeat Monitoring:
[0058] After the solution data is uploaded to each Worker, the client uses RPC technology to remotely call the baseline solution function of the Master to process the data. At the same time, the Master synchronizes the baseline solution function to each Worker and calls it to achieve collaborative parallel computing between the Master and Workers. During the collaborative parallel computing process, the Master performs heartbeat monitoring on each Worker, monitoring the working status of each Worker in real time and providing feedback on any anomalies.
[0059] S703, Task Allocation and Load Balancing:
[0060] A smooth weighted round-robin load balancing algorithm is used to distribute computational tasks. Specifically, the load balancer first assigns a weight to each computing node (including master and slave nodes) (the weight is determined by the number of CPU cores in each node). This weight reflects the processing capabilities of the master and slave nodes. Computing nodes with higher weights are assigned more computational tasks, while computing nodes with lower weights are assigned fewer computational tasks.
[0061] S704, each node performs tasks and dynamically balances load:
[0062] Each computing node's process receives the daily baseline solution task information and performs operations such as file reading and writing and baseline solution according to the set parameters. After each node completes part of the solution task, it notifies the load balancer through mechanisms such as pipeline write operations and signaling that it has completed the task and can accept new tasks. During the solution task execution process, the load balancer continuously checks the computing resource load status of each node, finds an idle node, and dynamically allocates the solution task to the idle node.
[0063] S705, task completion and result return:
[0064] After the master node monitors the completion of all baseline solution tasks on each node through inter-process communication (such as pipelines and message queues), it calls the data transmission service running on each slave node to download and merge the single-day baseline solution results of each node (including the master and slave nodes) in a collected aggregate communication mode.
[0065] S706, process data cleaning:
[0066] After the daily baseline solution is completed, the master node remotely calls the data cleaning module of each slave node through RPC to complete the process data cleaning work.
[0067] Furthermore, the S5, quality check of the single-day baseline solution includes the standardized root mean square error NRMS, baseline repeatability R, point position and baseline component mean error and relative mean error;
[0068] The calculation formula of the standardized root mean square error NRMS is as follows:
[0069]
[0070] Where Y i is the calculated value for each baseline vector epoch, Y is the true value of the baseline vector, N is the total number of epochs, and n is the number of baselines. is the variance of the solution value at each epoch; if the NRMS value is less than the set threshold, the baseline solution is considered qualified, otherwise it is unqualified;
[0071] The calculation formula of baseline repeatability R is as follows:
[0072]
[0073] Where n is the total number of observation periods for the same baseline; C i is the baseline component or side length of a period; is the C corresponding to period i i Variance of the component; C m It is the weighted average of each period.
[0074] Furthermore, the specific process of S6, time series analysis, is as follows: coordinate time series analysis is performed on the single-day baseline solutions of each subnet, a single-day solution time series graph is generated, steps are judged and analyzed, and gross errors are eliminated; the specific process of S7, network adjustment analysis, is as follows: network adjustment joint processing is performed on the single-day baselines of each subnet after time series analysis, to obtain the coordinates, speed and baseline results of each measuring station; according to the project GNSS network level requirements, indicators such as the chi-square value, each component of the adjustment baseline and the relative mean error are checked.
[0075] The advantages of this invention are as follows: it provides a high-performance distributed solution method for large-scale GNSS networks, and proposes a "time-space integrated" two-layer and three-layer data parallel solution for large-scale GNSS network baseline solution, combining multi-core parallelism and network multi-node parallelism. This solution deeply taps into computer computing power, fully leveraging the high efficiency of shared memory systems and the high scalability of distributed systems, enabling centralized and distributed parallel collaboration, significantly improving production efficiency and computing resource utilization. The solution also integrates powerful quality inspection capabilities, achieving both fast and accurate calculations.
[0076] Leveraging distributed and cluster computing technologies, this solution breaks through the limitations of traditional single-machine centralized processing and solutions that rely solely on increasing single-node resource allocation. It supports remote service invocation across different nodes and load balancing of computing resources across them, effectively avoiding the massive waste of computing resources caused by uneven workloads. Furthermore, the number of nodes can be flexibly expanded based on business needs, maximizing the utilization of existing equipment and reducing investment costs.
[0077] The present invention is described in detail below with reference to the accompanying drawings and embodiments. BRIEF DESCRIPTION OF THE DRAWINGS
[0078] Figure 1 This is a schematic diagram of the technical solution for a high-performance computing platform for large-scale GNSS networks.
[0079] Figure 2 This is a schematic diagram of the distributed-single-node parallel mode.
[0080] Figure 3 This is a schematic diagram of the distributed-cluster parallel mode. DETAILED DESCRIPTION
[0081] In order to further illustrate the technical means and effects adopted by the present invention to achieve the predetermined purpose, the specific implementation methods, structural features and effects of the present invention are described in detail below with reference to the accompanying drawings and examples.
[0082] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.
[0083] In the description of the present invention, it should be understood that the terms "center", "upper", "lower", "front", "back", "left", "right", "vertical", "horizontal", "aligned", "overlap", "bottom", "inside", "outside" and the like indicate orientations or positional relationships based on the orientations or positional relationships shown in the accompanying drawings, and are only for the convenience of describing the present invention and simplifying the description, rather than indicating or implying that the device or element referred to must have a specific orientation, be constructed and operated in a specific orientation, and therefore cannot be understood as limiting the present invention. The terms "first" and "second" are used for descriptive purposes only and cannot be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, the features defined as "first" and "second" may explicitly or implicitly include one or more of the features; in the description of the present invention, unless otherwise specified, "multiple" means two or more.
[0084] Example 1
[0085] The purpose of this invention is to utilize new high-performance computing technologies such as parallel computing, distributed computing, and cluster computing to overcome the technical pain points of poor timeliness and low computing resource utilization in large-scale GNSS network baseline solutions. This invention proposes a "time-space integration" two-layer (DistriSmp) and three-layer (DistriCluster) data parallel solution for large-scale GNSS network baseline solutions, combining multi-core parallelism and network multi-node parallelism. This approach deeply taps into computer computing power, fully leveraging the high efficiency of shared memory systems and the high scalability of distributed systems, enabling centralized and distributed parallel collaboration, significantly improving production efficiency and computing resource utilization. At the same time, the method integrates powerful full-process quality inspection capabilities, achieving "fast and accurate calculations."
[0086] This embodiment provides a Figure 1 The large-scale GNSS network distributed high-performance solution method shown includes the following steps:
[0087] S1. Set project solution parameters;
[0088] S2. Based on the total number of baseline solution tasks for a single day, choose to use the distributed-single-node parallel mode or the distributed-cluster parallel mode;
[0089] S3, upload the data to be solved;
[0090] S4, using the corresponding mode to solve;
[0091] S5. Perform quality check on the single-day baseline solution;
[0092] S6, time series analysis;
[0093] S7, network adjustment analysis;
[0094] S8. Obtain the solution results.
[0095] Furthermore, in the step S1, setting project solution parameters, the parameters include project name, GNSS network level, solution constellation, coordinate system, data sampling rate, subnetting method, baseline solution, network adjustment, etc. Subnetting methods generally adopt existing subnetting methods: regional geographic boundary, global uniform thinning, and site list.
[0096] In addition, other related parameter settings are as follows:
[0097] 1) Satellite orbit: using IGS precise ephemeris;
[0098] 2) Satellite cut-off elevation angle: 10 degrees;
[0099] 3) Epoch interval: 30 seconds;
[0100] 4) Observation value: combined observation value after eliminating the ionosphere;
[0101] 5) Tropospheric correction model: Saastamoinen model is used for standard meteorological correction;
[0102] 6) Solar radiation pressure correction: BERNE model;
[0103] 7) Tropospheric delay model: first-order Gauss-Markov;
[0104] 8) Baseline solution coordinate constraints: The starting point is given a 5cm horizontal constraint and a 10cm vertical constraint, and the point to be solved is given a 10m constraint;
[0105] 9) Earth tide model: IERS2010 (the IERS2010 earth tide model continues to use the IERS2003 standard);
[0106] 10) Tidal model: FES series tidal model (FES2004);
[0107] 11) Tropospheric mapping function model: VMF1;
[0108] 12) Number of zenith delay parameters: 13.
[0109] Furthermore, the specific process of step S2, selecting the distributed-single-node parallel mode or the distributed-cluster parallel mode based on the total number of baseline solution tasks in a single day, is as follows: the distributed-single-node parallel mode is suitable for large-scale GNSS networks where the total number of baseline solution tasks in a single day does not exceed 800 and the computing power of a single node can support it; the distributed-cluster parallel mode is suitable for ultra-large-scale GNSS networks where the total number of baseline solution tasks in a single day is greater than 800 and the computing power of a single node is insufficient to support it.
[0110] Furthermore, the S4 is solved using a corresponding mode;
[0111] Baseline solution mathematical model
[0112] The double-difference phase observation equation for baseline solution is:
[0113]
[0114] Where 1 and 2 represent L1 and L2 carrier phase observations, respectively, and the unit of observation is week;
[0115] f1 is the L1 carrier frequency;
[0116] f2 is the L2 carrier frequency;
[0117] τij is the geometric propagation delay time of the carrier signal between the satellite and the receiver;
[0118] φ ij clock (t j ) is the phase variation caused by the satellite and receiver clock differences;
[0119] φ ij trop is the tropospheric refraction delay on the carrier signal propagation path;
[0120] k ij It is affected by ionospheric refraction;
[0121] v ij is the measurement error and the residual error that is not modeled (such as multipath effects);
[0122] b ij =n ij +δφ j -δφ i , where n ij is the integer ambiguity, δφ j is the initial phase deviation of the receiver, δφ i is the initial phase deviation of the satellite.
[0123] The commonly used combination to eliminate the influence of the ionospheric layer is the LC (ionospheric-free) observation combination, which is expressed as:
[0124] LC=L1-(g / (1-g 2 ))·(L2-gL1); g=1227.6 / 1575.42
[0125] Based on L1 and L2 and ionospheric delay constrained observations k The linear combination of the carrier phase observation data is as follows:
[0126]
[0127] Where D is the double difference operator, which maps all phase one-way observations of the same epoch into independent double difference observations, x a are the unknown parameters to be solved, including unknown station coordinates, unknown orbit parameters, ambiguity parameters, polar motion parameters, and tropospheric zenith delay parameters, etc. c1 、v c1 is the residual of the double-difference observation.
[0128] here:
[0129]
[0130] Ac1 =(1-g 2 ) -1 (A1-gA2)
[0131] A c2 =(1 / 2g)(gA1+A2)
[0132] If the distributed-single-node parallel mode is used, the specific process is as follows:
[0133] S401, the client configures distributed single-node computing parameters and baseline solution strategy parameters;
[0134] S402: The client uploads the data to be solved to the server based on the TCP protocol network socket technology.
[0135] S403, the server checks the timeliness of the observation data and tables file;
[0136] S404. The server divides the subnets according to the subnet partition list and the corresponding observation data and table files, and generates a parallel computing file system;
[0137] S405. The server determines the number of processes to initialize the process pool based on the number of tasks (i.e., the number of time periods) calculated for the daily baseline, the number of logical cores of the server's CPU (automatically identified by the program), and distributed single-node computing parameters.
[0138] S406: The server submits the single-day baseline solution task and high-performance solution parameters to the dynamically scalable process pool, and performs parallel solution on the baselines of each subnet to obtain the single-day baseline solution for each subnet.
[0139] Furthermore, in step S406, the server submits the daily baseline solution task and high-performance solution parameters to a dynamically scalable process pool, which performs parallel solution on the baselines of each subnet to obtain a daily baseline solution for each subnet. The specific steps are as follows:
[0140] S501, initialization process pool:
[0141] The process pool creates a main process (management process) and a corresponding number of child processes (resource processes) based on the preset concurrency number. The main process applies for space to store data structures and manage the status (e.g., idle, busy) and related information (e.g., process ID, pipe file descriptors, etc.) of the child processes. Considering that the local computer may have other tasks besides large-scale GNSS network baseline solution work, in order to balance the computing power requirements of both, the optimal number of processes P is calculated as follows:
[0142]
[0143] Where P is the optimal number of processes, C is the number of logical cores of the computer, N is the total number of baseline solution tasks in a single day, and S is the preset number of concurrent tasks;
[0144] S502, monitoring task:
[0145] The main process or a specific task dispatcher is responsible for monitoring the daily baseline solution task queues of each subnet; when a new task arrives, it is placed in the task queue;
[0146] S503, task allocation:
[0147] The main process (or task dispatcher) checks the status of the child processes in the process pool, finds the idle child process through inter-process communication (such as pipes, message queues, etc.), and assigns the task to the idle child process;
[0148] S504, child process execution task:
[0149] The sub-process receives the daily baseline solution task information from the main process and performs operations such as file reading and writing and baseline solution according to the set parameters. During the execution of the baseline solution task, the sub-process can update its status (for example, from idle to busy) and return to the idle state after the task is completed.
[0150] S505, task completion and result return:
[0151] After completing the task, the sub-process returns the daily baseline solution result to the main process through file writing, message sending, etc., and notifies the main process that it has completed the task and can accept new tasks through mechanisms such as pipeline writing operations and sending signals;
[0152] S506, process pool resource recovery and shutdown
[0153] When all single-day baseline solution tasks are completed, the main process is responsible for reclaiming the sub-process resources of the completed tasks, including closing file descriptors and releasing memory. The main process closes the process pool and waits for all sub-processes to exit. It ensures that all resources are released correctly to avoid resource leaks.
[0154] Furthermore, the S4 is solved using the corresponding mode; if distributed-cluster parallel is used, the specific process is as follows:
[0155] S601: The client configures distributed cluster computing parameters and baseline solution strategy parameters;
[0156] S602: The client uploads the data to be solved to the master node of the cluster based on the TCP protocol network socket technology.
[0157] S603, the master node checks the timeliness of the observation data and tables files;
[0158] S604: The master node divides the subnets according to the subnet partition list and the corresponding observation data and table files, and generates a parallel computing file system;
[0159] S605: The master node configures the number of parallel processes of the master and slave nodes of the cluster system based on the number of tasks (i.e., the number of time periods) solved by the single-day baseline and the distributed cluster computing parameters;
[0160] S606: Submit the single-day baseline solution task and high-performance solution parameters to the high-performance solution cluster. The master node collaborates with the slave nodes to perform distributed parallel solution on the baselines of each subnet to obtain the single-day baseline solution for each subnet.
[0161] Furthermore, in S605, the master node configures the optimal computing throughput P of the master and slave nodes of the cluster system according to the number of tasks (i.e., the number of time periods) solved by the single-day baseline and the distributed cluster computing parameters, and the calculation formula is:
[0162]
[0163] Among them, C m is the number of logical cores of the master node (Master) in the cluster system, T is the number of slave nodes (Worker) in the cluster system, C i is the number of logical cores of the i-th slave node, C' j is the number of concurrent processes when the jth slave node is not fully loaded. In particular, when j = 1, let N is the total number of baseline solution tasks in a single day. P is the optimal computing throughput of the cluster system.
[0164] Furthermore, in step S606, the task of solving the single-day baseline and the high-performance solution parameters are submitted to the high-performance solution cluster. The master node collaborates with the slave nodes to perform distributed parallel solution on the baselines of each subnet to obtain the single-day baseline solution for each subnet. The specific steps are as follows:
[0165] S701, master and slave nodes synchronously solve data:
[0166] The master node (Master) sends the solution data to each slave node (Worker) synchronously in a broadcast aggregation communication mode (master-slave replication mode). The operations in this process include: each slave node starts the data transmission service on its own designated port; the master node starts multiple data transmission services on multiple ports in a multi-process parallel manner according to the number of slave nodes; the master node sends the solution data to each slave node on the corresponding port simultaneously;
[0167] S702, Task Monitoring and Heartbeat Monitoring:
[0168] After the solution data is uploaded to each Worker, the Client uses RPC technology to remotely call the Master's baseline solution function to process the data. At the same time, the Master synchronizes the baseline solution function to each Worker and calls it to achieve collaborative parallel computing between the Master and Workers. During the collaborative parallel computing process, the Master performs heartbeat monitoring on each Worker, monitoring the working status of each Worker in real time and providing feedback on any anomalies.
[0169] S703, Task Allocation and Load Balancing:
[0170] A smooth weighted round-robin load balancing algorithm is used to implement the allocation of solution tasks. The specific implementation method is as follows: the load balancer first assigns a weight value to each computing node (including master nodes and slave nodes) (the present invention determines the weight according to the number of CPU logical cores of each node). The weight reflects the processing capacity of the master and slave nodes. Computing nodes with higher weights will be assigned more solution tasks, and computing nodes with lower weights will be assigned fewer solution tasks.
[0171] Under certain weights, the standard Weighted Round-Robin scheduling algorithm can cause some nodes to experience transient high loads due to uneven load distribution, potentially leading to system downtime. To address this scheduling flaw, this method uses a Smooth Weighted Round-Robin load balancing algorithm to automatically configure baseline solution tasks, improving system throughput while ensuring stability.
[0172] Basic principle: The load balancer first creates a new node S for each computing node. i (including master node and slave node) assign a weight value W i (The present invention determines the weight according to the number of CPU logical cores of each node), and the weight reflects the processing capacity of the master and slave nodes; computing nodes with higher weights will be assigned more solution tasks, and computing nodes with lower weights will be assigned fewer solution tasks.
[0173] The specific implementation is as follows:
[0174] Suppose there are n computer nodes, and the corresponding IP address list, configuration weight list, and effective weight list are: S = [S1, S2, ..., S n ],W=[W1,W2,…,W n ],CW=[CW1,CW2,…,CW n ]. Each node i also has 1 configuration weight W i and the current effective weight CWi , and CW i Initialized to W i ; The indicator variable max_idx represents the IP address index of the currently selected node, which is initialized to -1; The sum of the configuration weights of all nodes is The algorithm retrieval result list is DestList. The smooth weighted round-robin scheduling algorithm process is:
[0175] 1) Initialize the current effective weight CW of each node i i To configure the weight W i , get the initial CW, and calculate the total configuration weight weightSum;
[0176] 2) Get the node with the largest weight in the current valid weight list CW, and point the indicator variable max_idx to this position, and then select the node S max_idx Append to the search result list DestList;
[0177] 3) Node S max_idx Current effective weight CW max_idx Subtract the configuration weight sum weightSum and update the current effective weight list CW;
[0178] 4) Each element CW in the current effective weight list CW i Add the corresponding W in the configuration weight list W i , get the current valid weight list CW after the second update;
[0179] 5) Repeat steps 2) to 4) above for each scheduling until all baseline solution tasks are assigned.
[0180] S704, each node performs tasks and dynamically balances load:
[0181] Each computing node's process receives the daily baseline solution task information and performs operations such as file reading and writing and baseline solution according to the set parameters. After each node completes part of the solution task, it notifies the load balancer through mechanisms such as pipeline write operations and signaling that it has completed the task and can accept new tasks. During the solution task execution process, the load balancer continuously checks the computing resource load status of each node, finds an idle node, and dynamically allocates the solution task to the idle node.
[0182] S705, task completion and result return:
[0183] After the master node monitors the completion of all baseline solution tasks on each node through inter-process communication (such as pipelines and message queues), it calls the data transmission service running on each slave node to download and merge the single-day baseline solution results of each node (including the master and slave nodes) in a collected aggregate communication mode.
[0184] S706, process data cleaning:
[0185] After the daily baseline solution is completed, the master node remotely calls the data cleaning module of each slave node through RPC to complete the process data cleaning work.
[0186] Furthermore, the S5, quality check of the single-day baseline solution includes the standardized root mean square error NRMS, baseline repeatability R, point position and baseline component mean error and relative mean error;
[0187] The calculation formula of the standardized root mean square error NRMS is as follows:
[0188]
[0189] Where Y i is the calculated value for each baseline vector epoch, Y is the true value of the baseline vector, N is the total number of epochs, and n is the number of baselines. is the variance of the solution value at each epoch; if the NRMS value is less than the set threshold, the baseline solution is considered qualified, otherwise it is unqualified.
[0190] The calculation formula of baseline repeatability R is as follows:
[0191]
[0192] Where n is the total number of observation periods for the same baseline; C i is the baseline component or side length of a period; is the C corresponding to period i i Variance of the component; C m It is the weighted average of each period.
[0193] The repeatability of each baseline side length, north-south component, east-west component and vertical component is subjected to straight line fitting of fixed error and proportional error as a reference index for measuring baseline accuracy. The fixed error and proportional error do not exceed the indicators in Table 1:
[0194] Table 1 Accuracy classification
[0195] level Fixed error α / mm Proportional error coefficient b / (mm / km) B ≤3 ≤1 C ≤5 ≤3 D ≤10 ≤10 E ≤10 ≤20
[0196] The mean error and relative mean error of the point position and baseline components meet the accuracy requirements in the following table:
[0197] The Class A GNSS network is composed of micro navigation and positioning base stations. The mean error of the annual rate of change of coordinates, relative accuracy and the annual average mean error of each component of the geocentric coordinates should not exceed the requirements of Table 2.
[0198] Table 2 Class A GNSS measurement accuracy
[0199]
[0200] The mean error of point position, the mean error accuracy of baseline components of adjacent points and the average distance between adjacent points of Class B, C, D and E GNSS networks should not exceed the requirements of Table 3.
[0201] Table 3 B, C, D, E GNSS measurement level accuracy
[0202]
[0203] Furthermore, the specific process of S6, time series analysis, is as follows: adjusting the daily baseline solutions of each subnet to generate coordinate time series of each station; and obtaining clean coordinate time series data of each station through step detection and gross error elimination.
[0204] The specific process is as follows:
[0205] (1) Perform daily adjustment on the baseline solution of each period, calculate the daily coordinates of each station, and generate the station coordinate time series;
[0206] (2) The station coordinate time series is segmented by performing step analysis on the station coordinate time series;
[0207] (3) Preliminary gross error elimination is performed based on the accuracy level of the single-day solution, and thresholds are set in the horizontal and vertical directions for detection and elimination;
[0208] (4) Least squares residual method is used to detect and eliminate gross errors. A linear fitting model is established for the coordinate time series of each station. The difference between the single-day solution and the fitted value of each station is calculated. The period with excessive mean error is eliminated with a limit of 3 times the mean error, and finally a clean time series is obtained.
[0209] Furthermore, the specific process of S7, network adjustment analysis, is as follows: performing network adjustment on the daily baselines of each subnet after time series analysis to obtain the coordinates, speed and baseline results of each measuring station; and checking the chi-square value, components of the adjusted baseline and relative mean error and other indicators according to the project GNSS network level requirements.
[0210] Adjustment mathematical model
[0211] Using Kalman filtering method:
[0212]
[0213] σ i 2 =PSD×(t k+1 -t k )
[0214] Where Δt is t k , t k+1 The difference in time. k is the state transfer matrix. I is the identity matrix. A k is the coefficient matrix of the error equation. k is the difference vector between the observed value and the theoretical calculated value, and the theoretical calculated value is calculated from the prior value of the parameter. is the correction of the station position and velocity, V k It can be obtained from the output result file of the baseline solution. is the value of the i-th parameter in the covariance matrix of the random perturbation. PSD is the power spectral density.
[0215] After adjustment, the chi-square value of each period is less than 10, which is considered qualified; otherwise, it is unqualified. The indicators such as the components and relative mean error of the adjusted baseline are the same as those corresponding to the baseline solution.
[0216] In summary, this distributed, high-performance solution for large-scale GNSS networks proposes a "time-space integrated" two-layer and three-layer data parallel solution for large-scale GNSS network baseline solution, combining multi-core parallelism with network multi-node parallelism. This solution leverages the computing power of computers, fully leveraging the high efficiency of shared memory systems and the high scalability of distributed systems. It achieves collaborative operation between centralized and distributed parallelism, significantly improving production efficiency and computing resource utilization. Furthermore, the solution integrates powerful quality control capabilities, achieving both fast and accurate calculations.
[0217] Leveraging distributed and cluster computing technologies, this solution breaks through the limitations of traditional single-machine centralized processing and solutions that rely solely on increasing single-node resource allocation. It supports remote service invocation across different nodes and load balancing of computing resources across them, effectively avoiding the massive waste of computing resources caused by uneven workloads. Furthermore, the number of nodes can be flexibly expanded based on business needs, maximizing the utilization of existing equipment and reducing investment costs.
[0218] Example 2
[0219] Using a distributed-single-node parallel mode, the observation data of 820 base stations (including IGS stations) collected from 060 to 090 in 2021 were collected, and the GNSS network was divided into 20 subnets, numbered NT01-NT20, forming a total of 620 time periods of baseline solution tasks.
[0220] Comparison with the traditional serial mode in terms of timeliness
[0221]
[0222] The distributed single-node parallel (DistriSmp) mode achieves the same results as the traditional multi-window serial mode, but its solution timeliness is more than five times faster than that of the traditional multi-window serial mode.
[0223] Example 3
[0224] A distributed cluster is used to parallelize the observation data of 3181 reference stations (including IGS stations) in a certain area from 060 to 090 in 2022, and the GNSS network is divided into 69 subnets, numbered NT01-NT69, which constitute a total of 2204 time periods of baseline solution tasks.
[0225] Workstation combination
[0226]
[0227] Comparison with the traditional serial mode in terms of timeliness
[0228]
[0229] The distributed cluster parallel (DistriSmp) mode achieves the same results as the traditional multi-window serial mode, but its solution timeliness is improved by more than 20 times compared with the traditional multi-window serial mode.
[0230] The above is a further detailed description of the present invention in conjunction with specific preferred embodiments, and the specific implementation of the present invention should not be considered to be limited to these descriptions. For those skilled in the art of the present invention, without departing from the concept of the present invention, several simple deductions or substitutions can be made, which should be considered to fall within the scope of protection of the present invention.
Claims
1. A high-performance distributed solution method for large-scale GNSS networks, characterized by: The steps include: S1. Set project solution parameters; S2. Based on the total number of baseline solution tasks for a single day, choose to use the distributed-single-node parallel mode or the distributed-cluster parallel mode; S3, upload the data to be solved; S4, using the corresponding mode to solve; If distributed-cluster parallelism is used, the specific process is as follows: S601: The client configures distributed cluster computing parameters and baseline solution strategy parameters; S602: The client uploads the data to be solved to the master node of the cluster based on the TCP protocol network socket technology. S603, the master node checks the timeliness of the observation data and tables files; S604: The master node divides the subnets according to the subnet partition list and the corresponding observation data and table files, and generates a parallel computing file system; S605: The master node configures the optimal computing throughput P of the master and slave nodes of the cluster system according to the number of tasks solved by the daily baseline and the distributed cluster computing parameters. The calculation formula is: Among them, C m is the number of logical cores of the master node in the cluster system, T is the number of worker nodes in the cluster system, C i is the number of logical cores of the i-th slave node, C′ j is the number of concurrent processes when the jth slave node is not fully loaded; in particular, when j = 1, let N is the total number of baseline solution tasks in a single day, and P is the optimal computing throughput of the cluster system; the number of tasks is the number of time periods; S606: Submit the single-day baseline solution task and high-performance solution parameters to the high-performance solution cluster. The master node collaborates with the slave nodes to perform distributed parallel solution on the baselines of each subnet to obtain the single-day baseline solution for each subnet. The specific steps are as follows: S701, master and slave nodes synchronously solve data: Based on the master-slave replication mode, the master node Master sends the solution data to each slave node Worker synchronously in a broadcast aggregation communication mode. The operations in this process include: each slave node starts the data transmission service on its own designated port; the master node starts multiple data transmission services on multiple ports in a multi-process parallel manner according to the number of slave nodes; the master node sends the solution data to each slave node on the corresponding port at the same time; S702, Task Monitoring and Heartbeat Monitoring: After the solution data is uploaded to each Worker, the client uses RPC technology to remotely call the Master's baseline solution function to process the data. At the same time, the Master synchronizes the baseline solution function to each Worker and calls it to achieve collaborative parallel computing between the Master and Workers. During the collaborative parallel computing process, the Master monitors the heartbeat of each Worker, monitors the working status of each Worker in real time, and provides feedback on anomalies. S703, Task Allocation and Load Balancing: A smooth weighted round-robin load balancing algorithm is used to distribute computation tasks. Specifically, the load balancer assigns a weight to each compute node, including both the master and slave nodes. The weight is determined based on the number of CPU cores in each node, and the weight reflects the processing power of the master and slave nodes. Compute nodes with higher weights are assigned more computation tasks, while compute nodes with lower weights are assigned fewer. S704, each node performs tasks and dynamically balances load: Each computing node's process receives the daily baseline solution task information and executes file reading and writing and baseline solution operations according to the set parameters. After each node completes part of the solution task, it notifies the load balancer through pipeline write operations and signaling mechanisms that it has completed the task and can accept new tasks. During the solution task execution process, the load balancer continuously checks the computing resource load status of each node, finds an idle node, and dynamically allocates the solution task to the idle node. S705, task completion and result return: After the master node monitors the completion of all baseline solution tasks on each node through inter-process communication, it calls the data transmission service running on each slave node to download and merge the single-day baseline solution results of each node, including the master and slave nodes, using the collected aggregate communication method; S706, process data cleaning: After the daily baseline solution is completed, the master node remotely calls the data cleaning module of each slave node through RPC to complete the process data cleaning work; S5. Perform quality check on the single-day baseline solution; S6, time series analysis; S7, network adjustment analysis; S8. Obtain the solution results.
2. The large-scale GNSS network distributed high-performance solution method according to claim 1, characterized in that: In the step S1, setting project solution parameters, the parameters include project name, GNSS network level, solution constellation, coordinate system, data sampling rate, subnet division method, baseline solution, and network adjustment.
3. The large-scale GNSS network distributed high-performance solution method according to claim 1, characterized in that: The specific process of selecting the distributed-single-node parallel mode or the distributed-cluster parallel mode based on the total number of baseline solution tasks in a single day in step S2 is as follows: the distributed-single-node parallel mode is suitable for large-scale GNSS networks where the total number of baseline solution tasks in a single day does not exceed 800 and the computing power of a single node can support it; the distributed-cluster parallel mode is suitable for ultra-large-scale GNSS networks where the total number of baseline solution tasks in a single day is greater than 800 and the computing power of a single node is insufficient to support it.
4. The large-scale GNSS network distributed high-performance solution method according to claim 1, characterized in that: S4, adopts the corresponding mode to solve; if the distributed-single-node parallel mode is adopted, the specific process is as follows: S401, the client configures distributed single-node computing parameters and baseline solution strategy parameters; S402: The client uploads the data to be solved to the server based on the TCP protocol network socket technology: S403, the server checks the timeliness of the observation data and tables file; S404. The server divides the subnets according to the subnet partition list and the corresponding observation data and table files, and generates a parallel computing file system. S405. The server determines the number of processes in the initialization process pool based on the number of tasks calculated from the daily baseline, the number of logical cores of the server CPU automatically identified by the program, and the distributed single-node computing parameters. The number of tasks is the number of time periods. S406: The server submits the single-day baseline solution task and high-performance solution parameters to the dynamically scalable process pool, and performs parallel solution on the baselines of each subnet to obtain the single-day baseline solution for each subnet.
5. The large-scale GNSS network distributed high-performance solution method according to claim 4, characterized in that: In step S406, the server submits the daily baseline solution task and high-performance solution parameters to a dynamically scalable process pool, and performs parallel solution on the baselines of each subnet to obtain the daily baseline solution for each subnet. The specific steps are as follows: S501, initialization process pool: The process pool creates a main process as a management process and a corresponding number of child processes as resource processes according to the preset concurrency number; The main process applies for space to store data structures and manage the status and related information of the subprocesses. Considering that the local computer may have other tasks besides large-scale GNSS network baseline solution, in order to balance the computing power needs of both, the optimal number of processes P is calculated as follows: Where P is the optimal number of processes, C is the number of logical cores of the computer, N is the total number of baseline solution tasks in a single day, and S is the preset number of concurrent tasks; S502, monitoring task: The main process or a specific task dispatcher is responsible for monitoring the daily baseline solution task queues of each subnet; when a new task arrives, it is placed in the task queue; S503, task allocation: The main process or task dispatcher checks the status of the child processes in the process pool, finds the idle child process through inter-process communication, and assigns the task to the idle child process; S504, child process execution task: The sub-process receives the daily baseline solution task information from the main process and performs file reading and writing and baseline solution operations according to the set parameters. The sub-process can update its status during the execution of the baseline solution task and return to the idle state after the task is completed. S505, task completion and result return: After the sub-process completes its task, it returns the daily baseline solution result to the main process by writing files or sending messages. It also notifies the main process of its task completion and readiness to accept new tasks through pipeline write operations and signaling mechanisms. S506, process pool resource recovery and shutdown When all single-day baseline solution tasks are completed, the main process is responsible for reclaiming the sub-process resources of the completed tasks, including closing file descriptors and releasing memory; the main process closes the process pool and waits for all sub-processes to exit; ensuring that all resources are released correctly to avoid resource leaks.
6. The large-scale GNSS network distributed high-performance solution method according to claim 1, characterized in that: S5, performing a quality check on the single-day baseline solution including the standardized root mean square error NRMS, baseline repeatability R, point position and baseline component mean error and relative mean error; The calculation formula of the standardized root mean square error NRMS is as follows: Where Y i is the calculated value for each baseline vector epoch, Y is the true value of the baseline vector, N is the total number of epochs, and n is the number of baselines. is the variance of the solution value at each epoch; if the NRMS value is less than the set threshold, the baseline solution is considered qualified, otherwise it is unqualified; The calculation formula of baseline repeatability R is as follows: Where n is the total number of observation periods for the same baseline; C i is the baseline component or side length of a period; is the C corresponding to period i i Variance of the component; C m It is the weighted average of each period.
7. The large-scale GNSS network distributed high-performance solution method according to claim 1, characterized in that: The specific process of S6, time series analysis, is as follows: coordinate time series analysis is performed on the single-day baseline solutions of each subnet to generate a single-day solution time series graph, step judgment and analysis are performed, and gross errors are eliminated; the specific process of S7, network adjustment analysis, is as follows: network adjustment joint processing is performed on the single-day baselines of each subnet after time series analysis to obtain the coordinates, speed and baseline results of each measuring station; and according to the project GNSS network level requirements, the chi-square value, each component of the adjusted baseline and the relative mean error index are checked.