Domain Morphisms: A New Construct for Parallel Programming and Formalizing Program Optimization

Abstract : This paper addresses the issue of how to make the task of writing correct and efficient parallel programs easier. Domain morphism is a new construct for specifying parallel-program optimization at a high level, and enables an equational program transformation whereby the optimized program containing implementation details is derived mechanically. In addition, we introduce the constructs index domain, data field, communication form, and hypersurfaces for facilitating parallel programming and generating efficient target parallel programs with explicit synchronization and communication. We describe an equational theory and new program transformation procedures motivated by these new constructs. A programming example illustrating the use of these constructs and the program transformation steps is given.