In the previous section, you learned how to decompose the input data and parallelize a simple data processing and analysis program. However, parallelizing the tsunami simulator will present us with a unique challenge, because there we’ll need to send and receive data between images at every time step, and carefully synchronize the images as we iterate the solution in time. This is where things become interesting (and challenging!) for the parallel programmer.
Coarrays and synchronization, explained