STXXL: Standard Template Library for Extra Large Data Sets.
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 closeness to the STL supports ease of use and compatibility with existing applications, another design priority is high performance. [more info]
The key features of STXXL are:
Current contributors: Andreas Beckmann, Johannes Singler
Past contributors: Roman Dementiev (author), Peter Sanders
Questions concerning use and development of the STXXL should be posted to the forums.
Bugs should be reported in the Bugzilla Bug Tracker
STXXL is free, open source, and available under the Boost Software License 1.0.
Operating Systems | Compilers | Extras |
|
g++ (3.3-4.5)
icpc (9.0-12.0) clang++ (2.8) |
Boost
(optional)
MCSTL (optional, only with g++ 4.2 or icpc 10.x/11.x/12.0) libstdc++ parallel mode (optional, included with g++ 4.3+) |
|
g++ | |
|
g++ | |
|
Microsoft Visual C++ 8.0, 9.0, 10.0 | Boost (required) |
Version 1.3.1 (March 10, 2011) contains memory management, disk virtualization, prefetching, and so on, as the lower layers, and as part of the higher layer (pipelined) sorting with SMP and multi-core processor support, (pipelined) scanning and containers (vectors, stacks, priority queues, maps (B+Tree), queues, deques). Currently that sums to about 35,000 lines of code.
Special features are maintained in up-to-date branches until they are merged into trunk. Until inclusion into trunk, the interface may change without further notice. Please refer to Installing from subversion for a description on how to build these branches.
Current Stable Version | Previous Stable Version | Development Version (subversion) | |
|
[1.3.1] | [1.3.0] | [trunk] |
|
[1.3.1] | [1.3.0] | [trunk] |
|
[1.3.1] tgz, zip (sf.net) | [1.3.0] tgz, zip (sf.net) | subversion checkout |
|
[Browse]
[Checkout]
.../svnroot/stxxl/tags/1.3.1/ |
[Browse]
[Checkout]
.../svnroot/stxxl/tags/1.3.0/ |
[Browse]
[Checkout]
.../svnroot/stxxl/trunk/ |
A. Beckmann, R. Dementiev, J. Singler: Building A Parallel Pipelined External Memory Algorithm Library IPDPS 2009: International Parallel and Distributed Processing Symposium (May 2009, Rome, Italy) [full text]
R. Dementiev, L. Kettner, P. Sanders: STXXL: standard template library for XXL data sets, Software: Practice and Experience (August 2007, DOI: 10.1002/spe.844): [link][preprint]
D. Ajwani, R. Dementiev, U. Meyer: A Computational Study of External-Memory BFS Algorithms. SODA2006: ACM-SIAM Symposium on Discrete Algorithms (January 2006, Miami, Florida, USA) [pdf]
R. Dementiev, L. Kettner, P. Sanders: Stxxl: Standard Template Library for XXL Data Sets. ESA2005: 13th Annual European Symposium on Algorithms (October 2005, Palma de Mallorca, Spain) [pdf] (see also the extended version)
R. Dementiev, L. Kettner, P. Sanders: Stxxl: Standard Template Library for XXL Data Sets. Technical Report 2005/18, Department of Informatics, University of Karlsruhe [pdf] [html]
R. Dementiev, J. Kaerkkaeinen, J. Mehnert, P. Sanders: Better External Memory Suffix Array Construction ALENEX05: Algorithm Engineering and Experiments (January 2005, Vancouver, Canada): [pdf][input instances]
R. Dementiev, P. Sanders, D. Schultes, and J. Sibeyn: Engineering an External Memory Minimum Spanning Tree Algorithm. TSC04: 3rd IFIP International Conference on Theoretical Computer Science (August 24-26, 2004, Toulouse): [ps][pdf]
R. Dementiev, P. Sanders: Asynchronous Parallel Disk Sorting. In 15th ACM Symposium on Parallelism in Algorithms and Architectures (June 7-9, 2003, San Diego, California, USA): pages 138-148 [pdf]