skip to main content
research-article

Lists revisited: Cache-conscious STL lists

Published:05 January 2010Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. Cormen, T. H., Leiserson, C., Rivest, R., and Stein, C. 2001. Introduction to Algorithms, 2nd ed. MIT Press, Cambridge. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Demaine, E. 2002. Cache-oblivious algorithms and data structures. In EEF Summer School on Massive Data Sets.Google ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. International Standard ISO/IEC 14882. 1998. Programming Languages—C++, 1st ed. American National Standard Institute, Washington, DC.Google ScholarGoogle Scholar
  6. Josuttis, N. 1999. The C++ Standard Library: A Tutorial and Reference. Addison-Wesley, Upper Saddle River, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Lamarca, A. 1996. Caches and algorithms. Ph.D. thesis, University of Washington. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. Mehlhorn, K. and Naher, S. 1999. LEDA—A platform for combinatorial and geometric computing. Cambridge University Press, Cambridge, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Sedgewick, R. 1998. Algorithms in C++, 3 ed. Addison-Wesley, Upper Saddle River, NJ.Google ScholarGoogle Scholar
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. Weiss, M. A. 1998. Data Structures and Algorithm Analysis in C++. Addison-Wesley, Upper Saddle River, NJ. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Lists revisited: Cache-conscious STL lists

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Journal of Experimental Algorithmics
            ACM Journal of Experimental Algorithmics  Volume 14, Issue
            2009
            613 pages
            ISSN:1084-6654
            EISSN:1084-6654
            DOI:10.1145/1498698
            Issue’s Table of Contents

            Copyright © 2010 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 5 January 2010
            • Accepted: 1 March 2009
            • Revised: 1 February 2009
            • Received: 1 September 2006
            Published in jea Volume 14, Issue

            Qualifiers

            • research-article
            • Research
            • Refereed

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader