Performance and Productivity in Parallel Programming via Processor Virtualization

PPL Paper Number: 03-16
PPL CVS: productivity

Authors:
L. V. Kale
Parallel Programming Laboratory, Department of Computer Science, University of Illinois at Urbana-Champaign

Proc. of the First Intl. Workshop on Productivity and Performance in High-End Computing (at HPCA 10), Feb 14, 2004.


Abstract

We have been pursuing a research program aimed at enhancing productivity and performance in parallel computing at the Parallel Programming Laboratory of University of Illinois for the past decade. We summarize the basic approach, and why it has improved (and will further improve) both productivity and performance. The centerpiece of our approach is a technique called processor virtualization: the program computation is divided into a large number of chunks (called virtual processors), which are mapped to processors by an adaptive, intelligent runtime system. The runtime system also controls communication between virtual processors. This approach makes possible a number of runtime optimizations. We argue that the following strategies are necessary to improve productivity in parallel programming: - Automated resource management via processor virtualization - Modularity via concurrent composability - Reusability via frameworks, libraries, and multi-paradigm interoperability Of these, the first two directly benefit from processor virtualization, while the last is indirectly impacted. We describe our research on all these fronts.


[postscript] [PDF] [bibtex] [text reference]