The Virtualization Approach to Parallel Programming: Runtime Optimizations and the State of the Art
Authors:
L. V. Kale
Parallel Programming Laboratory, Department of Computer Science, University
of Illinois at Urbana-Champaign
LACSI 2002 ("State of the field" paper)
For the past decade, we have been developing a parallel programming model based on virtualization. The basic idea is simple: let the programmer divide the work into a large number of chunks, mostly independent of the number of processors, and let the system map these entities to processors. Moreover, this idea leads to an effective separation of concerns between the programmer and the runtime system (RTS), and empowers the RTS to carry out several tasks automatically that would normally require complex parallel programming skills. We describe the methodology, explain its advantages, and the success it has led to, including two Gordon Bell award nominations for ``difficult to parallelize'' applications.