The libstdc++ v3 parallel mode uses #pragma omp critical in several places, like this:
#pragma omp critical(writeOutput) output = r(output, result); However, this is a global per app lock, which could deteriorate performance. -- Summary: [libstdc++ v3 parallel mode] Parallel mode algorithms use critical sections with global scope Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: singler at ira dot uka dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33892