|
CSE Home |
About Us |
Search |
Contact Info |
|
OverviewBecause modern computer have relatively slow memories, caches are employed to speedup access to recently reference data. In this project we study how caches affect the performance of algorithms. There are two component problems to study: (i) the problem of how to design algorithms which have good memory performance and good overall performance, and (ii) the problem of how to analytically predict the memory performance of an algorithm. We design, implement, and evaluate memory optimized algorithms in a number of areas and systematically compare the memory optimized algorithms with the classic versions of these algorithms. We compare algorithms using trace-driven cache simulation, cache miss analysis, and timings of implementations. We also use new analytic techniques to accurately predict the number of cache misses. Universally, the implicit advice given in data structures and algorithms texts is that if you want to solve a problem faster, then try to find an algorithm that uses fewer instructions. This advice is no longer true because, on modern processors with caches, an algorithm with a low instruction count and a high number of cache misses may not perform as well as one with a high instruction count and a low number of cache misses.Publications
|
||||||||||||||||||||||||||||||||||
|
Computer Science & Engineering University of Washington Box 352350 Seattle, WA 98195-2350 (206) 543-1695 voice, (206) 543-2969 FAX [comments to ladner] | |