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.