The goal of our research is to build intelligent software systems for automatically enhancing the efficiency and survivability of programs, thereby enabling applications programmers to focus on high-level algorithmic issues. We work in several areas, ranging from restructuring and optimizing compilers to protocols for fault-tolerant computing systems.
Our group is best known for its contributions to automatic parallelism and locality enhancement of programs. These advances are used in software products from Intel, IBM, Hewlett-Packard, Silicon Graphics and Digital Equipment Corporation, among other companies.
We are currently working in the following areas:
- Parallelism for Multicore systems: We are investigating the compiler techniques, runtime support and programming models which will be necessary to make parallel programming more accessible, to take advantage of the increasing prevalence of multicore systems.
- Self-optimizing high-performance library generation: We want to understand how model-driven optimization and AI-based search techniques can be combined in systems for producing self-tuned high-performance libraries.
- Automatic application-level fault tolerance: We are building a pre-compiler and a runtime coordination layer for implementing non-blocking, coordinated, application-level check-pointing of MPI/OpenMP programs.
- Web-services for grid-computing: We are implementing a coupled thermal/mechanical/fluid simulation system that uses web-services based on SOAP and XML for communication and co-ordination.
Recent Publications
- Optimistic Parallelism Benefits From Data Partitioning Architectural Support for Programming Languages and Operating Systems (ASPLOS), March 2008
- Optimistic Parallelism Requires Abstractions Programming Languages Design and Implementation (PLDI), June 2007
- An Experimental Comparison of Cache-oblivious and Cache-aware Programs 19th Annual ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), 2007
- Experimental Evaluation of Application-Level Checkpointing for OpenMP Programs 20th ACM International Conference on Supercomputing (ICS), 2006
- A Distributed System Based on Web-services for Computational Science Simulations 20th ACM International Conference on Supercomputing (ICS), 2006
- Mobile MPI Programs in Computational Grids ACM Symposium on Principles and Practices of Parallel Programming (PPoPP), 2006
- Using Transactions in Delaunay Mesh Generation Workshop on Transactional Memory Workloads (WTW), 2006
- A Language for the Compact Representation of Multiple Program Versions 18th International Workshop on Languages and Compilers for Parallel Computing (LCPC), 2005
- Analytical Models and Empirical Search: A Hybrid Approach to Code Optimization 18th International Workshop on Languages and Compilers for Parallel Computing (LCPC), 2005
- Automatic Measurement of Instruction Cache Capacity 18th International Workshop on Languages and Compilers for Parallel Computing (LCPC), 2005





