Skip to main content

Associative Parallel Containers in STAPL

  • Conference paper
Book cover Languages and Compilers for Parallel Computing (LCPC 2007)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5234))

Abstract

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. stapl pContainers 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.

This work supported in part by NSF (EIA-0103742, ACR-0081510, ACR-0113971, CCR-0113974, EIA-9810937, ACI-0326350, CRI-0551685), the DOE and HP.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  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. Blelloch, G.: Vector Models for Data-Parallel Computing. MIT Press, Cambridge (1990)

    Google Scholar 

  3. Blelloch, G.: NESL: A Nested Data-Parallel Language. Technical Report CMU-CS-93-129, Carnegie Mellon University (April 1993)

    Google Scholar 

  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. Chan, A., Dehne, F.: CGMgraph/CGMlib: Implementing and testing CGM graph algorithms on PC clusters (2003)

    Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Greenwald, M.: Two-handed emulation: How to build non-blocking implementations of complex data-structures using DCAS (2002)

    Google Scholar 

  9. Gregor, D., Lumsdaine, A.: Lifting sequential graph algorithms for distributed-memory parallel computation. SIGPLAN Not. 40(10), 423–437 (2005)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  11. Intel. Intel. Reference for Intel Threading Building Blocks, version 1.0 (April 2006)

    Google Scholar 

  12. Johnson, E.: Support for Parallel Generic Programming. PhD thesis, Indiana University (1998)

    Google Scholar 

  13. Johnson, E., Gannon, D.: HPC++: Experiments with the parallel standard library. In: International Conference on Supercomputing (1997)

    Google Scholar 

  14. Kale, L.V., Krishnan, S.: Charm++: a portable concurrent object oriented system based on c++. SIGPLAN Not. 28(10), 91–108 (1993)

    Article  Google Scholar 

  15. Kung, H.T., Lehman, P.L.: Concurrent manipulation of binary search trees. ACM Trans. Database Syst. 5(3), 354–382 (1980)

    Article  MATH  Google Scholar 

  16. Lehman, P.L., Yao, S.B.: Efficient locking for concurrent operations on b-trees. ACM Trans. Database Syst. 6(4), 650–670 (1981)

    Article  MATH  Google Scholar 

  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)

    Chapter  Google Scholar 

  18. Musser, D., Derge, G., Saini, A.: STL Tutorial and Reference Guide, 2nd edn. Addison-Wesley, Reading (2001)

    Google Scholar 

  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. 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. 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. 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)

    Article  MathSciNet  Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Vikram Adve María Jesús Garzarán Paul Petersen

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Tanase, G., Raman, C., Bianco, M., Amato, N.M., Rauchwerger, L. (2008). Associative Parallel Containers in STAPL. In: Adve, V., Garzarán, M.J., Petersen, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2007. Lecture Notes in Computer Science, vol 5234. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85261-2_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-85261-2_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-85260-5

  • Online ISBN: 978-3-540-85261-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics