We define an algorithm to be cache aware if it con tains parameters set at either compiletime or runtime that can be tuned to optimize the cache complexity for. Cacheoblivious algorithms collaboratory for advanced. Cacheoblivious and cacheaware algorithms researchgate. Historically, good performance has been obtained using cacheaware algorithms, but we shall exhibit several cacheoblivious algorithms for fundamental problems that are asymptotically as ef. Cacheoblivious algorithms should not be confused with cacheaware algorithms. Historically, good performance has been obtained using cacheaware algorithms, but we shall exhibit several cacheoblivious algorithms for fundamen tal problems that are asymptotically as ef. Cache oblivious, cache aware, external memory, ioe cient algorithms. Cacheoblivious algorithms have been advanced as a way of circumventing some of the difficulties of optimizing applications to take advantage of the memory hierarchy of modern microprocessors. Cacheoblivious and cacheaware algorithms 5 concurrent cacheoblivious search reest jeremy fineman and seth gilbert mit cambridge the btree is the classic data structure for maintaining searchable data in external memory. Mits introduction to algorithms, lectures 22 and 23. Recent experiments have shown, however, that cacheoblivious search trees can outperform traditional btrees.
Not all cacheoblivious algorithms are optimal, of coursefor example, the textbook radix2 algorithm discussed above is pessimal. Ffts and the memory hierarchy engineering libretexts. Remarkably, optimal cacheoblivious algorithms exist for many. Tilediterative wavefront algorithms achieve optimal cache complexity and high parallelism but are cacheaware and hence are not portable. First, consider a textbook radix2 algorithm, which divides n by 2 at. Cacheoblivious and cacheaware algorithms drops schloss. The purpose of this thesis is to examine cacheoblivious algorithms from a practical point of view. An experimental comparison of cacheoblivious and cache. In computing, a cacheoblivious algorithm or cachetranscendent algorithm is an algorithm.
In section 4 we describe a cacheaware generic sorting algorithm, c acheawar e genericsort based on genericsort. Our cacheoblivious algorithms achieve the same asymptotic optimality. Most of the algorithms in this paper are cache oblivious, but our kway mergesort is. An experimental comparison of cacheoblivious and cacheconscious programs. Using the buffer heap, we present cacheoblivious implementations of dijkstras algorithm for undirected and directed singlesource shortest path sssp. Aware algorithms was held in the international conference and re search center. B n log n cache misses where co hides poly log log factors. Cacheoblivious and dataoblivious sorting and applications. Algorithms developed for these earlier models are perforce cacheaware. To alleviate this, the notion of cacheoblivious algorithms has been developed. Theorem 7 funnelsort sorts n elements incurring at most qn cache misses.
These algorithms are based on the divideandconquer paradigm. Cacheoblivious algorithms article pdf available in acm transactions on algorithms 81. Provably efficient scheduling of cacheoblivious wavefront algorithms. The main idea behind cacheoblivious algorithms is to achieve optimal use of caches on all levels of a memory hierarchy without knowledge of their size.
1156 1288 1470 1280 736 617 316 1440 322 665 714 414 1164 642 352 664 975 988 437 922 1122 1287 1438 969 414 955 1299 489 562 255 422 170 4 254 439 1009 601 456 215 989 586 259 974 1192 548 94 843