In order to solve computationally hard geoacoustic inversion problems, we launched the volunteer computing project Acoustics@home [2] on 28 March 2017. It is based on the BOINC platform [3]. In Acoustics@home all daemons (that operate on the server) and client application (it operates on volunteers’ PCs) are based on the CAMBALA MPI-program [26]. Work generator daemon decomposes an original problem into independent subproblems by varying several parameters of a search space. The rest of the parameters are varied by the client application. For each set of the parameters **A** the value of the mismatch function (1) is calculated by the client application. Program sources of the project are avaliable online [1].

As it was mentioned above, the goal of our computational experiments is the estimation of the sound-speed profile (SSP) *c* = *c*(*z*) in the water column (see Section 3). Hence, the set of the inversion parameters **A** consists of the sound speed values *c*_{1}, *c*_{2}, …, *c*_{Nc} on a uniform grid of the depth values *z*_{0}, *z*_{1}, *z*_{2}, …, *z*_{Nc}. The grid is introduced in the water column in such a way that *z*_{0} = 0, *z*_{Nc} = *h* (*z*_{i+1} − *z*_{i} = *Δz* = *const*). We also assume that *c*_{Nc} = *c*_{Nc}_{−1}, and therefore *N*_{c} parameters should be inverted. For each *z*_{j} corresponding *c*_{j} in our experiment can take the values in a discrete set of even integers from 1450 m/s to 1510 m/s (31 possible values in total). Although it means that the estimation error can be ~ 2 m/s just due to the search space discretization, such accuracy is sufficient for many applications in underwater acoustics.

Clearly, the resolution of the SSP *c*(*z*) depends on the number of nodes *N*_{c}. The more nodes we can afford, the better is the possible accuracy of the SSP estimation. We launched our dispersion-based geoacoustic inversion algorithm for *N*_{c} = 1, 2, …, 6. The inversion procedure for *N*_{c} = 1, 2, …, 4 was successfully completed via CAMBALA on the computational cluster “Academician V.M. Matrosov” of Irkutsk Supercomputer Center of SB RAS [21]. In our experiments we used 1 node of the cluster, which is equipped with two 18-core CPUs Intel Xeon E5-2695 (36 CPU cores in total) and 128 gigabytes of RAM.

The search spaces for *N*_{c} = 5 and *N*_{c} = 6 turned out to be too large for a cluster. That is why we launched them in Acoustics@home on 12 September 2017. For *N*_{c} = 5 the search space was divided into 29 791 workunits, which were made by varying the values of *c*_{1}, *c*_{2}, *c*_{3}. The client application had to vary the values of *c*_{4}, *c*_{5} for each workunit, so 961 points had to be processed within it. For *N*_{c} = 6 the search space was divided into 923 521 workunits (by varying the values of *c*_{1}, *c*_{2}, *c*_{3}, *c*_{4}), each of them consisted of 961 points (the values of *c*_{5}, *c*_{6} were varied). On average it took about 1 hour to process one workunit on 1 CPU core. Both experiments were successfully completed, it took about 2 months to perform the hardest of them.

Recently Acoustics@home has reached the average performance of 7 teraflops, 2544 PCs of 1547 volunteers have already participated in the project. Let us remind, that during our experiments for *N*_{c} = 1, 2, …, 4 we used 36 cluster’s CPU cores. In the considered experiments for *N*_{c} = 5 and *N*_{c} = 6, the project’s performance was comparable to that of a computational cluster equipped with 500 CPU cores of the mentioned kind. Details of the conducted experiments are presented in . The estimated sound speed profiles are presented in Figure 1.

Table 1 Results of geoacoustic inversion for different values of *N*_{c}.

Let us briefly discuss the inversion results from the acoustical point of view. It should have been expected that in the case *N*_{c} = 1 we obtained some value of the sound speed that is close to its average over the whole water column. In the case *N*_{c} = 2 the approximation is still very inaccurate, yet it already catches the main features of the true profile. Indeed, to certain extent it reproduces the thermocline near the surface and the homogeneous layer near the bottom.

From the middle and the bottom panels of Figure 1 it is clear that starting from *N*_{c} = 3 we already obtain a relatively accurate estimate of the sound speed profile. On average the approximations corresponding to *N*_{c} = 4 and *N*_{c} = 5 are almost identically accurate. Thus, the grid of a few points is in fact sufficient to estimate the hydrological properties of the shallow-water waveguide via geoacoustic inversion. The results for *N*_{c} = 6 also indicate that the increase of the number of nodes does not necessarily improves the inversion accuracy. This can be considered an additional justification for using trans-D inversion technique [25], where the preference in given to the sound speed profile approximations with fewer nodes.

One of the most efficient ways to boost the performance of a BOINC-based project is to organize a competition on the BOINCstats site [7]. In the course of such competitions teams try to earn as many project’s credits as possible. In September 2017 the “Ocean of fantasy” competition was launched to help Acoustics@home perform the aforementioned experiments faster. As a result, 26% of workunits for *N*_{c} = 6 were processed within a week (let us remind, that the whole experiment took 58 days). At the end the competition, the project’s has reached the record performance of 18 teraflops. It should be noted, that competitions of the mentioned type can lead to high load of a project’s server. In order to minimize the server load, an improved task scheduling can be used (*e.g*., [22]). However, in our case the default task scheduling coped with the competition.

## Comments (0)