My research in performance analysis and tuning of scientific code spans a spectrum of topics, including static analysis, runtime performance monitoring, performance database management, post-mortem performance analysis, and source transformation tools for performance tuning. More details are available at the Trac site for these projects.
In the area of performance tuning, I am investigating annotation-based approaches to empirical performance tuning. The goal of this project is to provide a lightweight, portable source transformation tool that enables application developers to easily incorporate advanced performance-enhancing transformations into their application development process. For more information, see the Orio Trac site.
My research in the area of high-end computer performance focuses on characterizing realistic performance bounds of high-performance applications and systems. As part of the DOE Performance Engineering Research Institute, I am developing performance bounding tools that determine what sections of code have performance that is memory bandwidth limited or instruction scheduling limited on a particular architecture. For example, in order to determine whether a code segment is memory bandwidth limited, the bounding tools estimates the memory bandwidth requirements of the code by computing the ratio between the number of floating point operations and memory accesses, which can then be used to predict the maximum achievable performance for a given architecture. Ultimately, the performance bounding tools will enable application programmers to identify existing performance bottlenecks and their associated performance bounds (which will be more realistic and tighter than the bounds currently provided by the manufacturer). Project Web page: http://trac.mcs.anl.gov/projects/performance/wiki/Pbound.