Compiler Support for Productive Message-Driven Parallel Programming
Thesis 2012
Publication Type: PhD Thesis
Repository URL: thesis/AaronBeckerPhD
Abstract
Historically, the creators of parallel programming models have employed two different approaches to make their models available to developers: either by providing a library with hooks for common programming languages, by developing a new language and associated infrastructure altogether. Despite the flexibility of the language approach and the great number of parallel languages that have been created, the library approach, as exemplified by the Message Passing Interface, has dominated large-scale high performance computing. It is our hypothesis that the combination of a rich runtime system and a relatively simple compiler infrastructure can significantly improve programmer productivity without compromising performance. In this work, we examine this hypothesis through the lens of Charj, a simple language based on the \charm runtime system. We consider the effect that the addition of a compiler has on user experience in terms of the ways in which features are exposed to the programmer and in opportunities for optimization, and code simplification, and the integration of multiple programming models, drawing from our experiences developing the \charm runtime and the Charj language. We substantiate our conclusions through the development of Charj applications that are significantly more simple than their \charm equivalents without sacrificing performance.
TextRef
People
Research Areas