I am interested in performance optimization of programs by compilers, their runtime systems, and specialized hardware accelerators. My recent interests is acceleration of genome analysis pipelines. The following includes brief descriptions of my research so far.
Workload characterization of server-side frameworks for script languages
Is V8 optimizing Node.js applications efficiently as it optimizes Web applications? Through detailed workload characterization of various Node.js applications, we found that performance improvements by compiler optimization are limited because the library code of Node.js and V8 written in C++ largely consumed the CPU time while V8 canot optimize C++ code.
Scalability of system software
The processors based on the non-uniform-memory-access (NUMA) architecture are becoming popular on the server side. A NUMA-aware memory management is critical for high performance of Java programs in which many threads are running across multiple CPU chips. I proposed a technique that can find the CPU chips for objects with low overhead, based on a widely-used generational GC.
When I worked on the project that investigated bottlenecks in the software stack (particularly, our middleware and Java virtual machine) with many cores, I researched the end-to-end problems, including threading, lock contention, and garbage collection.
Java just-in-time compiler
In the past I worked on the project, the Java just-in-time compiler. I researched the dynamic optimization of exception handling, the memory management of the JIT, lock optimization, and optimized code generation for x86 platforms.
High Performance Fortran compiler