An MPI Dynamic Scheduling Parallel Acceleration Method for an Underwater Acoustic Propagation Ray Model

By adopting the MPI dynamic scheduling parallel acceleration method in marine engineering, the water acoustic propagation ray model is expanded to a multi-computer cluster system, which solves the problem of excessive serial computing time caused by the huge amount of sound field calculation in marine engineering, and realizes efficient parallel computing, which significantly improves the calculation speed.

CN118193158BActive Publication Date: 2025-06-20NAT UNIV OF DEFENSE TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410302848.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-03-18
Publication Date
2025-06-20
Estimated Expiration
2044-03-18

AI Technical Summary

Technical Problem

When the prior art performs sound field calculation in marine engineering, the calculation amount is huge, resulting in too long serial calculation time, limiting the application of sound field information.

Method used

The MPI dynamic scheduling parallel acceleration method is adopted to expand the water acoustic propagation ray model to a multi-machine cluster system. By combining static task allocation and dynamic scheduling, load balancing and communication time between processes are optimized.

Benefits of technology

The calculation speed of the water acoustic propagation ray model is significantly improved, and the acceleration ratio reaches more than 98%, overcoming the problem of load imbalance in MPI static task allocation, and greatly reducing the communication time between processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118193158B_ABST
    Figure CN118193158B_ABST
Patent Text Reader

Abstract

The present invention belongs to the technical field of high-performance computing and computational ocean acoustics, and particularly relates to an MPI dynamic scheduling parallel acceleration method for an underwater acoustic propagation ray model. The method includes the following steps: performing parallelism analysis on the serial code of the underwater acoustic propagation ray model to establish an MPI dynamic scheduling parallel strategy; decomposing static tasks and dynamic scheduling tasks; completing ray calculations and the dynamic scheduling process. When the dynamic scheduling tasks are completed; in the global communication domain, all processes add and reduce the sound pressure matrix, and the final result is stored in the main process. The main process writes the sound pressure matrix into the result file. Compared with OpenMP parallelism, the present invention can run on a multi-node cluster system, greatly improving the upper limit of the parallel acceleration ratio, overcoming the problem of extremely easy load imbalance in MPI static task allocation, greatly reducing the communication time between processes, and ensuring load balance during static task allocation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of high-performance computing and computational ocean acoustics, and particularly relates to an MPI dynamic scheduling parallel acceleration method for an underwater acoustic propagation ray model. Background Art

[0002] Due to the advantages of slow attenuation and long propagation distance of sound waves in ocean waters, they are widely used in underwater target detection and underwater communication in the ocean. In order to simulate the propagation of sound waves in the ocean, scholars have proposed different computational models for ocean sound fields. These models have different characteristics and are respectively applicable to the sound field calculations in different scenarios. Common computational models for ocean sound fields include ray models, normal mode models, beam integration models, and parabolic models. Among them, the ray model is applicable to the sound field calculation in the case of high-frequency sound sources and has the advantages of fast calculation speed and clear physical meaning. However, in actual ocean engineering applications, it is often necessary to divide the ocean area into grids and perform sound field calculations separately within the gridded area. With the improvement of the resolution of ocean reanalysis data, the number of grids for which sound field calculations need to be performed is increasing, and the amount of calculation has increased dramatically. Taking the ocean model data of the European Copernicus Marine Data Center as an example, the sound speed profile data with an accuracy of 0.1°×0.1° can be calculated. When calculating the three-dimensional sound field, if 16 azimuth angles are calculated at each center point, then the number of sound field environments required within a range of 100 km×100 km is 1600, and the serial calculation time of the sound field exceeds one day. The huge amount of calculation greatly limits the application of sound field information in ocean engineering.

[0003] Parallel computing is an effective method that can simultaneously utilize multiple computing resources to solve computational problems. Currently, a parallel efficiency of more than 60% can be achieved. However, the parallel acceleration method based on the OpenMP shared memory programming model can achieve good load balancing at the thread level, but its inherent shared memory parallel mode makes it inapplicable to multi-machine cluster systems, which limits the upper limit of its speedup ratio. The parallel acceleration method based on the MPI distributed memory programming model benefits from the distributed parallel mode, and the program can be extended to multi-machine cluster systems. However, the coarse-grained task division is extremely likely to lead to load imbalance, further affecting the parallel efficiency. Summary of the Invention

[0004] The purpose of the present invention is to expand the underwater acoustic propagation ray model to a multi-machine cluster system while overcoming the problem of load imbalance, and improve the calculation speed of the underwater acoustic propagation ray model based on the distributed parallel programming model.

[0005] To achieve the above object, the present invention adopts the following technical solutions.

[0006] An MPI dynamic scheduling parallel acceleration method for an underwater acoustic propagation ray model, comprising the following steps:

[0007] Step 1, conduct parallelism analysis on the serial code of the underwater acoustic propagation ray model, and based on the cluster multi-core CPU computing architecture, establish an MPI dynamic scheduling parallel strategy;

[0008] Step 2, initialize the parallel environment, determine the number of processes, complete the initialization of environmental parameters in each process, and decompose the total number of rays in the input file into two parts: static tasks and dynamically scheduled tasks;

[0009] Step 3, the subprocesses complete the ray calculations in the static tasks. The subprocesses that have completed the static tasks and the main process enter the dynamic scheduling process together. When the dynamically scheduled tasks are completed, the main process sends a completion instruction to the subprocesses, and the subprocesses stop the ray calculations;

[0010] Step 4, in the global communication domain, all processes perform a summation reduction on the sound pressure matrix, and the final result is stored in the main process. The main process writes the sound pressure matrix into the result file.

[0011] For a further improvement or specific implementation of the foregoing MPI dynamic scheduling parallel acceleration method for an underwater acoustic propagation ray model, the specific steps of Step 1 include:

[0012] Step 1.1, conduct parallelism analysis on the serial code of the underwater acoustic propagation ray model, and decompose the serial code of the underwater acoustic propagation ray model into three parts: environment reading and initialization, ray sound field calculation, and result storage; among them, there is data correlation between the environment reading and initialization and the result storage, and the code is processed in a non-parallel manner. The ray sound field calculation traverses all ray bundles and solves the influence of each ray on the final sound field one by one. There is no data correlation between the ray bundles in this part, and the code is processed in a parallel manner;

[0013] Step 1.2, based on the cluster multi-core CPU computing architecture, establish an MPI dynamic scheduling parallel strategy; according to the given number of processes, set a main process responsible for allocating computing tasks, and the remaining processes are subprocesses responsible for the sound field calculation.

[0014] For a further improvement or specific implementation of the foregoing MPI dynamic scheduling parallel acceleration method for an underwater acoustic propagation ray model, the specific steps of Step 2 include:

[0015] Step 2.1, initialize the parallel environment, determine the number of processes N. If it is a single-node machine, set the maximum number of processes not to exceed the actual number of cores. If it is a multi-node cluster system, set the maximum number of processes not to exceed the number of nodes × the number of cores per node; number the n processes, with process 0 as the main process and processes 1 to n - 1 as subprocesses;

[0016] Step 2.2, initialize the acoustic field environment parameters in each process. The specific environment parameters include the source frequency, source position, ocean boundary conditions, sound speed profile, sound propagation attenuation coefficient, receiver range, ray grazing angle range, number of rays, and acoustic field calculation range; the number of rays is set to an integer multiple of the number of processes.

[0017] Step 2.3, according to the total number of rays N in the input file beam , divide the rays into n sub-tasks in the way of loop block division, where the k-th, (k + n)-th, (k + 2n)-th,... are the k-th sub-task; each sub-task contains N beam / n rays. The first n - 1 sub-tasks are static tasks, and the last 1 sub-task is a dynamic scheduling task.

[0018] For the further improvement or specific implementation of the MPI dynamic scheduling parallel acceleration method for the aforementioned underwater acoustic propagation ray model, the step 3 includes the following steps:

[0019] Step 3.1, distribute the n - 1 sub-tasks in the static tasks to n - 1 sub-processes respectively. Each sub-process traverses the rays it needs to calculate. When calculating a single ray, first calculate the phase and amplitude at the center of the ray, and then determine the contribution of this ray to the total acoustic field through a control function; among them, the phase and intensity at the center of a single ray are obtained by solving, and the solving equation is:

[0020]

[0021]

[0022] Step 3.2, after the sub-processes complete the calculation of the static tasks, use the MPI_Send function to send a message with the identification tag = 1 to the main process. After the main process receives the message through the MPI_Recv function, enter the dynamic scheduling process, initialize the variables n recv = 0, j = n, identify the status.tag variable in the MPI_Recv function. If status.tag = 1, update the variable n recv = n recv + N beam / n. The main process uses the MPI_Send function to send the calculation task of the j-th ray to the corresponding sub-process, and then updates the variable j = j + n;

[0023] Step 3.3, during the dynamic scheduling process, whenever a child process completes a ray calculation task, the child process uses the MPI_Send function to send a message with tag = 2 to the master process. After receiving the message through the MPI_Recv function, the master process checks the status.tag variable in the MPI_Recv function. If status.tag = 2, it updates the variable n recv +n recv +1, then uses the MPI_Send function to send a ray task j that needs to be calculated to the child process, and then updates j = j + n. The master process returns the message reception status, and this process repeats;

[0024] Step 3.4, when j is greater than or equal to N beam it means that all ray calculations in the dynamic scheduling task have been allocated. Since the ray calculations have not been completed by the child process at this time, the master process maintains the message reception status. For each received message, n recb = n recv +1, and this process repeats until n recv is greater than or equal to N beam , the child process stops ray calculations, and the master process and the child process exit the dynamic scheduling process together.

[0025] For further improvement or specific implementation of the MPI dynamic scheduling parallel acceleration method for the aforementioned underwater acoustic propagation ray model, step 4 specifically includes:

[0026] Step 4.1, assign all elements of the sound pressure matrix in the master process to 0. In the global communication domain composed of the master process and all child processes, use the reduction function in the MPI message communication interface to perform summation reduction on the sound pressure matrix in each process, and the reduced sound pressure matrix is stored in the master process;

[0027] Step 4.2, write the sound pressure matrix in the master process into a file in.shd format.

[0028] For further improvement or specific implementation of the MPI dynamic scheduling parallel acceleration method for the aforementioned underwater acoustic propagation ray model, in step 3.1, for Gaussian rays, the Gaussian control equation reflecting the influence of a single sound ray on the sound field is:

[0029]

[0030] where η is the perpendicular distance from the central sound ray, A is an arbitrary constant determined by the nature of the sound source by comparing with the reference value of the uniform medium sound field, τ(s) is the phase delay along the sound ray, and p and q are the complex arc length and relative change defined by the Gaussian beam width and curvature.

[0031] Its beneficial effects are as follows:

[0032] The present invention provides an MPI dynamic scheduling parallel acceleration method for an underwater acoustic propagation ray model, providing a feasible ray model parallel acceleration method. Tests were carried out on two nodes of a supercomputer platform, and the acceleration effect can reach more than 98%. Compared with OpenMP parallelism, the MPI parallelism used in this method can run on a multi-node cluster system, and the upper limit of the parallel acceleration ratio is greatly improved;

[0033] By combining static task allocation and dynamic scheduling, this method not only overcomes the problem of load imbalance that is prone to occur in MPI static task allocation, but also greatly reduces the communication time between processes. At the same time, during the process of static task allocation, the spatial correlation between rays is fully considered, and the adjacent rays are assigned to different sub-processes by using the method of cyclic block allocation, so as to ensure the load balance during static task allocation. Description of the Drawings

[0034] Figure 1 is the overall flowchart of the embodiment of the present invention;

[0035] Figure 2 is the schematic diagram of the sound speed profile of the embodiment of the present invention;

[0036] Figure 3 is the schematic diagram of task allocation in a simple example;

[0037] Figure 4 is the comparison between the parallel sound field result and the calculation result of the standard serial program in the embodiment of the present invention;

[0038] Figure 5 is the comparison of the calculation time between the parallel program and the standard serial program in the embodiment of the present invention. Detailed Embodiments

[0039] The present invention will be described in detail below in conjunction with specific embodiments.

[0040] In order to make the technical problems, technical solutions and beneficial effects solved by the present invention more clearly understood, the present invention will be further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not used to limit the present invention.

[0041] The present invention provides a ray model parallel acceleration method based on MPI dynamic scheduling. The ray model is a commonly used model for calculating the ocean acoustic field and is suitable for calculating the ocean acoustic field environment of high frequency and deep sea. Refer to Figure 1 , which is the overall flowchart of the ray model parallel acceleration method based on MPI dynamic scheduling provided by the present invention, and specifically includes the following steps:

[0042] Step 1: Conduct parallelism analysis on the serial code of the underwater acoustic propagation ray model. For the multi-core CPU computing architecture, establish an MPI dynamic scheduling parallel strategy.

[0043] The specific steps of Step 1 are as follows:

[0044] Step 1.1: Conduct parallelism analysis on the serial code of the underwater acoustic propagation ray model Bellhop. Decompose the serial code of Bellhop into three parts: environment reading and initialization, ray sound field calculation, and result storage. Among them, there is data correlation between environment reading and initialization and result storage, so the code cannot be parallelized. Ray sound field calculation traverses all ray bundles and solves the influence of each ray on the final sound field one by one. There is no data correlation between these ray bundles, so the code can be parallelized.

[0045] Step 1.2: For the multi-core CPU computing architecture and the supercomputer cluster system in the T6 partition of the Beijing Supercomputer Center, establish an MPI dynamic scheduling parallel strategy. According to the given number of processes, set a master process responsible for allocating computing tasks, and the remaining processes are slave processes responsible for sound field calculation.

[0046] Step 2: Initialize the parallel environment, determine the number of processes, complete the initialization of environment parameters in each process, and decompose the total number of rays in the input file into two parts: static tasks and dynamically scheduled tasks.

[0047] The specific steps of Step 2 are as follows:

[0048] Step 2.1: Initialize the parallel environment. Apply for two nodes in the T6 partition of the Beijing Supercomputer Center on the parallel cloud supercomputer platform. Since the number of cores of a single node machine in the T6 partition of the Beijing Supercomputer Center is 96, the maximum number of processes is set to 192, and the number of processes is set to 150 here. The 0th process is the master process, and the 1st to 149th processes are slave processes.

[0049] Step 2.2: Complete the initialization of sound field environment parameters in each process. The specific environment parameters include sound source frequency, sound source position, ocean boundary conditions, sound speed profile, sound propagation attenuation coefficient, receiver range, ray grazing angle range, number of rays, and sound field calculation range. The number of rays is set to an integer multiple of the number of processes.

[0050] The specific embodiment is based on the scenario of a certain ocean environment, and the sound speed profile is set as shown in the reference Figure 2 The sea surface boundary is set to vacuum, and the seabed boundary is set to an acoustic half-space.

[0051] Step 2.3: According to the total number of rays N in the input file beam= 6000, the rays are divided into 150 sub - tasks in a cyclic block division manner. The k - th, (k + 150)-th, (k + 300)-th, … are the k - th sub - task. Each sub - task contains 40 rays. The first 149 sub - tasks are static tasks, and the last 1 sub - task is a dynamic scheduling task.

[0052] Step 3: The subprocesses complete the ray calculations in the static tasks. The subprocesses that have completed the static tasks and the main process enter the dynamic scheduling process together. When the dynamic scheduling task is completed, the main process sends a completion instruction to the subprocesses, and the subprocesses stop the ray calculations.

[0053] The specific steps of Step 3 are as follows:

[0054] Step 3.1: The 149 sub - tasks in the static tasks are respectively assigned to 149 subprocesses. Each subprocess traverses the rays that it needs to calculate. When calculating a single ray, first calculate the phase and amplitude of the ray center, and then determine the contribution of this ray to the total sound field through a control function. Among them, the phase and intensity of the center of a single ray are obtained by solving Equation and Equation, and the influence of a single sound ray on the sound field is reflected in the Gaussian control equation shown in Equation;

[0055] Step 3.2: After the subprocesses complete the calculations of the static tasks, they use the MPI_Send function to send a message with tag = 1 to the main process. After the main process receives the message through the MPI_Recv function, it enters the dynamic scheduling process and initializes the variables n recv = 0, j = 150, identify the status.tag variable in the MPI_Recv function. If status.tag = 1, update the variable n recv = n recv + 40, the main process uses the MPI_Send function to send the calculation task of the j - th ray to the corresponding subprocess, and then updates the variable j = j + 150;

[0056] Step 3.3: During the dynamic scheduling process, whenever a subprocess completes a ray calculation task, the subprocess uses the MPI_Send function to send a message with tag = 2 to the main process. After the main process receives the message through the MPI_Recv function, it identifies the status.tag variable in the MPI_Recv function. If status.tag = 2, update the variable n recv = n recv + 1, then use the MPI_Send function to send a ray task j that needs to be calculated to the subprocess, and then update j = j + 150. The main process returns the message receiving status, and so on;

[0057] Step 3.4, when j is greater than or equal to 6000, it means that all ray calculations in the dynamic scheduling task are completed. Since the ray calculations have not been completed by the child processes at this time, the main process remains in the message receiving state. For each received message, n recv = n recv + 1, and this process repeats until n recv is greater than or equal to 6000. Then the child processes stop ray calculations, and the main process and the child processes exit the dynamic scheduling process together.

[0058] Step 4, in the global communication domain, all processes perform a summation reduction on the acoustic pressure matrix, and the final result is stored in the main process. The main process writes the acoustic pressure matrix into the result file.

[0059] Step 4.1, assign all elements of the acoustic pressure matrix in the main process to 0. In the global communication domain composed of the main process and all child processes, use the MPI_Reduce function in the MPI message communication interface to perform a summation reduction on the acoustic pressure matrix in each process. The reduced acoustic pressure matrix is stored in the main process;

[0060] Step 4.2, in the Fortran language code, use the write function to write the acoustic pressure matrix in the main process into the MunkB.shd file. The acoustic pressure matrix is a real matrix with a dimension of 501×1001.

[0061] Reference Figure 4 shows the result comparison of the environment file in this embodiment between the classical serial program and the dynamic scheduling parallel program. Reference Figure 5 shows the comparison of the running time between the serial program and the parallel program in this embodiment.

[0062] In this embodiment, the results of the classical serial program and the dynamic scheduling parallel program obtained finally are verified to be consistent. And when two nodes are applied on the supercomputer platform and 150 processes are started for calculation, the running time of the parallel program is 0.862 s (about 0.6 s for each process to perform ray calculations), while the running time of the serial program is 65.343 s. This shows that the present invention provides a high-efficiency ray model parallel acceleration method based on MPI dynamic scheduling, and the speedup ratio reaches more than 98.7% under the test conditions, greatly improving the calculation speed of the ray model.

[0063] If parallelization is performed for OpenMP, the program can only perform parallel optimization at the thread level using up to 96 cores of a single node, while the present invention is based on the MPI distributed storage parallel mode and can run on multiple nodes. The theoretical upper limit of parallel optimization is much higher than that of the parallel optimization based on OpenMP.

[0064] Since the static task allocation and dynamic scheduling are combined in the present invention, the ray calculation time of each subprocess in the implementation case remains at about 0.6 s, overcoming the problem of load imbalance that is prone to occur in the MPI static task allocation process. At the same time, since the number of rays for dynamic scheduling is only 40, the communication cost between processes is greatly reduced.

[0065] In the process of static task allocation, considering that the trajectories of adjacent rays are basically the same, their computational amounts are also basically the same. Therefore, the cyclic allocation method is adopted to allocate the calculations of adjacent rays to different subprocesses, thus ensuring that after the static task allocation, the loads of each subprocess are generally balanced. On this basis, subsequent load adjustment only needs to use dynamic scheduling to optimize the load balance to a good state.

[0066] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than limiting the protection scope of the present invention. Although the present invention has been described in detail with reference to the preferred embodiments, those of ordinary skill in the art should understand that the technical solutions of the present invention can be modified or equivalently replaced without departing from the essence and scope of the technical solutions of the present invention.

Claims

1. An MPI dynamic scheduling parallel acceleration method for underwater acoustic propagation ray model, characterized in that: The steps include: Step 1: Conduct parallel analysis on the serial code of the underwater acoustic propagation ray model and establish an MPI dynamic scheduling parallel strategy based on the cluster multi-core CPU computing architecture; Step 2, parallel environment initialization, determine the number of processes, complete the initialization of environment parameters in each process, and decompose it into static tasks and dynamic scheduling tasks according to the total number of rays in the input file; Step 3, the subprocess completes the ray calculation in the static task, and the subprocess that completes the static task enters the dynamic scheduling process together with the main process. When the dynamic scheduling task is completed, the main process sends a completion instruction to the subprocess, and the subprocess stops the ray calculation; Step 3 includes the following steps: Step 3.1, assign the n-1 subtasks in the static task to n-1 subprocesses respectively. Each subprocess traverses the rays to be calculated. When calculating a single ray, first calculate the phase and amplitude of the ray center, and then determine the contribution of the ray to the total sound field through the control function; the phase and intensity of the single ray center are obtained by solving the equation, and the solution equation is: Step 3.2, after the child process completes the calculation of the static task, it uses the MPI_Send function to send a message with tag=1 to the main process. After the main process receives the message through the MPI_Recv function, it enters the dynamic scheduling process and initializes the variable n recv =0, j=n, identify the status.tag variable in the MPI_Recv function, if status.tag=1, update the variable n recv =n recv +N beam / n, the main process uses the MPI_Send function to send the calculation task of the ray to the corresponding child process, and then updates the variable j=j+n; Step 3.3, during the dynamic scheduling process, every time the child process completes a ray calculation task, the child process uses the MPI_Send function to send a message with tag = 2 to the main process. After the main process receives the message through the MPI_Recv function, it updates the status.tag variable in the MPI_Recv function. If status.tag = 2, the variable n is updated. recv =n recv +1, and then use the MPI_Send function to send a ray task j that needs to be calculated to the child process, and then update j=j+n, the main process returns to the message receiving state, and the cycle repeats; Step 3.4, when j is greater than or equal to N beam When , it means that all ray calculations in the dynamic scheduling task are completed. Since the ray calculations have not been completed by the child process at this time, the main process keeps receiving messages. Each time a message is received, n recv =n recv +1, repeat until n recv Greater than or equal to N beam , the subprocess stops ray calculation, and the main process and the subprocess exit the dynamic scheduling process together; Step 4: In the global communication domain, all processes perform addition reduction on the sound pressure matrix, and the final result is stored in the main process, which writes the sound pressure matrix into the result file.

2. The MPI dynamic scheduling parallel acceleration method of the underwater acoustic propagation ray model according to claim 1 is characterized in that: The step 1 specifically includes: Step 1.1, conduct parallel analysis on the serial code of the underwater acoustic propagation ray model, and decompose the serial code of the underwater acoustic propagation ray model into three parts: environment reading and initialization, ray sound field calculation, and result storage; among them, there is data correlation between the two parts of environment reading and initialization and result storage, and the code is processed in a non-parallel manner; the ray sound field calculation is to traverse all ray beams and solve the influence of the rays on the final sound field one by one. There is no data correlation between the ray beams in this part, and the code is processed in a parallel manner; Step 1.2, based on the cluster multi-core CPU computing architecture, establish an MPI dynamic scheduling parallel strategy; according to the given number of processes, set a main process to be responsible for allocating computing tasks, and the remaining processes are sub-processes responsible for the calculation of the sound field.

3. The MPI dynamic scheduling parallel acceleration method of the underwater acoustic propagation ray model according to claim 1 is characterized in that: The step 2 specifically includes: Step 2.1, initialize the parallel environment, determine the number of processes n, if it is a single-node machine, set the maximum number of processes not to exceed the actual number of cores, if it is a multi-node cluster system, set the maximum number of processes not to exceed the number of nodes × the number of cores of a single node; number the n processes, process 0 is the main process, and processes 1 to n-1 are child processes; Step 2.2, complete the initialization of the sound field environment parameters in each process. The specific environment parameters include sound source frequency, sound source position, ocean boundary conditions, sound velocity profile, sound propagation attenuation coefficient, receiver range, ray grazing angle range, number of rays, and sound field calculation range; the number of rays is set to an integer multiple of the number of processes; Step 2.3, according to the total number of rays N in the input file beam , the rays are divided into n subtasks by using the cyclic block partitioning method; each subtask contains N beam / n rays, the first n-1 subtasks are static tasks, and the last subtask is a dynamically scheduled task.

4. The MPI dynamic scheduling parallel acceleration method of the underwater acoustic propagation ray model according to claim 1 is characterized in that: The step 4 specifically includes: Step 4.1, assign all elements of the sound pressure matrix in the main process to 0, and in the global communication domain composed of the main process and all child processes, use the reduction function in the MPI message communication interface to add and reduce the sound pressure matrix in each process, and the reduced sound pressure matrix is ​​stored in the main process; Step 4.2, write the sound pressure matrix in the main process into a file in .shd format.

5. The MPI dynamic scheduling parallel acceleration method of the underwater acoustic propagation ray model according to claim 1 is characterized in that: In step 3.1, for Gaussian rays, the Gaussian control equation for the effect of a single sound ray on the sound field is: Where η is the vertical distance from the center sound line, A is an arbitrary constant determined by the properties of the sound source by comparison with the reference value of the uniform medium sound field, τ(s) is the phase delay along the sound line, and p and q are the complex arc length and relative changes defined by the Gaussian beam width and curvature.

Citation Information

Patent Citations

  • Parallel coupling marine acoustic forecasting system and operation method

    CN113259034A

  • Underwater three-dimensional sound field model Bellhop3D parallel implementation method based on domestic many-core supercomputing

    CN115437782A