Composing Parallel Applications Using PARAGRAPHS
October 27, 2011
2:30 p.m.
Timmie Smith
Abstract
Languages and tools currently available for the development of parallel applications are difficult to learn and use. The result is that parallel applications are expensive to develop, inflexible, and not easily ported to new architectures. The objective of my research is to improve this situation by simplifying what a developer must specify when writing a parallel algorithm. We propose using parallel algorithm graphs, PARAGRAPHS, as the representation of a parallel algorithm. After identifying their algorithm’s input, a developer specifies the operations used to transform a single input element and the ordering between pairs of operations that operate on the same elements. We attempt to lower the learning curve necessary to use PARAGRAPHS by implementing our work in STAPL, a parallel programming library for C++ that adopts the generic programming philosophy of the C++ Standard Template Library.
The performance of PARAGRAPHS is evaluated using simple parallel generic algorithms, a benchmark from the NAS suite, and an application that performs nuclear particle transport that has been written using STAPL. Our experiments were performed on a Cray XT4 massively parallel system and an IBM Power5 cluster, and show that that scalable performance beyond 16,000 processors is possible.