My research falls under the parallel and distributed computing landscape. More specifically, I focus on parallel runtime systems to accommodate programming models and applications in massively parallel environments. This involves dealing with communication runtimes and their interaction challenges with threading models, such as in the context of fine-grained MPI communication and hybrid MPI+threads programming on multi- and many-core systems.
MPICH is a high performance and widely portable implementation of the Message Passing Interface (MPI) standard. While I am involved in several aspects related to MPI and the MPICH implementation, I particularly focus on multithreaded communication performance.
Argo is an Exascale operating system and runtime research project. I am responsible for low level optimizations of Argobots, the runtime layer, and its interaction with communication runtimes such as MPI.
BOLT is an OpenMP runtime that exploits lightweight threading models, such as Argobots, underneath. I specialize in improving interoperability of OpenMP with other programming systems, such as MPI.
The EBD project aims at improving the data processing capabilities of current systems in order to handle data that will be generated by future applications, which is expected to be of extreme scale an complexity. My role was to investigate and improve hybrid MPI+threads runtimes to better support communication and data intensive algorithms such as graph processing applications.