Associative Parallel Containers in STAPL

  • Gabriel Tanase
  • Chidambareswaran Raman
  • Mauro Bianco
  • Nancy M. Amato
  • Lawrence Rauchwerger
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5234)


The Standard Template Adaptive Parallel Library (stapl) is a parallel programming framework that extends C++ and stl with support for parallelism. stapl provides a collection of parallel data structures (pContainers) and algorithms (pAlgorithms) and a generic methodology for extending them to provide customized functionality. staplpContainers are thread-safe, concurrent objects, i.e., shared objects that provide parallel methods that can be invoked concurrently. They also provide appropriate interfaces that can be used by generic pAlgorithms. In this work, we present the design and implementation of the stapl associative pContainers: pMap, pSet, pMultiMap, pMultiSet, pHashMap, and pHashSet. These containers provide optimal insert, search, and delete operations for a distributed collection of elements based on keys. Their methods include counterparts of the methods provided by the stl associative containers, and also some asynchronous (non-blocking) variants that can provide improved performance in parallel. We evaluate the performance of the stapl associative pContainers on an IBM Power5 cluster, an IBM Power3 cluster, and on a linux-based Opteron cluster, and show that the new pContainer asynchronous methods, generic pAlgorithms (e.g., pfind) and a sort application based on associative pContainers, all provide good scalability on more than 103 processors.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    An, P., Jula, A., Rus, S., Saunders, S., Smith, T., Tanase, G., Thomas, N., Amato, N., Rauchwerger, L.: STAPL: A standard template adaptive parallel C++ library. In: Proc. of the International Workshop on Advanced Compiler Technology for High Performance and Embedded Processors (IWACT), Bucharest, Romania (July 2001)Google Scholar
  2. 2.
    Blelloch, G.: Vector Models for Data-Parallel Computing. MIT Press, Cambridge (1990)Google Scholar
  3. 3.
    Blelloch, G.: NESL: A Nested Data-Parallel Language. Technical Report CMU-CS-93-129, Carnegie Mellon University (April 1993)Google Scholar
  4. 4.
    Callahan, D., Chamberlain, B.L., Zima, H.: The cascade high productivity language. In: The Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments, vol. 26, pp. 52–60 (April 2004)Google Scholar
  5. 5.
    Chan, A., Dehne, F.: CGMgraph/CGMlib: Implementing and testing CGM graph algorithms on PC clusters (2003)Google Scholar
  6. 6.
    Dechev, D., Pirkelbauer, P., Stroustrup, B.: Lock-free dynamically resizable arrays. In: Shvartsman, M.M.A.A. (ed.) OPODIS 2006. LNCS, vol. 4305, pp. 142–156. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  7. 7.
    Gao, H., Groote, J., Hesselink, W.: Almost wait-free resizable hashtables. In: Parallel and Distributed Processing Symposium, 2004. Proceedings. 18th International, pp. 26–30 (April 2004)Google Scholar
  8. 8.
    Greenwald, M.: Two-handed emulation: How to build non-blocking implementations of complex data-structures using DCAS (2002)Google Scholar
  9. 9.
    Gregor, D., Lumsdaine, A.: Lifting sequential graph algorithms for distributed-memory parallel computation. SIGPLAN Not. 40(10), 423–437 (2005)CrossRefGoogle Scholar
  10. 10.
    Herlihy, M.: A methodology for implementing highly concurrent data structures. In: PPOPP 1990: Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming, pp. 197–206. ACM Press, New York (1990)CrossRefGoogle Scholar
  11. 11.
    Intel. Intel. Reference for Intel Threading Building Blocks, version 1.0 (April 2006)Google Scholar
  12. 12.
    Johnson, E.: Support for Parallel Generic Programming. PhD thesis, Indiana University (1998)Google Scholar
  13. 13.
    Johnson, E., Gannon, D.: HPC++: Experiments with the parallel standard library. In: International Conference on Supercomputing (1997)Google Scholar
  14. 14.
    Kale, L.V., Krishnan, S.: Charm++: a portable concurrent object oriented system based on c++. SIGPLAN Not. 28(10), 91–108 (1993)CrossRefGoogle Scholar
  15. 15.
    Kung, H.T., Lehman, P.L.: Concurrent manipulation of binary search trees. ACM Trans. Database Syst. 5(3), 354–382 (1980)MATHCrossRefGoogle Scholar
  16. 16.
    Lehman, P.L., Yao, S.B.: Efficient locking for concurrent operations on b-trees. ACM Trans. Database Syst. 6(4), 650–670 (1981)MATHCrossRefGoogle Scholar
  17. 17.
    Michael, M.M.: High performance dynamic lock-free hash tables and list-based sets. In: SPAA 2002: Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures, pp. 73–82. ACM Press, New York (2002)CrossRefGoogle Scholar
  18. 18.
    Musser, D., Derge, G., Saini, A.: STL Tutorial and Reference Guide, 2nd edn. Addison-Wesley, Reading (2001)Google Scholar
  19. 19.
    Reynders, J.V.W., Hinker, P.J., Cummings, J.C., Atlas, S.R., Banerjee, S., Humphrey, W.F., Karmesin, S.R., Keahey, K., Srikant, M., Tholburn, M.D.: POOMA: A Framework for Scientific Simulations of Paralllel Architectures. In: Wilson, G.V., Lu, P. (eds.) Parallel Programming in C++, ch.14, pp. 547–588. MIT Press, Cambridge (1996)Google Scholar
  20. 20.
    Saunders, S., Rauchwerger, L.: ARMI: An adaptive, platform independent communication library. In: ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), San Diego, CA (June 2003)Google Scholar
  21. 21.
    Tanase, G., Bianco, M., Amato, N.M., Rauchwerger, L.: The STAPL pArray. In: Proceedings of the 8th MEDEA Workshop, Brasov, Romania, pp. 81–88 (2007)Google Scholar
  22. 22.
    Thomas, N., Saunders, S., Smith, T., Tanase, G., Rauchwerger, L.: ARMI: A high level communication library for STAPL. Parallel Processing Letters 16(2), 261–280 (2006)CrossRefMathSciNetGoogle Scholar
  23. 23.
    Thomas, N., Tanase, G., Tkachyshyn, O., Perdue, J., Amato, N.M., Rauchwerger, L.: A framework for adaptive algorithm selection in STAPL. In: Proc. ACM SIGPLAN Symp. Prin. Prac. Par. Prog. (PPoPP), pp. 277–288 (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Gabriel Tanase
    • 1
  • Chidambareswaran Raman
    • 1
  • Mauro Bianco
    • 1
  • Nancy M. Amato
    • 1
  • Lawrence Rauchwerger
    • 1
  1. 1.Parasol Lab, Dept. of Computer ScienceTexas A&M University 

Personalised recommendations