The STAPL parallel container framework

The Standard Template Adaptive Parallel Library (STAPL) is a parallel programming infrastructure that extends C++ with support for parallelism. It includes a collection of distributed data structures called pContainers that are thread-safe, concurrent objects, i.e., shared objects that provide parallel methods that can be invoked concurrently. In this work, we present the STAPL Parallel Container Framework (PCF), that is designed to facilitate the development of generic parallel containers. We introduce a set of concepts and a methodology for assembling a pContainer from existing sequential or parallel containers, without requiring the programmer to deal with concurrency or data distribution issues. The PCF provides a large number of basic parallel data structures (e.g., pArray, pList, pVector, pMatrix, pGraph, pMap, pSet). The PCF provides a class hierarchy and a composition mechanism that allows users to extend and customize the current container base for improved application expressivity and performance. We evaluate STAPL pContainer performance on a CRAY XT4 massively parallel system and show that pContainer methods, generic pAlgorithms, and different applications provide good scalability on more than 16,000 processors.

[1]  Nancy M. Amato,et al.  The STAPL pArray , 2007, MEDEA '07.

[2]  David R. Musser,et al.  STL tutorial and reference guide, second edition: C++ programming with the standard template library , 2001 .

[3]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[4]  Lawrence Rauchwerger,et al.  ARMI: an adaptive, platform independent communication library , 2003, PPoPP '03.

[5]  Andrea C. Arpaci-Dusseau,et al.  Parallel programming in Split-C , 1993, Supercomputing '93. Proceedings.

[6]  Nancy M. Amato,et al.  STAPL: standard template adaptive parallel library , 2010, SYSTOR '10.

[7]  Jia Guo,et al.  Writing productive stencil codes with overlapped tiling , 2009 .

[8]  T. von Eicken,et al.  Parallel programming in Split-C , 1993, Supercomputing '93.

[9]  David A. Bader,et al.  Design and Implementation of the HPCS Graph Analysis Benchmark on Symmetric Multiprocessors , 2005, HiPC.

[10]  Nancy M. Amato,et al.  The STAPL pView , 2010, LCPC.

[11]  Eric Ruppert,et al.  Lock-free linked lists and skip lists , 2004, PODC '04.

[12]  Timothy L. Harris,et al.  A Pragmatic Implementation of Non-blocking Linked-Lists , 2001, DISC.

[13]  D. B. Davis,et al.  Intel Corp. , 1993 .

[14]  Dennis Gannon,et al.  Support for parallel generic programming , 1998 .

[15]  Ronald H. Perrott,et al.  Parallel programming , 1988, International computer science series.

[16]  John D. Valois Lock-free linked lists using compare-and-swap , 1995, PODC '95.

[17]  Maurice Herlihy,et al.  A methodology for implementing highly concurrent data objects , 1993, TOPL.

[18]  Laxmikant V. Kalé,et al.  CHARM++: a portable concurrent object oriented system based on C++ , 1993, OOPSLA '93.

[19]  Nancy M. Amato,et al.  A framework for adaptive algorithm selection in STAPL , 2005, PPoPP.

[20]  Nancy M. Amato,et al.  Associative Parallel Containers in STAPL , 2007, LCPC.

[21]  Nancy M. Amato,et al.  Design for Interoperability in stapl: pMatrices and Linear Algebra Algorithms , 2008, LCPC.

[22]  S. Sitharama Iyengar,et al.  Introduction to parallel algorithms , 1998, Wiley series on parallel and distributed computing.

[23]  David S. Wise,et al.  Representation-transparent matrix algorithms with scalable performance , 2007, ICS '07.

[24]  William Pugh,et al.  Concurrent maintenance of skip lists , 1990 .

[25]  Bradford L. Chamberlain,et al.  The cascade high productivity language , 2004, Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2004. Proceedings..

[26]  Douglas P. Gregor,et al.  The Parallel BGL : A Generic Library for Distributed Graph Computations , 2005 .

[27]  Katherine A. Yelick,et al.  Titanium: A High-performance Java Dialect , 1998, Concurr. Pract. Exp..

[28]  Nancy M. Amato,et al.  The STAPL pList , 2009, LCPC.

[29]  Maged M. Michael,et al.  High performance dynamic lock-free hash tables and list-based sets , 2002, SPAA '02.