Since finishing my Masters’ thesis, I have drastically changed research directions and focused on Graphics Processing Units (GPUs). The central focus of my research involves analyzing specific aspects of the modern GPU architecture to gain insight into developing GPU-efficient algorithms. The draft of my dissertation proposal outlines the work done thus far, as well as goals and planned work.
We have published some of the work done thus far in a paper in HiPC 2015, titled “Efficient Batched Predecessor Search in Shared Memory on GPUs”. More details can be found in my dissertation proposal draft. In addition to GPU research, other research areas that interest me include:
Computational Geometry – Lately I have been working on parallel algorithms to solve some problems in computational geometry. These problems are typically computationally intensive and require a range of techniques to solve efficiently and in parallel. Developing and proving efficient solutions to these problems requires the use of advanced parallel algorithms techniques and data structures.
Parallel data structures – In the process of developing efficient parallel algorithms, I began looking at advanced data structures. The field of data structures is very broad, yet many of the advanced methods developed over the years can be leveraged when developing efficient parallel algorithms for a range of problems.
Cache Oblivious Algorithms – With the varying hardware architectures used today, cache usage is a large area of research. There has been recent (mainly theoretical) research focusing on making algorithms cache-oblivious. This field has particular relevance to GPUs, as the details of the memory hierarchy often cause performance loss.
Applying Computationally Difficult Problems to GPU – The GPU offers a large amount of compute power at a very low cost. I am interested in looking at problems that are typically very slow and difficult, and leveraging GPUs to attempt to solve them efficiently. Problems in Computational Geometry, for example, pose interesting problems.
Ray-tracing on the GPU – While very heavily researching and continually being worked on, I have looked into the problem of Ray-tracing and considered possible approaches to solving this problem. This work is currently on hold, though I may re-visit this problem at some point.
Parallel Fast Fourier Transform algorithms – My Literature Review was on the topic of Parallel FFT algorithms, so I have some detailed knowledge on this field. The area is very mature and it is difficult to find a niche within it that is significant enough for a full PhD dissertation.
Fast Multipole Method – I came across this algorithm and its significance while researching my literature review. The FMM is a method of greatly reducing the complexity of N-body type problems through approximation, though it impacts many other applications as well. I am continuing to review this field to determine if it is a fruitful avenue of research, especially in the context of the GPU.
Large-scale HPC Applications – There are many problems that are still unsolved and require immense computing power to attempt. As hardware improves and new algorithms are developed, these problems start to become solvable. The N-body problem and its application to particle physics, for example, is a very interesting area. Methods like the Fast Multipole Method and applying novel memory-allocation and communication schemes on distirbuted-memory systems all help us with this problem. This area provides both interesting HPC-focused research and application results that may be significant to other fields (e.g., physics, chemistry).