Parallelization of Bulk Operations for STL Dictionaries

  • Leonor Frias
  • Johannes Singler
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4854)


STL dictionaries like map and set are commonly used in C++ programs. We consider parallelizing two of their bulk operations, namely the construction from many elements, and the insertion of many elements at a time. Practical algorithms are proposed for these tasks. The implementation is completely generic and engineered to provide best performance for the variety of possible input characteristics. It features transparent integration into the STL. This can make programs profit in an easy way from multi-core processing power. The performance measurements show the practical usefulness on real-world multi-core machines with up to eight cores.


Input Sequence Parallel Time Concatenation Task Left Subtree Equal Element 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


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.M., Rauchwerger, L.: STAPL: An Adaptive, Generic Parallel C++ Library. In: LCPC, pp. 193–208 (2001),
  2. 2.
    Berger, E.D., McKinley, K.S., Blumofe, R.D., Wilson, P.R.: Hoard: A scalable memory allocator for multithreaded applications. In: ASPLOS-IX (2000)Google Scholar
  3. 3.
    Blumofe, R.D., Leiserson, C.E.: Scheduling multithreaded computations by work stealing. JACM 46(5), 720–748 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    Guibas, Sedgewick: A dichromatic framework for balanced trees. In: FOCS (1978)Google Scholar
  5. 5.
    Park, H., Park, K.: Parallel algorithms for red-black trees. Theoretical Computer Science 262, 415–435 (2001)zbMATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Singler, J.: The MCSTL website (June 2006),
  7. 7.
    Singler, J., Sanders, P., Putze, F.: The Multi-Core Standard Template Library. In: Kermarrec, A.-M., Bougé, L., Priol, T. (eds.) Euro-Par 2007. LNCS, vol. 4641, Springer, Heidelberg (2007)CrossRefGoogle Scholar
  8. 8.
    Tarjan, R.E.: Data structures and network algorithms. In: CBMS-NSF Regional Conference Series on Applied Mathematics, vol. 44, SIAM, Philadelphia (1983)Google Scholar
  9. 9.
    Wein, R.: Efficient implementation of red-black trees with split and catenate operations. Technical report, Tel-Aviv University (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Leonor Frias
    • 1
  • Johannes Singler
    • 2
  1. 1.Dep. de Llenguatges i Sistemes InformàticsUniversitat Politècnica de Catalunya 
  2. 2.Institut für Theoretische InformatikUniversität Karlsruhe 

Personalised recommendations