A Case Study in Tightly Coupled Multi-paradigm Parallel Programming

Workshop on Languages and Compilers for Parallel Computing (LCPC) 2008
Pulication Type: Paper
Download: pdf ps

Abstract

Programming paradigms are designed to express algorithms elegantly and efficiently. There are many parallel programming paradigms, each suited to a certain class of problems. Selecting the best parallel programming paradigm for a problem minimizes programming effort and maximizes performance. Given the increasing complexity of parallel applications, no one paradigm may be suitable for all components of an application. Today, most parallel scientific applications are programmed with a single paradigm and the challenge of multi-paradigm parallel programming remains unmet in the broader community. We believe that each component of a parallel program should be programmed using the most suitable paradigm. Furthermore, it is not sufficient to simply bolt modules together: programmers should be able to switch between paradigms easily, and resource management across paradigms should be automatic. We present a pre-existing adaptive runtime system (ARTS) and show how it can be used to meet these challenges by allowing the simultaneous use of multiple parallel programming paradigms and supporting resource management across all of them. We discuss the implementation of some common paradigms within the ARTS and demonstrate the use of multiple paradigms within our feature-rich unstructured mesh framework. We show how this approach boosts performance and productivity for an application developed using this framework.

Text Ref

 Sayantan Chakravorty, Aaron Becker, Terry Wilmarth, and Laxmikant V. Kale
A Case Study in Tightly Coupled Multi-Paradigm Parallel Programming
Proceedings of Languages and Compilers for Parallel Computing (LCPC '08), 2008

BibTex

@INPROCEEDINGS{MultiparadigmParFUM,
	author = "Sayantan Chakravorty and Aaron Becker and Terry Wilmarth and Laxmikant V. Kal{\'e}",
	title = "{A Case Study in Tightly Coupled Multi-Paradigm Parallel Programming}",
	booktitle = "Proceedings of Languages and Compilers for Parallel Computing (LCPC '08)",
	year  = "2008"
}