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.
People
Research Areas