Language Runtimes 2005
Motivation
The DARPA HPCS effort has been tasked with increasing programmer productivity while enabling petascale computing. In addition, with next generation game consoles utilizing multicore system-on-chip processor architectures, parallel programming will finally be going mainstream. Although recently, there has been research in targeting existing programming models such as MPI and OpenMP to next generation multicore processor architectures, there are differing opinions as to their overall applicability. Furthermore, it is generally accepted that a viable next generation petascale programming model will need to support multiple levels of parallelism including: data parallelism, task parallelism, SPMD, streams, etc.
Consequently, emerging multi-level parallel programming models, including Cray’s Chapel, Sun’s Fortress, and IBM’s X10, as well as stream programming models such as Reservoir Lab’s / Stanford’s StreamC provide a new opportunity in both scalable parallelism and high level of programmer abstraction. An important figure of merit for a commercially viable solution will be the ability of the solution to provide tangible programmer productivity. When attempting to validate the productivity of a programming solution, we need to dig deeper than the obvious syntactic differences, we must understand the core semantics of the respective solutions, their similarities and how they differ. In addition, we must consider metrics such as how the solution manages complexity, the ease of use, simplicity, and expressibility. In addition, the programming environments, code reuse, as well as the reduction of new code that has to be written are all issues that need to be considered. Finally, we must also have an understanding of how the solutions proposed productivity features impact its runtime performance characteristics.