# Inversion-Based Deblending in Common Midpoint Domain Using Time Domain High-Resolution Radon
## 3 High-Performance Computing (HPC) Considerations
Such discrepancies lead to an ineffective mapping in the Radon domain and potentially compromise the integrity of the deblending process. Figure 4.1 Gulf of Mexico data: Deblending using a Gulf of Mexico marine dataset with a shot time interference of 70%, with blended data in (**a**), deblended in (**b**), and reconstruction error in (**c**). Figure 4.2 Gulf of Mexico data in CMP domain: Deblending using a Gulf of Mexico marine dataset with results in the CMP domain, with blended data in (**a**), deblended in (**b**), and the reconstruction error in (**c**). We ran both the deblending algorithm and Radon transform algorithm on a range of different hardware to show the performance of the algorithms using the different parallelization methods in different conditions: a laptop, two workstations, and our in-house server cluster. The laptop utilizes an Intel i7 8750H 6-core CPU with an Nvidia RTX 2060 MAX-Q GPU, the first workstation is equipped with an AMD Threadripper 3960\(\times\) 24-core CPU, with an Nvidia RTX 3080 Ti, and the second workstation has an Intel i7 9800\(\times\) 8-core CPU equipped with an Nvidia RTX 2060-super GPU. These results can be seen in Figure 4.3 The Runtime between the Radon transform and the deblending algorithm cannot be directly compared as they were performing different tasks; the relative difference in the runtime between different hardware shows the effect the sorting has on the different implementations. It can be seen that there is a significant computational advantage in moving from CPU processing (openMP) to GPU-based processing (CUDA). The openMPI results show a significant speedup compared to the openMP results and close the gap with the CUDA results; this speedup can mainly be attributed to the coarser-grained nature of the openMPI. The openMPI implementation shares fewer resources between threads; thus, less overall memory management has to be performed by the system, at the cost of overall RAM space as more copies of data are made. In standard Radon transform testing, the CUDA-based code reduced compute time by over an order of magnitude compared to the openMP version; after the introduction of the least-squares algorithm, the advantage diminished by a large amount. Due to the openMPI distributing all work, including the LS optimization across the nodes, it can run the LS optimization in a parallel fashion that neither the openMP nor CUDA code can, resulting in an overall faster computational time versus openMP and approaches to the CUDA implementation. OpenMPI deblending, however, cannot be properly implemented as the host node must collect all data from the other nodes to perform the LS calculation every iteration; this results in large memory transfers across the network which incur a significant latency and transfer rate hit. The overhead associated with the openMPI implementation is so large that we did not notice a benefit in our prototyping of the program as compared to even single-threaded runtimes. It must be noted, however, that openMPI used the largest amount of RAM in this exercise, about 122 GB, compared to the openMP and CUDA implementations which used 8 GB of RAM and 8 GB + 8 GB (mirrored) VRAM, respectively. The main trade-off between a CUDA/GPU-based approach and an OpenMP approach would be that of speed versus portability; the CUDA approach is significantly faster but requires an Nvidia GPU, while the OpenMP approach will work on any device that supports OpenMP parallelization in the compiler, which is any modern CPU that exists on the market. ## 5 Conclusions

We proposed a method for deblending that employs a linear inversion of a composite transform operator in the CMP domain. This inversion, when used with the blending