Cache-oblivious algorithms

created by wick
(idea) by everyone (5.8 mon) (print)   (I like it!) Tue Apr 23 2002 at 21:40:42
Cache-oblivious algorithms are algorithms that have asymptotically optimal cache complexity. Unlike cache-aware algorithms, cache-oblivious algorithms contain no tuning parameters for the cache size and line length and, indeed, are oblivious to nature of the cache, but exploit locality of reference to achieve cache-optimality nonetheless. (Memory accesses which occur within a short time of each other tend to refer to memory addresses which are close to each other.) In other words, cache-oblivious algorithms have no specific knowledge about the cache of the machine they are running on but have optimal cache performance nonetheless.

The simplest cache-oblivious algorithm is divide and conquer matrix multiplication. (Straightforward matrix multiplication has poor cache complexity, but divide and conquer does not.) The MIT LCS discovered cache-oblivious algorithms in 1994, when they realized that divide and conquer matrix multiplication is cache-optimal and requires no cache-specific tuning parameters. The term "cache-oblivious" was not adopted by the LCS until 1997.

A good introductory treatment of cache-oblivious algorithms is the Master's Thesis of Harold Prokop (also of MIT LCS).

Y'know, if you log in, you can write something here, or contact authors directly on the site. Create a New User if you don't already have an account.