11 April 2008

More STL - MCSTL and STXXL

In a few previous posts I have mentioned some alternative STL implementations. You can read about rdestl here as well as uSTL and stdcxx here.

I've stumbled across a couple of other STL implementations for more specific purposes that I thought some people might find useful.

First up is MCSTL - The Multi-Core Standard Template Library which is a multi-core implementation of certain STL algorithms. This has actually been integrated into the GCC STL implementation with version 4.3. It uses OpenMP internally for the multi-threading so would be limited to compilers with valid implementations of that functionality.

Next up there is STXXL: Standard Template Library for Extra Large Data Sets. I think the blurb sums it up:
The core of STXXL is an implementation of the C++ standard template library STL for external memory (out-of-core) computations, i.e., STXXL implements containers and algorithms that can process huge volumes of data that only fit on disks. While the compatibility to the STL supports ease of use and compatibility with existing applications, another design priority is high performance.
After seeing some extra long and large computations on huge data sets this can be used to get around limitations of the platform with less addressable space.