Automatic Distributed-Memory Parallelization and Code Generation Using the Polyhedral Framework
Automatic parallelization is a hard problem. Even in domains where it has been successful, parallelization for distributed-memory parallel architectures is considered very complex, and addressing it can provide a big leap in programming such architectures productively. The authors present techniques for compilation of regular sequential programs for distributed-memory parallel architectures - typically, a cluster of multi-cores interconnected with a high performance interconnect. Compilation for distributed memory requires generation of communication code. Efficient generation of such code poses very hard problems and they provide a solution to these.