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
- Lonestar: A Suite of Parallel Irregular Programs International Symposium on Performance Analysis of Software and Systems (ISPASS), April, 2009
- How Much Parallelism is There in Irregular Applications? Principles and Practices of Parallel Programming (PPoPP), February, 2009
- Fast Agglomerative Clustering for Rendering Symposium on Interactive Ray Tracing (RT), August, 2008
- On the Scalability of an Automatically Parallelized Irregular Application 21st International Workshop on Languages and Compilers for Parallel Computing (LCPC), July, 2008
- Scheduling Strategies for Optimistic Parallel Execution of Irregular Programs 20th Annual ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), June, 2008
- An Experimental Study of Self-Optimizing Dense Linear Algebra Software Proceedings of IEEE [Invited Paper], 96(5):832-848, May 2008
- 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





