## 4 Discussion
### Performance Results for Synthetic Models  
According to the obtained results shown in Figure 25a, execution times were reduced 10.73\(\times\), 11.72\(\times\) and 10.21\(\times\) for the gravimetric, magnetometric and gradiometric inversions, respectively, in the best case, i.e., for 12 threads. This is a satisfactory result considering that the workstation consists in 12 physical cores. Once the number of physical cores is reached, variations in performance are introduced in the logical cores. This result is common because the threads are sharing the physical cores [48; 57]. Furthermore, with HT enabled, a small gain of 0.46\(\times\), 2.38\(\times\) and 0.33\(\times\) in the computing times is observed for each inversion process for 24 spawned threads, with respect to the results of 12 threads. It is important to point out that search algorithms by their nature have time variations in their execution, because searches are not deterministic. In this sense, the results presented in Figure 25a are the result of a statistical average of 10 different executions under the same circumstances. As a general result, the execution time is reduced around 12\(\times\) when executing it with 24 spawned threads.  
The maximum speed-up values for the T model were 10.73, 11.72 and 10.21 with 24 threads, for gravimetric, magnetic and gradiometric inversions, respectively (see Figure 25b). Considering that the obtained speed-up values with 12 threads are 10.32, 11.39 and 9.91, the difference in performance between 24 and 12 threads is not significant. It can even be observed from Figure 25b that after 12 threads, a significant drop in the performance occurs up to 14 threads. After the thread 15, the performance is recovered slowly. This behavior is common with HT enabled, and it shows to bring an oscillating behavior in this case, although in certain applications and circumstances it can achieve up to 25% in performance [48; 58; 59]. For this case, only with 24 threads, the performance slightly improves in about 4% with respect to the results with 12 threads.  
On the other hand, it is important to note that for 1 to 12 threads, the general behavior of the OpenMP parallelization for the bodies growth algorithm is close to the perfect speed-up (notably, for the gravimetric inversion). This fact demonstrates that the herein presented OpenMP parallelization strategy of the algorithm is well developed and coded, so the remaining fraction of serial code is minimum.  
For the S model case, 1 to 24 threads were also spawned for the three inversion cases: gravimetric, gradiometric and magnetic data inversion. Such performance results for the S model are presented in Figure 26, where it can be observed that the results are analogous to those of the T model (Figure 25). We can observe the same behavior in computing times, providing time reductions of 11.26\(\times\), 11.10\(\times\) and 11.05\(\times\), respectively, for the 24 threads case (see Figure 26a). 24 threads case yields an improvement of only 4.8% with respect to the results of 12 threads in the best case (magnetometric inversion). On the  
Figure 35: Behavior of growth algorithm as a function of \(\tau\) algorithm.  
other side, the speed-up results for the S model are remarkable, in the sense that the three inversion cases are very close to the ideal theoretic speedup. This is likely to the fact that a configuration of prisms that optimized the misfit was found in more consistent execution times for the S model than for the T model.