Program transformations for static process networks
Stuart Cox, Shell-Ying Huang, Paul H. J. Kelly, Junxian Liu, Frank Taylor · ACM SIGPLAN Notices · 1993
Introduction An important recent idea in software technology for distributed-memory multicomputers is the use of annotations to control data partitioning and placement, relying on a compiler to infer the necessary process placement and communications. We have been developing a declarative language for controlling data partitioning and placement in functional programs, called Caliban. It is interesting because the annotation language builds on the power of the functional language, allowing the user to re-use code developed for the computational part of the problem when expressing how it should be distributed across a parallel computer. The key to doing this is partial evaluation, that is symbolically executing the program until the annotation is in its primitive form, and the partitioning is clear. While this work was developed primarily in the context of parallel functional programming, there is the interesting prospect of applying it to the problem of controlling the distribu