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.
- 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.Google Scholar
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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.Google Scholar
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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.Google Scholar
- 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. Google Scholar
Digital Library
- T. L. Harris, "A pragmatic implementation of non-blocking linked-lists," In Proc. Int. Conf. Dist. Comput., London, UK, 2001, pp. 300--314. Google Scholar
Digital Library
- M. Herlihy, "A methodology for implementing highly concurrent data objects," ACM Trans. Prog. Lang. Sys., vol. 15, no. 5, pp. 745--770, 1993. Google Scholar
Digital Library
- Intel. Reference Manual for Intel Threading Building Blocks, version 1.0. Intel Corp., Santa Clara, CA, 2006.Google Scholar
- J. JàJà, An Introduction Parallel Algorithms. Reading, MA: Addison-Wesley, 1992.Google Scholar
- E. Johnson, "Support for Parallel Generic Programming". PhD thesis, Indiana University, Indianapolis, 1998. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- D. Musser, G. Derge, and A. Saini, STL Tutorial and Reference Guide, Second Edition. Reading, MA: Addison-Wesley, 2001. Google Scholar
Digital Library
- W. Pugh, "Concurrent maintenance of skip lists," Univ. of Maryland at College Park, Tech. Rep., UMIACS-TR-90--80, 1990. Google Scholar
Digital Library
- 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.Google Scholar
- 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. Google Scholar
Digital Library
- G. Tanase, "The STAPL Parallel Container Framework". PhD thesis, Texas A&M University, College Station, 2010. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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. Google Scholar
Digital Library
- 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.Google Scholar
Cross Ref
Index Terms
The STAPL parallel container framework
Recommendations
The STAPL parallel container framework
PPoPP '11: Proceedings of the 16th ACM symposium on Principles and practice of parallel programmingThe 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 ...
STAPL: standard template adaptive parallel library
SYSTOR '10: Proceedings of the 3rd Annual Haifa Experimental Systems ConferenceThe Standard Template Adaptive Parallel Library (stapl) is a high-productivity parallel programming framework that extends C++ and stl with unified support for shared and distributed memory parallelism. stapl provides distributed data structures (...







Comments