Cache-efficient Parallel Algorithms and Data Structures
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 and data structures that 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.
GPU Algorithms
Graphics processing units provide a lot of parallelism and computational power. A lot of GPU research is via trial and error. We are looking at modeling GPUs to be able to predict which algorithms and techniques will lead to efficient implementations.
GPUs also utilize faster caches. Thus, the techniques developed as part of the “Cache-efficient Parallel Algorithms” project above are also applicable here.
The research in this project involves developing new parallel algorithms and implementing them on NVIDIA GPUs using CUDA programming language. Knowledge of CUDA 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.
MapReduce Algorithms
Google’s MapReduce and its open-source implementation, Apache Hadoop, have emerged as a simple programming frameworks for implementing distributed algorithms. In this project we develop distributed algorithms and study the limits of computation in the MapReduce framework.
Relevant courses: ICS 311, ICS 443, ICS 621, ICS 643, ICS 632, ICS 691C.
Asteroid Detection
In partnership with the ATLAS and Pan-STARRS projects at the Institute for Astronomy we are working on improving the speed and accuracy of asteroid detection algorithms.
This projects involves using geometric data structures to organize the data in the images of the sky for efficient processing and detection of moving object.
Relevant courses: ICS 311, ICS 621, ICS 691C.