I have left Inria (and academia as well) in July 2021. The Inria email will be invalid after September 2021. Please use my gmail address (replace the domain of my Inria address to gmail) to contact me.
I earned my Ph.D. in Computer Science at Colorado State University in 2012. I worked with Dr. Sanjay Rajopadhye during my Ph.D. as well as my Master's.
My research interests are in parallel/high performance computing, compilers/programming models for parallel/HPC, and High-Level Synthesis.
The specific research direction that I am currently looking at is next generation IDEs or in other words, parallel programming environment. While automatic parallelization is an attractive approach for dealing with challenges arising from parallelism, full automation is not going to happen in the near future.
I believe that development environments plays an important role in defining programmer experience, and hence productivity.
Static analysis of X10 programs using the polyhedral model. We have re-formulated the array dataflow analysis to handle X10 programs that are already parallel. X10 parallelism is different from doall that is currently the dominant form of expressing parallelism in the polyhedral model.
The result have been applied to give race-free guarantees of X10 programs. There are plenty of problems, such as scheduling, loop transformations, and so on, to be revisited under the new formulation.
A set of tools currently being developed at Colorado State University for design space exploration of polyhedral transformations. The two key features in AlphaZ are its emphasis on memory (re-)allocation capabilities, and on taking advantage of high-level semantics, such as commutativity and associativity.
The system utilizes a domain specific language, called Alphabets, that give concrete syntax to polyhedral intermediate representations used by automatic parallelizers. In other tools, what is computed in each statement is abstracted away, where in Alphabets, the operations performed is part of the language, enabling transformations that rely on semantical properties.
I gave a lecture on compiler research to fresh Ph.D. students at EJCP 2015, EJCP 2016, and EJCP 2017. The audience was not necessarily with compiler background, and the goal was to give some idea about compilation research. It was a lot of fun to give this course to a group of motivated students! The maetrials for the course can be found here.
I have strong opinions about many things. I share a few of them that may be useful for others, mainly regarding writing/presentation.
Method for making academic talks that I always follow. Give all your cool ideas in the first few minutes of your talk. No need to hold the main points until the end of the talk.
Links to general tips about talk by other people, and a small list of things that you can check to cover basic (and yet common) issues in your slides.
I am strongly against the use of beamer (making slides with latex) by fresh students who are still learning how to make good slides. I think it is filled with temptations that pull you towards bad practices.