Grid parallelism is naturally aligned to image processing, where operations can be cast in a form that acts on a specific localized region for each and every individual cell value of data. Commonly, the cell value is referred to as a pixel in the case of 2D image data, and voxel in the case of 3D image data. Grids can, of course, be N-dimensional matrix structures, but as human beings, it's somewhat difficult for us to wrap our heads around more than 4D.
The key to efficient grid parallelism is the distribution mapping of data across the set of parallel processes, and the interactions between each process, as they may exchange data with one another to accommodate iterative operations that require access to more of the data than each process holds locally. Consider a simple but very large square 2D image, and that we have a cluster of nine independent computational cores available. To illustrate the point, we will add the constraint that each of the computational nodes only...