SPMD-style (single program multiple data) parallel programming, usually done with MPI, are dominant in high-performance computing on distributed memory machines. This thesis outlines a new methodology to aid in the development of SPMD-style high-performance programs. The new methodology is supported by a new language called MSL that combines ideas from generative programming and software synthesis to simplify the development process as well as to allow programmers to package complex implementation strategies behind clean high-level reusable abstractions. We propose in this thesis the key new language features in MSL and new analyses in order to support synthesis and equivalence checking for programs written in SPMD-style, as well as empirical evaluations of our new methodology.
Thesis Supervisor: Prof. Armando Solar-Lezama