The art of computer programming, volume 3: (2nd ed.) sorting and searching
The art of computer programming, volume 3: (2nd ed.) sorting and searching
The influence of caches on the performance of sorting
Journal of Algorithms
External memory algorithms and data structures: dealing with massive data
ACM Computing Surveys (CSUR)
Improving memory performance of sorting algorithms
Journal of Experimental Algorithmics (JEA)
Fast priority queues for cached memory
Journal of Experimental Algorithmics (JEA)
Cache-oblivious priority queue and graph algorithm applications
STOC '02 Proceedings of the thiry-fourth annual ACM symposium on Theory of computing
A locality-preserving cache-oblivious dynamic dictionary
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
Cache oblivious search trees via binary trees of small height
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
Exponential Structures for Efficient Cache-Oblivious Algorithms
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
Cache Oblivious Distribution Sweeping
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
Funnel Heap - A Cache Oblivious Priority Queue
ISAAC '02 Proceedings of the 13th International Symposium on Algorithms and Computation
Optimised Predecessor Data Structures for Internal Memory
WAE '01 Proceedings of the 5th International Workshop on Algorithm Engineering
External Memory Data Structures
ESA '01 Proceedings of the 9th Annual European Symposium on Algorithms
Efficient Tree Layout in a Multilevel Memory Hierarchy
ESA '02 Proceedings of the 10th Annual European Symposium on Algorithms
Scanning and Traversing: Maintaining Data for Traversals in a Memory Hierarchy
ESA '02 Proceedings of the 10th Annual European Symposium on Algorithms
Cache-oblivious data structures for orthogonal range searching
Proceedings of the nineteenth annual symposium on Computational geometry
On the limits of cache-obliviousness
Proceedings of the thirty-fifth annual ACM symposium on Theory of computing
FOCS '99 Proceedings of the 40th Annual Symposium on Foundations of Computer Science
FOCS '00 Proceedings of the 41st Annual Symposium on Foundations of Computer Science
A comparison of cache aware and cache oblivious static search trees using program instrumentation
Experimental algorithmics
Efficient sorting using registers and caches
Journal of Experimental Algorithmics (JEA)
The Cost of Cache-Oblivious Searching
FOCS '03 Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science
Proximity Mergesort: optimal in-place sorting in the cache-oblivious model
SODA '04 Proceedings of the fifteenth annual ACM-SIAM symposium on Discrete algorithms
Cache-oblivious shortest paths in graphs using buffer heap
Proceedings of the sixteenth annual ACM symposium on Parallelism in algorithms and architectures
Cache-oblivious planar orthogonal range searching and counting
SCG '05 Proceedings of the twenty-first annual symposium on Computational geometry
SCG '05 Proceedings of the twenty-first annual symposium on Computational geometry
Concurrent cache-oblivious b-trees
Proceedings of the seventeenth annual ACM symposium on Parallelism in algorithms and architectures
Cache-oblivious string dictionaries
SODA '06 Proceedings of the seventeenth annual ACM-SIAM symposium on Discrete algorithm
Cache-oblivious dynamic programming
SODA '06 Proceedings of the seventeenth annual ACM-SIAM symposium on Discrete algorithm
Cache-oblivious string B-trees
Proceedings of the twenty-fifth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Algorithms in c++, parts 1-4: fundamentals, data structure, sorting, searching, third edition
Algorithms in c++, parts 1-4: fundamentals, data structure, sorting, searching, third edition
Optimal cache-oblivious implicit dictionaries
ICALP'03 Proceedings of the 30th international conference on Automata, languages and programming
External string sorting: faster and cache-oblivious
STACS'06 Proceedings of the 23rd Annual conference on Theoretical Aspects of Computer Science
Cache-oblivious planar shortest paths
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
Cache-aware and cache-oblivious adaptive sorting
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
Cache-oblivious comparison-based algorithms on multisets
ESA'05 Proceedings of the 13th annual European conference on Algorithms
Communications of the ACM
An experimental study of sorting and branch prediction
Journal of Experimental Algorithmics (JEA)
Computing visibility on terrains in external memory
Journal of Experimental Algorithmics (JEA)
Engineering burstsort: Toward fast in-place string sorting
Journal of Experimental Algorithmics (JEA)
Engineering burstsort: towards fast in-place string sorting
WEA'08 Proceedings of the 7th international conference on Experimental algorithms
Accelerating the neighbor-joining algorithm using the adaptive bucket data structure
ISBRA'08 Proceedings of the 4th international conference on Bioinformatics research and applications
Low depth cache-oblivious algorithms
Proceedings of the twenty-second annual ACM symposium on Parallelism in algorithms and architectures
Algorithms and theory of computation handbook
Cache-Oblivious dictionaries and multimaps with negligible failure probability
MedAlg'12 Proceedings of the First Mediterranean conference on Design and Analysis of Algorithms
Hi-index | 0.02 |
This paper is an algorithmic engineering study of cache-oblivious sorting. We investigate by empirical methods a number of implementation issues and parameter choices for the cache-oblivious sorting algorithm Lazy Funnelsort and compare the final algorithm with Quicksort, the established standard for comparison-based sorting, as well as with recent cache-aware proposals. The main result is a carefully implemented cache-oblivious sorting algorithm, which, our experiments show, can be faster than the best Quicksort implementation we are able to find for input sizes well within the limits of RAM. It is also at least as fast as the recent cache-aware implementations included in the test. On disk, the difference is even more pronounced regarding Quicksort and the cache-aware algorithms, whereas the algorithm is slower than a careful implementation of multiway Mergesort, such as TPIE.