Abstract
This paper presents asymptotically optimal algorithms for rectangular matrix transpose, FFT, and sorting on computers with multiple levels of caching. Unlike previous optimal algorithms, these algorithms are cache oblivious: no variables dependent on hardware parameters, such as cache size and cache-line length, need to be tuned to achieve optimality. Nevertheless, these algorithms use an optimal amount of work and move data optimally among multiple levels of cache. For a cache with size Z and cache-line length L where Z = Ω(L2) the number of cache misses for an m × n matrix transpose is Θ(1 + mn/L). The number of cache misses for either an n-point FFT or the sorting of n numbers is Θ(1 + (n/L)(1 + logZn)). We also give an Θ(mnp)-work algorithm to multiply an m × n matrix by an n × p matrix that incurs Θ(1 + (mn + np + mp)/L + mnp/L√Z) cache faults. We introduce an 'ideal-cache' model to analyze our algorithms. We prove that an optimal cache-oblivious algorithm designed for two levels of memory is also optimal for multiple levels and that the assumption of optimal replacement in the ideal-cache model can be simulated efficiently by LRU replacement. We also provide preliminary empirical results on the effectiveness of cache-oblivious algorithms in practice.
Cite
CITATION STYLE
Frigo, M., Leiserson, C. E., Prokop, H., & Ramachandran, S. (1999). Cache-oblivious algorithms. In Annual Symposium on Foundations of Computer Science - Proceedings (pp. 285–297). IEEE. https://doi.org/10.1109/sffcs.1999.814600
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.