PyLops provides users with a suite of Sliding and Patch operators that divide a 1D, 2D or 3D into windows or patches and applies the same operator to all of them.
An extension of these operators to pylops-mpi would enable parallelism across the windows or patches. This is embarassingly parallel for the adjoint (with same halo) whilst requires writing a common output array for the forward (with multiple ranks writing in the overlapping part)
These operators could be implemented following a similar procedure to the one developed for the derivatives operator, as some ghosts (aka overlap) between workers is required for the patches to be recombined in the forward pass.
PyLops provides users with a suite of
SlidingandPatchoperators that divide a 1D, 2D or 3D into windows or patches and applies the same operator to all of them.An extension of these operators to pylops-mpi would enable parallelism across the windows or patches. This is embarassingly parallel for the adjoint (with same halo) whilst requires writing a common output array for the forward (with multiple ranks writing in the overlapping part)
These operators could be implemented following a similar procedure to the one developed for the derivatives operator, as some ghosts (aka overlap) between workers is required for the patches to be recombined in the forward pass.