Rethinking Distributions in HPF

Ken Kennedy

Ann and John Doerr Professor 
Director, Center for High Performance Software 
Rice University

 
Although HPF continues to be an important language for parallel programming, particularly in its influence on other languages, it has never achieved the level of success that most of us hoped it would when we began work a decade ago. Among the many reasons for HPF's limited success?immaturity of compilers, the emergence of MPI and OpenMP, and the absence of a portable HPF library, to name just a few?one stands out in my mind as crucial: the set of distributions provided by HPF did not support a broad enough range of applications.  The right way to fix this problem is not to add more distributions to the language, but rather to make it possible for users to define, implement, and modify distributions as the need arises.
 
In this keynote, I will explore ways to implement user-defined distributions and discuss a new compiler technology called telescoping languages that could make these approaches reasonably efficient. The key idea is to use substantive amounts of computer time to analyze and optimize the specifications for new distributions so that the compiler can be made aware of their specific properties as if they were built in to the language from the beginning. The cost of this step would be amortized over the many compilations of the extended version of HPF containing the new distribution.