Performance and Productivity in Parallel Programming via Processor Virtualization
International Workshop on Productivity and Performance in High-End Computing at HPCA (PPHEC) 2004
Publication Type: Paper
Repository URL: productivity
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.
Laxmikant V. Kale, "Performance and Productivity in Parallel Programming via Processor Virtualization", Proc. of the First Intl. Workshop on Productivity and Performance in High-End Computing (at HPCA 10), Feb 14, 2004.