Abstract
This paper proposes extensions to the OpenMP standard to provide first-class support for parallelizing generic libraries such as the C++ Standard Library (SL). Generic libraries are especially known for their efficiency, reusability and composibility. As such, with the advent of ubiquitous parallelism, generic libraries offer an excellent avenue for parallelizing the existing applications that use these libraries without requiring the applications to be rewritten. OpenMP, which would be ideal for executing such parallelizations, does not support many of the modern C++ idioms such as iterators and function objects that are used extensively in generic libraries. Accordingly, we propose extensions to OpenMP to better support modern C++ idioms to aid in the parallelization of generic libraries and applications built with those libraries.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Asanovic, K., et al.: The landscape of parallel computing research: A view from berkeley. Technical Report UCB/EECS-2006-183, EECS Department, University of California, Berkeley (December 2006)
Austern, M.H., Towle, R.A., Stepanov, A.A.: Range partition adaptors: a mechanism for parallelizing STL. SIGAPP Appl. Comput. Rev. 4(1), 5–6 (1996)
OpenMP Architecture Review Board. OpenMP Application Program Interface, version 3.0 draft (October 2007)
Garcia, R., Järvi, J., Lumsdaine, A., Siek, J., Willcock, J.: An extended comparative study of language support for generic programming. Journal of Functional Programming 17(2), 145–205 (2007)
Gregor, D., Järvi, J., Siek, J., Stroustrup, B., Dos Reis, G., Lumsdaine, A.: Concepts: Linguistic support for generic programming in C++. In: Proceedings of the 2006 ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA 2006), October 2006, pp. 291–310. ACM Press, New York (2006)
Gregor, D., Stroustrup, B.: Proposed wording for concepts (revision 3). Technical Report N2421=07-0281, ISO/IEC JTC 1, Information Technology, Subcommittee SC 22, Programming Language C++ (October 2007)
Kambadur, P., Gregor, D., Lumsdaine, A.: Parallelization of generic libraries based on type properties. In: Proceedings of the 7th International Conference on Computational Science, Beijing, China, May 2007. LNCS, Springer, Heidelberg (2007)
Kambadur, P., Gregor, D., Lumsdaine, A., Dharurkar, A.: Modernizing the C++ interface to MPI. In: Proceedings of the 13th European PVM/MPI Users Group Meeting, Bonn, Germany, September 2006. LNCS, pp. 266–274. Springer, Heidelberg (2006)
Musser, D.R., Stepanov, A.A.: Algorithm-oriented generic libraries. Softw. Pract. Exper. 24(7), 623–642 (1994)
Plauger, P.J.: The Standard Template Library (STL). C/C++ Users Journal 13(12), 10–20 (1995)
Reinders, J.: Intel Threading Building Blocks. O’Reilly, Sebastopol (2007)
Shah, S., Haab, G., Petersen, P., Throop, J.: Flexible control structures for parallelism in OpenMP. Concurrency - Practice and Experience 12(12), 1219–1239 (2000)
Suess, M., Leopold, C.: A User’s Experience with Parallel Sorting and OpenMP. In: Proceedings of Sixth European Workshop on OpenMP - EWOMP 2004. LNCS, pp. 23–28. Springer, Heidelberg (2004)
Suess, M., Leopold, C.: Problems, workarounds and possible solutions implementing the singleton pattern with C++ and OpenMP. In: International Workshop on OpenMP (2007)
Sutter, H.: The free lunch is over: A fundamental turn toward concurrency in software. Dr. Dobb’s Journal (January 2005)
Terboven, C., an Mey, D.: OpenMP and C++. In: International Workshop on OpenMP (2006)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kambadur, P., Gregor, D., Lumsdaine, A. (2008). OpenMP Extensions for Generic Libraries. In: Eigenmann, R., de Supinski, B.R. (eds) OpenMP in a New Era of Parallelism. IWOMP 2008. Lecture Notes in Computer Science, vol 5004. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-79561-2_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-79561-2_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-79560-5
Online ISBN: 978-3-540-79561-2
eBook Packages: Computer ScienceComputer Science (R0)