Cache-Oblivious Sorting
Problem Definition
Sorting a set of elements is one of the most well-studied computational problems. In the cache-oblivious setting, the first study of sorting was presented in 1999 in the seminal paper by Frigo et al. [8] that introduced the cache-oblivious framework for developing algorithms aimed at machines with (unknown) hierarchical memory.
Model
In the cache-oblivious setting, the computational model is a machine with two levels of memory: a cache of limited capacity and a secondary memory of infinite capacity. The capacity of the cache is assumed to be M elements, and data is moved between the two levels of memory in blocks of Bconsecutive elements. Computations can only be performed on elements stored in cache, i.e., elements from secondary memory need to be moved to the cache before operations can access the elements. Programs are written as acting directly on one unbounded memory, i.e., programs are like standard RAM programs. The necessary block transfers between cache...
Keywords
FunnelsortRecommended Reading
- 1.Aggarwal A, Vitter JS (1988) The input/output complexity of sorting and related problems. Commun ACM 31(9):1116–1127MathSciNetCrossRefGoogle Scholar
- 2.Arge L, Bender MA, Demaine ED, Holland-Minkley B, Munro JI (2002) Cache-oblivious priority queue and graph algorithm applications. In: Proceedings of the 34th annual ACM symposium on theory of computing. ACM, New York, pp 268–276Google Scholar
- 3.Brodal GS, Fagerberg R (2002) Cache oblivious distribution sweeping. In: Proceedings of the 29th international colloquium on automata, languages, and programming. Lecture notes in computer science, vol 2380, pp 426–438. Springer, BerlinGoogle Scholar
- 4.Brodal GS, Fagerberg R (2003) On the limits of cache-obliviousness. In: Proceedings of the 35th annual ACM symposium on theory of computing. ACM, New York, pp 307–315Google Scholar
- 5.Brodal GS, Fagerberg R, Vinther K (2007) Engineering a cache-oblivious sorting algorithm. ACM J Exp Algoritmics (Special Issue of ALENEX 2004) 12(2.2):23Google Scholar
- 6.Department of Computer Science, Duke University. TPIE: a transparent parallel I/O environment. http://www.cs.duke.edu/TPIE/. Accessed 2002
- 7.Franceschini G (2004) Proximity mergesort: optimal in-place sorting in the cache-oblivious model. In: Proceedings of the 15th annual ACM-SIAM symposium on discrete algorithms (SODA). SIAM, Philadelphia, p 291Google Scholar
- 8.Frigo M, Leiserson CE, Prokop H, Ramachandran S (1999) Cache-oblivious algorithms. In: Proceedings of the 40th annual symposium on foundations of computer science. IEEE Computer Society Press, Los Alamitos, pp 285–297Google Scholar
- 9.Hoare CAR (1962) Quicksort. Comput J 5(1):10–15MathSciNetCrossRefMATHGoogle Scholar
- 10.Williams JWJ (1964) Algorithm 232: Heapsort. Commun ACM 7(6):347–348Google Scholar