Amortized efficiency of list update and paging rules
Communications of the ACM
The input/output complexity of sorting and related problems
Communications of the ACM
Introduction to algorithms
Computer architecture (2nd ed.): a quantitative approach
Computer architecture (2nd ed.): a quantitative approach
The influence of caches on the performance of sorting
SODA '97 Proceedings of the eighth annual ACM-SIAM symposium on Discrete algorithms
Cache performance analysis of traversals and random accesses
Proceedings of the tenth annual ACM-SIAM symposium on Discrete algorithms
Sorting on Electronic Computer Systems
Journal of the ACM (JACM)
Towards a theory of cache-efficient algorithms
SODA '00 Proceedings of the eleventh annual ACM-SIAM symposium on Discrete algorithms
SODA '00 Proceedings of the eleventh annual ACM-SIAM symposium on Discrete algorithms
External memory algorithms and data structures: dealing with massive data
ACM Computing Surveys (CSUR)
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
FOCS '99 Proceedings of the 40th Annual Symposium on Foundations of Computer Science
Efficient trie-based sorting of large sets of strings
ACSC '03 Proceedings of the 26th Australasian computer science conference - Volume 16
Cache-conscious sorting of large sets of strings with dynamic tries
Journal of Experimental Algorithmics (JEA)
Implementing sorting in database systems
ACM Computing Surveys (CSUR)
Future Generation Computer Systems - Systems performance analysis and evaluation
Using random sampling to build approximate tries for efficient string sorting
Journal of Experimental Algorithmics (JEA)
Cache-efficient string sorting using copying
Journal of Experimental Algorithmics (JEA)
An experimental study of sorting and branch prediction
Journal of Experimental Algorithmics (JEA)
Engineering Radix Sort for Strings
SPIRE '08 Proceedings of the 15th International Symposium on String Processing and Information Retrieval
Algorithms for memory hierarchies: advanced lectures
Algorithms for memory hierarchies: advanced lectures
Algorithms and theory of computation handbook
Hi-index | 0.00 |
We demonstrate the importance of reducing misses in the translation-lookaside buffer (TLB) for obtaining good performance on modern computer architectures. We focus on least-significantbit first (LSB) radix sort, standard implementations of which make many TLB misses. We give three techniques which simultaneously reduce cache and TLB misses for LSB radix sort: reducing working set size, explicit block transfer and pre-sorting. We note that: • All the techniques above yield algorithms whose implementations outperform optimised cache-tuned implementations of LSB radix sort and comparison-based sorting algorithms. The fastest running times are obtained by the pre-sorting approach and these are over twice as fast as optimised cache-tuned implementations of LSB radix sort and quicksort. Even the simplest optimisation, using the TLB size to guide the choice of radix in standard implementations of LSB radix sort, gives good improvements over cache-tuned algorithms. • One of the pre-sorting algorithms and explicit block transfer make few cache and TLB misses in the worst case. This is not true of standard implementations of LSB radix sort.We also apply these techniques to the problem of permuting an array of integers, and obtain gains of over 30% relative to the naive algorithm by using explicit block transfer.