Skip to main content

The STAPL pList

  • Conference paper

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

Abstract

We present the design and implementation of the stapl pList, a parallel container that has the properties of a sequential list, but allows for scalable concurrent access when used in a parallel program. The Standard Template Adaptive Parallel Library (stapl) is a parallel programming library that extends C++ with support for parallelism. stapl provides a collection of distributed data structures (pContainers) and parallel algorithms (pAlgorithms) and a generic methodology for extending them to provide customized functionality. stapl pContainers are thread-safe, concurrent objects, providing appropriate interfaces (e.g., views) that can be used by generic pAlgorithms. The pList provides stl equivalent methods, such as insert, erase, and splice, additional methods such as split, and efficient asynchronous (non-blocking) variants of some methods for improved parallel performance. We evaluate the performance of the stapl pList on an IBM Power 5 cluster and on a CRAY XT4 massively parallel processing system. Although lists are generally not considered good data structures for parallel processing, we show that pList methods and pAlgorithms (p_generate and p_partial_sum) operating on pLists provide good scalability on more than 103 processors and that pList compares favorably with other dynamic data structures such as the pVector.

This research supported in part by NSF Grants EIA-0103742, ACR-0081510, ACR-0113971, CCR-0113974, ACI-0326350, CRI-0551685, CCF-0833199, CCF-0830753, by the DOE NNSA under the Predictive Science Academic Alliances Program by grant DE-FC52-08NA28616, by Chevron, IBM, Intel, HP, and by King Abdullah University of Science and Technology (KAUST) Award KUS-C1-016-04. This research used resources of the National Energy Research Scientific Computing Center, which is supported by the Office of Science of the U.S. Department of Energy under Contract No. DE-AC02-05CH11231.

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

Buying options

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

Learn about 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 Int. Workshop on Advanced Compiler Technology for High Performance and Embedded Processors (IWACT), Bucharest, Romania (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 (1993)

    Google Scholar 

  4. Buss, A.A., Smith, T., Tanase, G., Thomas, N., Bianco, M., Amato, N.M., Rauchwerger, L.: Design for interoperability in STAPL: pMatrices and linear algebra algorithms. In: Amaral, J.N. (ed.) LCPC 2008. LNCS, vol. 5335, pp. 304–315. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  5. Callahan, D., Chamberlain, B.L., Zima, H.: The Cascade high productivity language. In: The 9th Int. Workshop on High-Level Parallel Programming Models and Supportive Environments, Los Alamitos, CA, USA, vol. 26, pp. 52–60 (2004)

    Google Scholar 

  6. Chan, A., Dehne, F.K.H.A.: CGMgraph/CGMlib: Implementing and testing CGM graph algorithms on PC clusters. In: Dongarra, J., Laforenza, D., Orlando, S. (eds.) EuroPVM/MPI 2003. LNCS, vol. 2840, pp. 117–125. Springer, Heidelberg (2003)

    Google Scholar 

  7. Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. In: OOPSLA 2005: Proc. of the 20th ACM SIGPLAN conf. on Object oriented programming, systems, languages, and applications, pp. 519–538. ACM Press, New York (2005)

    Chapter  Google Scholar 

  8. Fomitchev, M., Ruppert, E.: Lock-free linked lists and skip lists. In: Proc. ACM Symp. on Principles of Distributed Processing (PODC), pp. 50–59. ACM, New York (2004)

    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. Harris, T.L.: A pragmatic implementation of non-blocking linked-lists. In: Proc. Int. Conf. Distributed Compututing, London, UK, pp. 300–314. Springer, Heidelberg (2001)

    Google Scholar 

  11. Herlihy, M.: A methodology for implementing highly concurrent data objects. ACM Trans. Prog. Lang. Sys. 15(5), 745–770 (1993)

    Article  Google Scholar 

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

    Google Scholar 

  13. JàJà, J.: An Introduction Parallel Algorithms. Addison-Wesley, Reading (1992)

    MATH  Google Scholar 

  14. Johnson, E., Gannon, D.: HPC++: experiments with the parallel standard template library. In: Proc. of the 11th Int. Conference on Supercomputing (ICS), Vienna, Austria, pp. 124–131 (1997)

    Google Scholar 

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

  16. Michael, M.M.: High performance dynamic lock-free hash tables and list-based sets. In: Proc. of the 14th Annual ACM Symp. on Parallel Algorithms and Architectures (SPAA), Winnipeg, Manitoba, Canada, pp. 73–82. ACM Press, New York (2002)

    Google Scholar 

  17. Pugh, W.: Concurrent maintenance of skip lists. Technical Report UMIACS-TR-90-80, University of Maryland at College Park, College Park, MD, USA (1990)

    Google Scholar 

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

  19. Saunders, S., Rauchwerger, L.: Armi: an adaptive, platform independent communication library. In: Proc. of the 9th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP), San Diego, California, USA, pp. 230–241. ACM, New York (2003)

    Google Scholar 

  20. Tanase, G., Bianco, M., Amato, N.M., Rauchwerger, L.: The STAPL pArray. In: Proceedings of the 2007 Workshop on Memory Performance (MEDEA), Brasov, Romania, pp. 73–80 (2007)

    Google Scholar 

  21. Tanase, G., Raman, C., Bianco, M., Amato, N.M., Rauchwerger, L.: Associative parallel containers in STAPL. In: Adve, V., Garzarán, M.J., Petersen, P. (eds.) LCPC 2007. LNCS, vol. 5234, pp. 156–171. Springer, Heidelberg (2008)

    Chapter  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. of the 10th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), Chicago, IL, USA, pp. 277–288. ACM, New York (2005)

    Google Scholar 

  24. Valois, J.D.: Lock-free linked lists using compare-and-swap. In: Proc. ACM Symp. on Principles of Distributed Processing (PODC), pp. 214–222. ACM, New York (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Tanase, G. et al. (2010). The STAPL pList. In: Gao, G.R., Pollock, L.L., Cavazos, J., Li, X. (eds) Languages and Compilers for Parallel Computing. LCPC 2009. Lecture Notes in Computer Science, vol 5898. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13374-9_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-13374-9_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-13373-2

  • Online ISBN: 978-3-642-13374-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics