Incremental Parallelization with Migration - Wenhui Zhang; Lei Pan; Qinghong Shang; Bic, L. F.; Dillencourt, M. B. (2012 IEEE 10th International Symposium on Parallel and Distributed Processing with Applications, 2012)
We present a new methodology for developing parallel distributed programs in a series of incremental steps. The methodology takes advantage of threads that are able to migrate through the network and thus are able to follow distributed data. This allows the data to be partitioned and distributed first, which guarantees that elements that are used together in a computation are collocated on the same node. Next, the loops in the code are tiled to minimize migration among nodes. After deciding on the location at which each loop is to execute, the necessary migration and remote access statements are inserted to make the code executable. This process is repeated based on feedback obtained from the execution, which may improve the overall performance by suggesting a different data distribution or a different coarseness of tiling. We illustrate the trade-offs and the performance using a well-known application with two different data distributions.