  Because Full Waveform Inversion (FWI) works with a massive amount of data,
its execution requires much time and computational resources, being restricted
to large-scale computer systems such as supercomputers. Techniques such as FWI
adapt well to parallel computing and can be parallelized in shared memory
systems using the application programming interface (API) OpenMP. The
management of parallel tasks can be performed through loop schedulers contained
in OpenMP. The dynamic scheduler stands out for distributing predefined
fixed-size chunk sizes to idle processing cores at runtime. It can better adapt
to FWI, where data processing can be irregular. However, the relationship
between the size of the chunk size and the runtime is unknown. Optimization
techniques can employ meta-heuristics to explore the parameter search space,
avoiding testing all possible solutions. Here, we propose a strategy to use the
Parameter Auto Tuning for Shared Memory Algorithms (PATSMA), with Coupled
Simulated Annealing (CSA) as its optimization method, to automatically adjust
the chunk size for the dynamic scheduling of wave propagation, one of the most
expensive steps in FWI. Since testing each candidate chunk size in the complete
FWI is unpractical, our approach consists of running a PATSMA where the
objective function is the runtime of the first time iteration of the first
seismic shot of the first FWI iteration. The resulting chunk size is then
employed in all wave propagations involved in an FWI. We conducted tests to
measure the runtime of an FWI using the proposed autotuning, varying the
problem size and running on different computational environments, such as
supercomputers and cloud computing instances. The results show that applying
the proposed autotuning in an FWI reduces its runtime by up to 70.46% compared
to standard OpenMP schedulers.
