MCSTL: The Multi-Core Standard Template Library


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 GCC bugzilla, and add email address as CC.


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

The Multi-Core Standard Template Library