| 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.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:
BlueGene/LBlueGene/L is a new 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 is installing a single rack system and is beginning a performance evaluation project. Argonne has also organized a BlueGene Consortium for those interested in working with this new 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. We 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. NCSA Alliance Performance Team is an "expedition" to higher levels of scalable performance. I organize and coordinate this effort which is part of the NCSA Alliance. Information on the 2001-2002 performance team activites is archived here. Programming ModelsThe Programming Models for Scalable Parallel Computing project seeks to develop short, mid, and long-term solutions to the problem of programming massively parallel computers.Numerical MethodsPETScPETSc is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations.SciDACSciDAC stands for "Scientific Discovery through Advanced Computing" and is a major effort in computational science undertaken by the US Department of Energy (DOE). I am directly involved in one SciDAC project, Scientific Data Management. SciDAC Infrastructure projects that my division is involved in includeOther 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. |
| MCS Division | Argonne National Laboratory | University of Chicago |