The Multi-Core Standard Template Library (MCSTL) is a parallel implementation of the standard C++ library. It makes use of multiple processors and/or multiple cores of a processor with shared memory. It blends in transparently and there is in principle no change necessary in the program itself. Applications that make use of the STL algorithms like sort, random_shuffle, partial_sum or for_each, benefit from the improved speed due to parallelism. MCSTL cooperates particularly well with the STXXL, the STL library for huge data sets in external memory.
More information about how to incorporate the library into your application is given in the documentation section.
The library is licensed partly licensed under
Boost Software License 1.0, partly under the GNU General Public License Version 2 with Runtime Exception.
Incorporation into GNU libstdc++
From GCC version 4.3, the MCSTL is incorporated in the GNU STL implementation,
namely libstdc++, as the so-called libstdc++ parallel mode
Maintenance of the code happens only there, so please use the
parallel mode code instead of MCSTL.
Many bugs and incompatibilities have been fixed there.
Issue bug reports to the
, and add
2008-05-15: Development ongoing as libstdc++ parallel mode
The development of the libstdc++ parallel mode is ongoing.
Improved versions will be included in future versions of GCC.
Accelerating and extending the underlying OpenMP runtime is also ongoing.
2008-03-25: GCC 4.3 release
The GCC version 4.3 including the parallel mode has been released two weeks ago.
Please note that the settings mechanism has changed considerably.
2008-02-20: GCC branches to 4.3
Some days ago, the GCC has branched to version 4.3 which will contain the MCSTL algorithms under the name "libstdc++ parallel mode".
2007-11-23: Integration of MCSTL into GCC ongoing
The MCSTL code will be integrated into GCC as the
"libstdc++ parallel mode"
See also the announcement
from September 11, 2007.
2007-08-27: Release of MCSTL 0.8.0-beta: added bulk dictionary operations, major code cleanup, bug fixes
We announce that integration of the MCSTL into the GNU libstdc++ has started.
The final version will most likely be licensed under the GNU General Public License Version 3
with Runtime Exception
2007-05-29: Release of MCSTL 0.7.5-beta: added unique_copy, set operations
2007-05-04: Release of MCSTL 0.7.3-beta: improved compatibility, stability
2007-04-20: Release of MCSTL 0.7.1-beta: cleanup, more complete functionality
2006-12-21: Release of MCSTL 0.7.0-beta: dynamically load-balanced quicksort, greatly improved compatibility and performance
2006-10-10: Release of MCSTL 0.6.0-beta: many more algorithms implemented
2006-07-31: Release of MCSTL 0.4.0-alpha: much more regression testing has taken place
2006-07-19: First Release MCSTL 0.3.0-alpha
2006-06-22: Website goes online