Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

The STAPL parallel container framework

Published: 12 February 2011 Publication History

Abstract

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.

References

[1]
P. An, A. Jula, S. Rus, S. Saunders, T. Smith, G. Tanase, N. Thomas, N. Amato, and L. Rauchwerger, "STAPL: A standard template adaptive parallel C library," In Proc. of the Int. Workshop on Advanced Compiler Technology for High Performance and Embedded Processors (IWACT), Bucharest, Romania, Jul 2001, pp. 37--46.
[2]
D. Bader and K. Madduri. Design and implementation of the hpcs graph analysis benchmark on symmetric multiprocessors. In The 12th Int. Conf. on High Performance Computing, Springer, 2005.
[3]
A. Buss, A. Fidel, Harshvardhan, T. Smith, G. Tanase, N. Thomas, X. Xu, M. Bianco, N. M. Amato, and L. Rauchwerger, "The STAPL pView," In Int. Workshop on Languages and Compilers for Parallel Computing, Houston, TX, 2010.
[4]
A. Buss, Harshvardhan, I. Papadopoulos, O. Pearce, T. Smith, G. Tanase, N. Thomas, X. Xu, M. Bianco, N. M. Amato and L. Rauchwerger "STAPL: Standard template adaptive parallel library," In Proc. of the 3rd Annual Haifa Experimental Systems Conf., pp. 1--10, 2010.
[5]
A. Buss, T. Smith, G. Tanase, N. Thomas, M. Bianco, N. M. Amato, and L. Rauchwerger, "Design for interoperability in STAPL: pMatrices and linear algebra algorithms," In Int. Workshop on Languages and Compilers for Parallel Computing, in Lecture Notes in Computer Science, vol. 5335, pp. 304--315, July 2008.
[6]
D. Callahan, B. L. Chamberlain, and H. P. Zima, "The cascade high productivity language," In The Ninth Int. Workshop on High-Level Parallel Programming Models and Supportive Environments, vol. 26, pp. 52--60, 2004.
[7]
P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. Praun, and V. Sarkar, "X10: An object-oriented approach to non-uniform cluster computing," In Proc. of the 20th annual ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages, and Applications, New York, NY, 2005, pp. 519--538.
[8]
D. Culler, A. Dusseau, S. C. Goldstein, A. Krishnamurthy, S. Lumetta, T. Eicken, and K. Yelick, "Parallel programming in Split-C," In Int. Conf. on Supercomputing, November 1993.
[9]
M. Fomitchev and E. Ruppert, "Lock-free linked lists and skip lists," In Proc. Symp. on Princ. of Distributed Programming, NewYork, NY, 2004, pp. 50--59.
[10]
P. Gottschling, D. S. Wise, and M. D. Adams, "Representation-transparent matrix algorithms with scalable performance," In Proc. Int. Conf. on Supercomputing, Seattle, Washington, 2007, pp. 116--125.
[11]
D. Gregor and A. Lumsdaine, "The parallel BGL: A generic library for distributed graph computations," In Proc. of Workshop on Parallel Object-Oriented Scientific Computing, July 2005.
[12]
J Guo, G. Bikshandi, B. B. Fraguela and D. Padua. Writing productive stencil codes with overlapped tiling. Concurr. Comput. : Pract. Exper., 21(1):25--39, 2009.
[13]
T. L. Harris, "A pragmatic implementation of non-blocking linked-lists," In Proc. Int. Conf. Dist. Comput., London, UK, 2001, pp. 300--314.
[14]
M. Herlihy, "A methodology for implementing highly concurrent data objects," ACM Trans. Prog. Lang. Sys., vol. 15, no. 5, pp. 745--770, 1993.
[15]
Intel. Reference Manual for Intel Threading Building Blocks, version 1.0. Intel Corp., Santa Clara, CA, 2006.
[16]
J. JàJà, An Introduction Parallel Algorithms. Reading, MA: Addison-Wesley, 1992.
[17]
E. Johnson, "Support for Parallel Generic Programming". PhD thesis, Indiana University, Indianapolis, 1998.
[18]
L. V. Kale and S. Krishnan, "CHARM: A portable concurrent object oriented system based on C," SIGPLAN Not., vol. 28, no. 10, pp. 91--108, 1993.
[19]
M. M. Michael, "High performance dynamic lock-free hash tables and list-based sets," In Proc. of the Fourteenth Annual ACM Symposium on Parallel Algorithms and Architectures, Winnipeg, Manitoba, Canada, 2002, pp. 73--82.
[20]
D. Musser, G. Derge, and A. Saini, STL Tutorial and Reference Guide, Second Edition. Reading, MA: Addison-Wesley, 2001.
[21]
W. Pugh, "Concurrent maintenance of skip lists," Univ. of Maryland at College Park, Tech. Rep., UMIACS-TR-90--80, 1990.
[22]
J. W. Reynders, P. J. Hinker, J. C. Cummings, S. R. Atlas, S. Banerjee, W. F. Humphrey, S. R. Karmesin, K. Keahey, M. Srikant, and M. D. Tholburn, "POOMA: A framework for scientific simulations of paralllel architectures," In Gregory V. Wilson and Paul Lu, editors, Parallel Programming in C Cambridge, MA: MIT Press, 1996, pp. 547--588.
[23]
S. Saunders and L. Rauchwerger, "ARMI: An adaptive, platform independent communication library," In Proc. ACM SIGPLAN Symp. Prin. Prac. Par. Prog., San Diego, California, 2003, pp. 230--241.
[24]
G. Tanase, "The STAPL Parallel Container Framework". PhD thesis, Texas A&M University, College Station, 2010.
[25]
G. Tanase, M. Bianco, N. M. Amato, and L. Rauchwerger, "The STAPL pArray," In Proc. of the 2007 Workshop on Memory Performance (MEDEA), Brasov, Romania, 2007, pp. 73--80.
[26]
G. Tanase, C. Raman, M. Bianco, N. M. Amato, and L. Rauchwerger, "Associative parallel containers in STAPL," In Int. Workshop on Languages and Compilers for Parallel Computing, in Lecture Notes in Computer Science, vol. 5234, pp. 156--171, 2008.
[27]
G. Tanase, X. Xu, A. Buss, Harshvardhan, I. Papadopoulos, O. Pearce, T. Smith, N. Thomas, M. Bianco, N. M. Amato, and L. Rauchwerger, "The STAPL pList," In Int. Workshop on Languages and Compilers for Parallel Computing, in Lecture Notes in Computer Science, vol. 5898, pp. 16--30, 2009.
[28]
N. Thomas, G. Tanase, O. Tkachyshyn, J. Perdue, N. M. Amato, and L. Rauchwerger, A framework for adaptive algorithm selection in STAPL. In Proc. ACM SIGPLAN Symp. Prin. Prac. Par.,pp. 277--288, Chicago, IL, 2005.
[29]
J. D. Valois, "Lock-free linked lists using compare-and-swap," In Proc. ACM Symp. on Princ. of Dist. Proc. (PODC), New York, NY, 1995, pp. 214--222.
[30]
K. Yelick, L. Semenzato, G. Pike, C. Miyamoto, B. Liblit, A. Krishnamurthy, P. Hilfinger, S. Graham, D. Gay, P. Colella, and A. Aiken, "Titanium: A high-performance Java dialect," In ACM, editor, ACM 1998 Workshop on Java for High-Performance Network Computing, New York, NY, 1998.

Cited By

View all
  • (2020) Parallel Approximate Ideal Restriction Multigrid for Solving the S N Transport Equations Nuclear Science and Engineering10.1080/00295639.2020.1747263(1-20)Online publication date: 5-Jun-2020
  • (2019)BCLProceedings of the 48th International Conference on Parallel Processing10.1145/3337821.3337912(1-10)Online publication date: 5-Aug-2019
  • (2015)Composing Algorithmic Skeletons to Express High-Performance Scientific ApplicationsProceedings of the 29th ACM on International Conference on Supercomputing10.1145/2751205.2751241(415-424)Online publication date: 8-Jun-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 46, Issue 8
PPoPP '11
August 2011
300 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/2038037
Issue’s Table of Contents
  • cover image ACM Conferences
    PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
    February 2011
    326 pages
    ISBN:9781450301190
    DOI:10.1145/1941553
    • General Chair:
    • Calin Cascaval,
    • Program Chair:
    • Pen-Chung Yew
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 February 2011
Published in SIGPLAN Volume 46, Issue 8

Check for updates

Author Tags

  1. containers
  2. data
  3. languages
  4. libraries
  5. parallel
  6. structures

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)16
  • Downloads (Last 6 weeks)1
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2020) Parallel Approximate Ideal Restriction Multigrid for Solving the S N Transport Equations Nuclear Science and Engineering10.1080/00295639.2020.1747263(1-20)Online publication date: 5-Jun-2020
  • (2019)BCLProceedings of the 48th International Conference on Parallel Processing10.1145/3337821.3337912(1-10)Online publication date: 5-Aug-2019
  • (2015)Composing Algorithmic Skeletons to Express High-Performance Scientific ApplicationsProceedings of the 29th ACM on International Conference on Supercomputing10.1145/2751205.2751241(415-424)Online publication date: 8-Jun-2015
  • (2015)STAPL-RTSProceedings of the 29th ACM on International Conference on Supercomputing10.1145/2751205.2751233(425-434)Online publication date: 8-Jun-2015
  • (2015)Asynchronous Nested Parallelism for Dynamic Applications in Distributed MemoryRevised Selected Papers of the 28th International Workshop on Languages and Compilers for Parallel Computing - Volume 951910.1007/978-3-319-29778-1_7(106-121)Online publication date: 9-Sep-2015
  • (2015)The stapl Skeleton FrameworkLanguages and Compilers for Parallel Computing10.1007/978-3-319-17473-0_12(176-190)Online publication date: 1-May-2015
  • (2014)KLAProceedings of the 23rd international conference on Parallel architectures and compilation10.1145/2628071.2628091(27-38)Online publication date: 24-Aug-2014
  • (2014)DASH: Data Structures and Algorithms with Support for Hierarchical LocalityEuro-Par 2014: Parallel Processing Workshops10.1007/978-3-319-14313-2_46(542-552)Online publication date: 2014
  • (2013)The STAPL Parallel Graph LibraryLanguages and Compilers for Parallel Computing10.1007/978-3-642-37658-0_4(46-60)Online publication date: 2013
  • (2012)Automatic Parallelization: An Overview of Fundamental Compiler TechniquesSynthesis Lectures on Computer Architecture10.2200/S00340ED1V01Y201201CAC0197:1(1-169)Online publication date: 28-Jan-2012
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media