1 <?xml version=
"1.0" encoding=
"UTF-8" standalone=
"no"?>
2 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns=
"http://www.w3.org/1999/xhtml"><head><meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" /><title>Chapter
18. Parallel Mode
</title><meta name=
"generator" content=
"DocBook XSL-NS Stylesheets V1.78.1" /><meta name=
"keywords" content=
"C++, library, parallel" /><meta name=
"keywords" content=
"ISO C++, library" /><meta name=
"keywords" content=
"ISO C++, runtime, library" /><link rel=
"home" href=
"../index.html" title=
"The GNU C++ Library" /><link rel=
"up" href=
"extensions.html" title=
"Part III. Extensions" /><link rel=
"prev" href=
"debug_mode_design.html" title=
"Design" /><link rel=
"next" href=
"parallel_mode_semantics.html" title=
"Semantics" /></head><body><div class=
"navheader"><table width=
"100%" summary=
"Navigation header"><tr><th colspan=
"3" align=
"center">Chapter
18. Parallel Mode
</th></tr><tr><td width=
"20%" align=
"left"><a accesskey=
"p" href=
"debug_mode_design.html">Prev
</a> </td><th width=
"60%" align=
"center">Part III.
5 </th><td width=
"20%" align=
"right"> <a accesskey=
"n" href=
"parallel_mode_semantics.html">Next
</a></td></tr></table><hr /></div><div class=
"chapter"><div class=
"titlepage"><div><div><h2 class=
"title"><a id=
"manual.ext.parallel_mode"></a>Chapter
18. Parallel Mode
</h2></div></div></div><div class=
"toc"><p><strong>Table of Contents
</strong></p><dl class=
"toc"><dt><span class=
"section"><a href=
"parallel_mode.html#manual.ext.parallel_mode.intro">Intro
</a></span></dt><dt><span class=
"section"><a href=
"parallel_mode_semantics.html">Semantics
</a></span></dt><dt><span class=
"section"><a href=
"parallel_mode_using.html">Using
</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"parallel_mode_using.html#parallel_mode.using.prereq_flags">Prerequisite Compiler Flags
</a></span></dt><dt><span class=
"section"><a href=
"parallel_mode_using.html#parallel_mode.using.parallel_mode">Using Parallel Mode
</a></span></dt><dt><span class=
"section"><a href=
"parallel_mode_using.html#parallel_mode.using.specific">Using Specific Parallel Components
</a></span></dt></dl></dd><dt><span class=
"section"><a href=
"parallel_mode_design.html">Design
</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"parallel_mode_design.html#parallel_mode.design.intro">Interface Basics
</a></span></dt><dt><span class=
"section"><a href=
"parallel_mode_design.html#parallel_mode.design.tuning">Configuration and Tuning
</a></span></dt><dd><dl><dt><span class=
"section"><a href=
"parallel_mode_design.html#parallel_mode.design.tuning.omp">Setting up the OpenMP Environment
</a></span></dt><dt><span class=
"section"><a href=
"parallel_mode_design.html#parallel_mode.design.tuning.compile">Compile Time Switches
</a></span></dt><dt><span class=
"section"><a href=
"parallel_mode_design.html#parallel_mode.design.tuning.settings">Run Time Settings and Defaults
</a></span></dt></dl></dd><dt><span class=
"section"><a href=
"parallel_mode_design.html#parallel_mode.design.impl">Implementation Namespaces
</a></span></dt></dl></dd><dt><span class=
"section"><a href=
"parallel_mode_test.html">Testing
</a></span></dt><dt><span class=
"bibliography"><a href=
"parallel_mode.html#parallel_mode.biblio">Bibliography
</a></span></dt></dl></div><p> The libstdc++ parallel mode is an experimental parallel
6 implementation of many algorithms the C++ Standard Library.
8 Several of the standard algorithms, for instance
9 <code class=
"function">std::sort
</code>, are made parallel using OpenMP
10 annotations. These parallel mode constructs and can be invoked by
11 explicit source declaration or by compiling existing sources with a
12 specific compiler flag.
13 </p><div class=
"section"><div class=
"titlepage"><div><div><h2 class=
"title" style=
"clear: both"><a id=
"manual.ext.parallel_mode.intro"></a>Intro
</h2></div></div></div><p>The following library components in the include
14 <code class=
"filename">numeric
</code> are included in the parallel mode:
</p><div class=
"itemizedlist"><ul class=
"itemizedlist" style=
"list-style-type: disc; "><li class=
"listitem"><p><code class=
"function">std::accumulate
</code></p></li><li class=
"listitem"><p><code class=
"function">std::adjacent_difference
</code></p></li><li class=
"listitem"><p><code class=
"function">std::inner_product
</code></p></li><li class=
"listitem"><p><code class=
"function">std::partial_sum
</code></p></li></ul></div><p>The following library components in the include
15 <code class=
"filename">algorithm
</code> are included in the parallel mode:
</p><div class=
"itemizedlist"><ul class=
"itemizedlist" style=
"list-style-type: disc; "><li class=
"listitem"><p><code class=
"function">std::adjacent_find
</code></p></li><li class=
"listitem"><p><code class=
"function">std::count
</code></p></li><li class=
"listitem"><p><code class=
"function">std::count_if
</code></p></li><li class=
"listitem"><p><code class=
"function">std::equal
</code></p></li><li class=
"listitem"><p><code class=
"function">std::find
</code></p></li><li class=
"listitem"><p><code class=
"function">std::find_if
</code></p></li><li class=
"listitem"><p><code class=
"function">std::find_first_of
</code></p></li><li class=
"listitem"><p><code class=
"function">std::for_each
</code></p></li><li class=
"listitem"><p><code class=
"function">std::generate
</code></p></li><li class=
"listitem"><p><code class=
"function">std::generate_n
</code></p></li><li class=
"listitem"><p><code class=
"function">std::lexicographical_compare
</code></p></li><li class=
"listitem"><p><code class=
"function">std::mismatch
</code></p></li><li class=
"listitem"><p><code class=
"function">std::search
</code></p></li><li class=
"listitem"><p><code class=
"function">std::search_n
</code></p></li><li class=
"listitem"><p><code class=
"function">std::transform
</code></p></li><li class=
"listitem"><p><code class=
"function">std::replace
</code></p></li><li class=
"listitem"><p><code class=
"function">std::replace_if
</code></p></li><li class=
"listitem"><p><code class=
"function">std::max_element
</code></p></li><li class=
"listitem"><p><code class=
"function">std::merge
</code></p></li><li class=
"listitem"><p><code class=
"function">std::min_element
</code></p></li><li class=
"listitem"><p><code class=
"function">std::nth_element
</code></p></li><li class=
"listitem"><p><code class=
"function">std::partial_sort
</code></p></li><li class=
"listitem"><p><code class=
"function">std::partition
</code></p></li><li class=
"listitem"><p><code class=
"function">std::random_shuffle
</code></p></li><li class=
"listitem"><p><code class=
"function">std::set_union
</code></p></li><li class=
"listitem"><p><code class=
"function">std::set_intersection
</code></p></li><li class=
"listitem"><p><code class=
"function">std::set_symmetric_difference
</code></p></li><li class=
"listitem"><p><code class=
"function">std::set_difference
</code></p></li><li class=
"listitem"><p><code class=
"function">std::sort
</code></p></li><li class=
"listitem"><p><code class=
"function">std::stable_sort
</code></p></li><li class=
"listitem"><p><code class=
"function">std::unique_copy
</code></p></li></ul></div></div><div class=
"bibliography"><div class=
"titlepage"><div><div><h2 class=
"title"><a id=
"parallel_mode.biblio"></a>Bibliography
</h2></div></div></div><div class=
"biblioentry"><a id=
"idm140623069957824"></a><p><span class=
"citetitle"><em class=
"citetitle">
16 Parallelization of Bulk Operations for STL Dictionaries
17 </em>.
</span><span class=
"author"><span class=
"firstname">Johannes
</span> <span class=
"surname">Singler
</span>.
</span><span class=
"author"><span class=
"firstname">Leonor
</span> <span class=
"surname">Frias
</span>.
</span><span class=
"copyright">Copyright ©
2007 .
</span><span class=
"publisher"><span class=
"publishername">
18 Workshop on Highly Parallel Processing on a Chip (HPPC)
2007. (LNCS)
19 .
</span></span></p></div><div class=
"biblioentry"><a id=
"idm140623069952752"></a><p><span class=
"citetitle"><em class=
"citetitle">
20 The Multi-Core Standard Template Library
21 </em>.
</span><span class=
"author"><span class=
"firstname">Johannes
</span> <span class=
"surname">Singler
</span>.
</span><span class=
"author"><span class=
"firstname">Peter
</span> <span class=
"surname">Sanders
</span>.
</span><span class=
"author"><span class=
"firstname">Felix
</span> <span class=
"surname">Putze
</span>.
</span><span class=
"copyright">Copyright ©
2007 .
</span><span class=
"publisher"><span class=
"publishername">
22 Euro-Par
2007: Parallel Processing. (LNCS
4641)
23 .
</span></span></p></div></div></div><div class=
"navfooter"><hr /><table width=
"100%" summary=
"Navigation footer"><tr><td width=
"40%" align=
"left"><a accesskey=
"p" href=
"debug_mode_design.html">Prev
</a> </td><td width=
"20%" align=
"center"><a accesskey=
"u" href=
"extensions.html">Up
</a></td><td width=
"40%" align=
"right"> <a accesskey=
"n" href=
"parallel_mode_semantics.html">Next
</a></td></tr><tr><td width=
"40%" align=
"left" valign=
"top">Design
</td><td width=
"20%" align=
"center"><a accesskey=
"h" href=
"../index.html">Home
</a></td><td width=
"40%" align=
"right" valign=
"top"> Semantics
</td></tr></table></div></body></html>