skip to main content
10.1145/1370082.1370089acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

The GNU libstdc++ parallel mode: software engineering considerations

Published: 11 May 2008 Publication History

Abstract

The C++ Standard Library implementation provided with the free GNU C++ compiler, libstdc++, provides a "parallel mode" as of version 4.3. Using this mode enables existing serial code to take advantage of many parallelized STL algorithms, an approach to making use of multi-core processors which are now or will soon will be ubiquitous. This paper describes the software engineering issues discovered during implementation, the results of user testing, and presents possible solutions to outstanding issues. Design issues with configuring the software environment to a wide variety of multi-core hardware options, influencing algorithm and parameter choices at compile and run time, standards compliance, and the interplay between execution speed, the executable size, the library code size, and the compilation time are addressed.

References

[1]
GCC documentation on namespace association. http://gcc.gnu.org/onlinedocs/gcc/Namespace-Association.html.
[2]
Intel Threading Building Blocks website. http://osstbb.intel.com/.
[3]
Working draft, standard for programming language C++. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2007/n2315.pdf.
[4]
The C++ Standard (ISO 14882:2003). 2003.
[5]
R. Dementiev, L. Kettner, and P. Sanders. Stxxl: standard template library for XXL data sets. Software: Practice and Experience, August 2007.
[6]
Andreas Fabri, Geert-Jan Giezeman, Lutz Kettner, Stefan Schirra, and Sven Schönherr. On the design of CGAL, the computational geometry algorithms library. Technical Report TR 291, ETH Zürich, 1998.
[7]
Leonor Frias and Johannes Singler. Single-pass list partitioning. In International Workshop on Multi-Core Computing Systems (MuCoCoS) 2008.
[8]
Shi-Jung Kao. Managing C++ OpenMP code and its exception handling. In WOMPAT, pages 227--243, 2002.
[9]
Michael Klemm, Ronald Veldema, Matthias Bezold, and Michael Philippsen. A proposal for OpenMP for Java. In IWOMP, 2006.
[10]
Kurt Mehlhorn and Stefan Näher. LEDA - A platform for combinatorial and geometric computing. Cambridge University Press, 1999.
[11]
OpenMP Architecture Review Board. OpenMP Application Program Interface, Version 2.5, May 2005.
[12]
P. J. Plauger, Alexander A. Stepanov, Meng Lee, and David R. Musser. The C++ Standard Template Library. Prentice-Hall, 2000.
[13]
Johannes Singler, Peter Sanders, and Felix Putze. The Multi-Core Standard Template Library. In Euro-Par 2007 Parallel Processing.
[14]
Michael Sü223;. Exceptions and OpenMP - an experiment with current compilers. http://www.thinkingparallel.com/2007/03/02/exceptions-and-openmp-an-experiment-with-current-compilers/.
[15]
Alexander Wirz, Michael Süß, and Claudia Leopold. A comparison of task pool variants in OpenMP and a proposal for a solution to the busy waiting problem. In IWOMP, 2006.

Cited By

View all
  • (2023)Performance Evaluation of Parallel Sortings on the Supercomputer FugakuJournal of Information Processing10.2197/ipsjjip.31.45231(452-458)Online publication date: 2023
  • (2023)Parallel multithreaded deduplication of data sequences in nuclear structure calculationsThe International Journal of High Performance Computing Applications10.1177/1094342023118369738:1(5-16)Online publication date: 30-Jun-2023
  • (2023)TriCache: A User-Transparent Block Cache Enabling High-Performance Out-of-Core Processing with In-Memory ProgramsACM Transactions on Storage10.1145/358313919:2(1-30)Online publication date: 22-Mar-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
IWMSE '08: Proceedings of the 1st international workshop on Multicore software engineering
May 2008
76 pages
ISBN:9781605580319
DOI:10.1145/1370082
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 May 2008

Permissions

Request permissions for this article.

Check for updates

Author Tag

  1. parallel algorithm libraries

Qualifiers

  • Research-article

Conference

ICSE '08
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Performance Evaluation of Parallel Sortings on the Supercomputer FugakuJournal of Information Processing10.2197/ipsjjip.31.45231(452-458)Online publication date: 2023
  • (2023)Parallel multithreaded deduplication of data sequences in nuclear structure calculationsThe International Journal of High Performance Computing Applications10.1177/1094342023118369738:1(5-16)Online publication date: 30-Jun-2023
  • (2023)TriCache: A User-Transparent Block Cache Enabling High-Performance Out-of-Core Processing with In-Memory ProgramsACM Transactions on Storage10.1145/358313919:2(1-30)Online publication date: 22-Mar-2023
  • (2022)Evaluating Multi-GPU Sorting with Modern InterconnectsProceedings of the 2022 International Conference on Management of Data10.1145/3514221.3517842(1795-1809)Online publication date: 10-Jun-2022
  • (2021)A study of work distribution and contention in database primitives on heterogeneous CPU/GPU architecturesProceedings of the 36th Annual ACM Symposium on Applied Computing10.1145/3412841.3441913(311-320)Online publication date: 22-Mar-2021
  • (2021)A Progressive Approach to Scalar Field TopologyIEEE Transactions on Visualization and Computer Graphics10.1109/TVCG.2021.306050027:6(2833-2850)Online publication date: 1-Jun-2021
  • (2021)Localized Topological Simplification of Scalar DataIEEE Transactions on Visualization and Computer Graphics10.1109/TVCG.2020.303035327:2(572-582)Online publication date: Feb-2021
  • (2021)Fast Approximation of Persistence Diagrams with Guarantees2021 IEEE 11th Symposium on Large Data Analysis and Visualization (LDAV)10.1109/LDAV53230.2021.00008(1-11)Online publication date: Oct-2021
  • (2021)Operators for Data Redistribution: Applications to the STL Library and RayTracing AlgorithmIEEE Access10.1109/ACCESS.2021.30636289(38557-38570)Online publication date: 2021
  • (2021)CPP11sort: A parallel quicksort based on C++ threadingConcurrency and Computation: Practice and Experience10.1002/cpe.660634:4Online publication date: 9-Sep-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media