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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
Blelloch, G.: Vector Models for Data-Parallel Computing. MIT Press, Cambridge (1990)
Blelloch, G.: NESL: A Nested Data-Parallel Language. Technical Report CMU-CS-93-129, Carnegie Mellon University (April 1993)
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)
Chan, A., Dehne, F.: CGMgraph/CGMlib: Implementing and testing CGM graph algorithms on PC clusters (2003)
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)
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)
Greenwald, M.: Two-handed emulation: How to build non-blocking implementations of complex data-structures using DCAS (2002)
Gregor, D., Lumsdaine, A.: Lifting sequential graph algorithms for distributed-memory parallel computation. SIGPLAN Not. 40(10), 423–437 (2005)
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)
Intel. Intel. Reference for Intel Threading Building Blocks, version 1.0 (April 2006)
Johnson, E.: Support for Parallel Generic Programming. PhD thesis, Indiana University (1998)
Johnson, E., Gannon, D.: HPC++: Experiments with the parallel standard library. In: International Conference on Supercomputing (1997)
Kale, L.V., Krishnan, S.: Charm++: a portable concurrent object oriented system based on c++. SIGPLAN Not. 28(10), 91–108 (1993)
Kung, H.T., Lehman, P.L.: Concurrent manipulation of binary search trees. ACM Trans. Database Syst. 5(3), 354–382 (1980)
Lehman, P.L., Yao, S.B.: Efficient locking for concurrent operations on b-trees. ACM Trans. Database Syst. 6(4), 650–670 (1981)
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)
Musser, D., Derge, G., Saini, A.: STL Tutorial and Reference Guide, 2nd edn. Addison-Wesley, Reading (2001)
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)
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)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Rights 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)