Parallelization of Bulk Operations for STL Dictionaries
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.
KeywordsInput Sequence Parallel Time Concatenation Task Left Subtree Equal Element
Unable to display preview. Download preview PDF.
- 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), http://parasol.tamu.edu/groups/rwergergroup/research/stapl/
- 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
- 4.Guibas, Sedgewick: A dichromatic framework for balanced trees. In: FOCS (1978)Google Scholar
- 6.Singler, J.: The MCSTL website (June 2006), http://algo2.iti.uni-karlsruhe.de/singler/mcstl/
- 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.Wein, R.: Efficient implementation of red-black trees with split and catenate operations. Technical report, Tel-Aviv University (2005)Google Scholar