dolphin
dolphin copied to clipboard
Speeding up the phase linking processing for large, single stacks
For NISAR processing, we'll need to figure out how to get similar data parallelism for the phase linking loop as sentinel-1 bursts.
There's discussion, but not consensus on the best way to speed up Jax on CPUs (See also https://github.com/google/jax/issues/5506 and https://github.com/google/jax/issues/10180)
While we use jax.vmap on the eigenvalue computation, this is used to SIMD vectorize JAX code. It does not actually do CPU-parallelization. This is why the CPU usage during much of the wrapped phase code is rather low.
This isn't a problem for Sentinel-1 where we'll process multiple bursts at the same time with n_parallel_bursts
; but we'll need to think about better parallelization strategies for large, single-stack processing like with NISAR/ALOS.