Jacobi 2D Example Structure
Main:
   Setup worker array, pass data to them
Workers:
   Start looping
   Send messages to all neighbors with ghost rows
   Wait for all neighbors to send ghost rows to me
   Once they arrive, do the regular Jacobi relaxation
   Calculate maximum error, do a reduction to compute
     global maximum error
   If timestep is a multiple of 64, load balance the
     computation. Then restart the loop.