| Home
Projects Software Bio Books Papers Committees Presentations |
ProjectsMy interests are in high performance scientific computing, with particular emphasis on parallel computing. My major projects involve developing the message passing inteface (MPI) and hierarchical numerical methods for the numerical solution of partial differential equations. A list of undergraduate research projects is available; contact me if you are interested.Parallel ComputingOne of the biggest challenges in parallel computing for scientific computing is efficiently and correctly expressing parallel programs. My work in this area has three main directions:
Blue WatersBlue Waters will be an Petascale computing system, funded by that National Science Foundation and installed at NCSA. Along with Marc Snir, I am providing software strategy, oversight, and direction.Great Lakes Consortium for Petascale Computation is a collaboration on software, applications, and technologies for petascale computing that is associated with the Blue Waters project. BlueGene/LBlueGene is computer developed by IBM that provides great computational power in a small package; a single rack provides a peak performance of 5.6 TFlops. Argonne National Laboratory has installed a single rack BG/L system and is installing a much larger, second-generation, BG/P system. I was involved with the project to acquire both the BG/L and later BG/P systems, with an emphasis on software, performance modeling, and petascale algorithms. Argonne has also organized a BlueGene Consortium for those interested in working with this architecture.MPIThe Message Passing Interface (MPI) is a standard for parallel computing developed by the high performance computing community. The standard is available at the MPI Forum web site. I was involved in the development of both the MPI-1 and MPI-2 standards, and I currently maintain the discussion web site for the clarifications to the MPI-2 standard.MPICHFor a standard to succeed, there must be an effective implementation of the standard. For this reason, our group developed a portable, efficient implementation of the MPI standard called MPICH. Along with my collaborators at Argonne, I continue to use this project to perform research into implementation issues for MPI, such as how to make best use of emerging high-performance networks.Parallel I/OROMIO is an implementation of the MPI-IO part of the MPI-2 standard.Performance Visualization and TuningJumpshot is a Java-based program that provides a graphical representation of timelines representing the state of a parallel (multiprocess, multithreaded, or both) program. Jumpshot reads log files that can be created with the MPE tools provided with the MPICH implementation of MPI.FPMPI is a tool for collecting data on the performance of MPI programs. FPMPI collects detailed summary data about MPI usage, along with some information about the other resources used by a parallel program. FPMPI tries to collect just the right amount of data: rather than collect information either on each separate call (too much data) or combining all calls to a particular routine (too little data), FPMPI collects enough data to understand the overall communication pattern, including the different contributions by short and long message communication. FPMPI complements the abilities of Jumpshot. Numerical MethodsPETScPETSc is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations.Other ProjectsOther projects and links are described here. These include tools for managing and automating documentation and information on my prefered laptop setup.Open ProjectsOpen projects describes some projects that I am interested in pursuing. |
| Computer Science Department | University of Illinois Urbana-Champaign |