{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/34240"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/34240","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Compiler support for productive message-driven parallel programming","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.","abstract_html":"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.","abstract_has_math":false,"creators":["Becker, Aaron T."],"institution":"University of Illinois at Urbana-Champaign","degree_name":"Ph.D.","degree_level":"Dissertation","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Kale, Laxmikant V.","Padua, David A.","Garzaran, Maria J.","Sadayappan, Ponnuswamy"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2012,"date_issued":"2012-09-18T21:07:28Z","date_published":"2012-09-18T21:07:28Z","updated_at":"2026-07-22T22:25:30Z","subjects":["Parallel Programming","Programming Languages","Compilers","Runtime Systems","Productivity","Message-Driven Programming"],"languages":["en"],"rights":["Copyright 2012 Aaron Becker"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/34240","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Kale, Laxmikant V.","Padua, David A.","Garzaran, Maria J.","Sadayappan, Ponnuswamy"]},{"key":"dc:creator","label":"Author","values":["Becker, Aaron T."]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2012-09-18T21:07:28Z","2012-08"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Dissertation"]},{"key":"thesis:degree_name","label":"Degree Name","values":["Ph.D."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Parallel Programming","Programming Languages","Compilers","Runtime Systems","Productivity","Message-Driven Programming"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2012 Aaron Becker"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/34240"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["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.","Item withdrawn by Katherine Eriksen (eriksen3@illinois.edu) on 2012-07-09T21:10:41Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Becker_Aaron.pdf: 1720933 bytes, checksum: 97f686dd189ff8ab4908586ac324a7b4 (MD5)","Made available in DSpace on 2012-09-18T21:07:28Z (GMT). No. of bitstreams: 2 Becker_Aaron.pdf: 1720933 bytes, checksum: 97f686dd189ff8ab4908586ac324a7b4 (MD5) license.txt: 4062 bytes, checksum: 831399122905058fbf471b56485a9a57 (MD5)"]},{"key":"dc:title","label":"Title","values":["Compiler support for productive message-driven parallel programming"]}]}],"canonical_facts":{"dc:contributor":["Kale, Laxmikant V.","Padua, David A.","Garzaran, Maria J.","Sadayappan, Ponnuswamy"],"dc:creator":["Becker, Aaron T."],"dc:date":["2012-09-18T21:07:28Z","2012-08"],"dc:description":["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.","Item withdrawn by Katherine Eriksen (eriksen3@illinois.edu) on 2012-07-09T21:10:41Z Item was in collections: University of Illinois Theses & Dissertations (ID: 1) No. of bitstreams: 1 Becker_Aaron.pdf: 1720933 bytes, checksum: 97f686dd189ff8ab4908586ac324a7b4 (MD5)","Made available in DSpace on 2012-09-18T21:07:28Z (GMT). No. of bitstreams: 2 Becker_Aaron.pdf: 1720933 bytes, checksum: 97f686dd189ff8ab4908586ac324a7b4 (MD5) license.txt: 4062 bytes, checksum: 831399122905058fbf471b56485a9a57 (MD5)"],"dc:identifier":["http://hdl.handle.net/2142/34240"],"dc:language":["en"],"dc:rights":["Copyright 2012 Aaron Becker"],"dc:subject":["Parallel Programming","Programming Languages","Compilers","Runtime Systems","Productivity","Message-Driven Programming"],"dc:title":["Compiler support for productive message-driven parallel programming"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Dissertation"],"thesis:degree_name":["Ph.D."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:25:30Z"}