Cache-efficient Parallel Algorithms
Modern multicore systems come with up to a TB of RAM these days. However, such large memory comes at the cost of slow access, compared to the speed of individual cores. To hide the latency of access to slow RAM, modern multicore processors come with faster, but much smaller caches. Thus, for optimal performance, it is very important to intelligently utilize these limited faster caches.
In this project we develop and implement new parallel algorithms which efficiently utilize available caches. We also study the limits of parallel computation in the presence of caches. Knowledge of parallel programming is a plus, but is NOT a prerequisite to start working on this project.
Relevant courses: ICS 311, ICS 432, ICS 443, ICS 621, ICS 643, ICS 691C.