150 S. Woodlawn Ave.
Bloomington, IN 47405
My current research interests are in compilers, parallelism and programming languages. I am advised by Dr. Arun Chauhan
and Dr. Andrew Lumsdaine
Kanor is an embedded domain specific language (DSL) to write parallel programs.
A Kanor program is written in Bulk Synchronous Parallel (BSP) style with
communication specified by the programmer assuming partitioned address space like MPI.
I helped design the syntax and semantics of Kanor. I implemented Kanor extensions
using C++ metaprogramming techniques and C++11 features.
I am writing a source-to-source translator to translate Kanor programs to C++ programs.
The translator uses the Clang LibTooling framework to optimize
generated source which can be further compiled by a different C++ compiler.
My responsibilities include literature review, coding, testing, debugging, writing papers, presentation.
MPI on Shared Memory
The purpose of the project is to efficiently compile MPI programs to take advantage of shared-memory for communication purposes. We statically try to detect buffers that can be shared between sender and receiver processes and allocate them in shared memory to eliminate runtime copies. We take an optimistic approach in that we allocate buffers in shared memory even if we cannot prove that there will be redefinitions. But the redefinitions are detected at runtime (with compiler inserted checks) and the runtime falls back to copying in that case.
- Proving an Array Reversal Algorithm Using PVS. [doc]
- StreamIT MPI Backend - An Evaluation. [doc]
- Optimizing MPI Collectives using LLVM. [doc]
- Register Allocation using GPUs. [doc]