Abstract
We present three cache-conscious implementations of STL standard compliant lists. Until now, one could either find simple doubly linked list implementations that easily cope with standard strict requirements, or theoretical approaches that do not take into account any of these requirements in their design. In contrast, we have merged both approaches, paying special attention to iterators constraints. In this article, the competitiveness of our implementations is evinced with an extensive experimental analysis. This shows, for instance, 5 to 10 times faster traversals and 3 to 5 times faster internal sort.
- Bender, M., Cole, R., Demaine, E., and Farach-Colton, M. 2002. Scanning and traversing: Maintaining data for traversals in memory hierarchy. In Proceedings of the 10th European Symposium on Algorithms (ESA'02). Springer, Berlin, 152--164. Google ScholarDigital Library
- Cormen, T. H., Leiserson, C., Rivest, R., and Stein, C. 2001. Introduction to Algorithms, 2nd ed. MIT Press, Cambridge. Google ScholarDigital Library
- Demaine, E. 2002. Cache-oblivious algorithms and data structures. In EEF Summer School on Massive Data Sets.Google Scholar
- Frigo, M., Leiserson, C., Prokop, H., and Ramachandran, S. 1999. Cache-oblivious algorithms. In Proceedings of the 40th Annual Symposium on Foundations of Computer Science (FOCS'99). IEEE, Los Alamitos, CA, 285. Google ScholarDigital Library
- International Standard ISO/IEC 14882. 1998. Programming Languages—C++, 1st ed. American National Standard Institute, Washington, DC.Google Scholar
- Josuttis, N. 1999. The C++ Standard Library: A Tutorial and Reference. Addison-Wesley, Upper Saddle River, NJ. Google ScholarDigital Library
- Lamarca, A. 1996. Caches and algorithms. Ph.D. thesis, University of Washington. Google ScholarDigital Library
- Luk, C., Cohn, R., Muth, R., Patil, H., Klauser, A., Lowney, G., Wallace, S., Reddi, V. J., and Hazelwood, K. 2005. Pin: Building customized program analysis tools with dynamic instrumentation. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'05). ACM, New York. Chicago, IL. Google ScholarDigital Library
- Mehlhorn, K. and Naher, S. 1999. LEDA—A platform for combinatorial and geometric computing. Cambridge University Press, Cambridge, UK. Google ScholarDigital Library
- Sedgewick, R. 1998. Algorithms in C++, 3 ed. Addison-Wesley, Upper Saddle River, NJ.Google Scholar
- Sen, S. and Chatterjee, S. 2000. Towards a theory of cache-efficient algorithms. In Proceedings of the 12th Annual Symposium on Discrete Algorithms (SODA'00). SIAM, Philadelphia, 829--838. Google ScholarDigital Library
- Weiss, M. A. 1998. Data Structures and Algorithm Analysis in C++. Addison-Wesley, Upper Saddle River, NJ. Google ScholarDigital Library
Index Terms
- Lists revisited: Cache-conscious STL lists
Recommendations
Lock-free linked lists and skip lists
PODC '04: Proceedings of the twenty-third annual ACM symposium on Principles of distributed computingLock-free shared data structures implement distributed objects without the use of mutual exclusion, thus providing robustness and reliability. We present a new lock-free implementation of singly-linked lists. We prove that the worst-case amortized cost ...
Lists revisited: cache conscious STL lists
WEA'06: Proceedings of the 5th international conference on Experimental AlgorithmsWe present three cache conscious implementations of STL standard compliant lists. Up to now, one could either find simple double linked list implementations that easily cope with standard strict requirements, or theoretical approaches that do not take ...
Adaptable component frameworks: using vector from the C++ standard library as an example
WGP '09: Proceedings of the 2009 ACM SIGPLAN workshop on Generic programmingThe CPH STL is a special edition of the STL, the containers and algorithms part of the C++ standard library. The specification of the generic components of the STL is given in the C++ standard. Any implementation of the STL, e.g. the one that ships with ...
Comments