Home
Projects
Software
Bio
Books
Papers
Committees
Presentations

Projects

My 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 Computing

One 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:
  1. Developing standards for parallel computing that can be efficiently and widely implemented. This work has focused on the Message Passing Interface (MPI) standard and a freely-available implementation of the MPI standard, MPICH.
  2. Developing tools to understand and improve the performance and correctness of parallel programs.
  3. Innovative methods for parallelism that will match radical changes in computer architecture.
Each of these is described in more detail below.

BlueGene/L

BlueGene/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.

MPI

The 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.
  • MPI-2 Errata
  • MPI-1.1 Errata (also available as HTML).
  • MPICH

    For 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.
  • MPICH-2, the current project to implement all of the MPI-1 and MPI-2 standards.
  • MPICH-1, the original MPICH implementation of MPI-1.
  • Parallel I/O

    ROMIO is an implementation of the MPI-IO part of the MPI-2 standard.

    Performance Visualization and Tuning

    Jumpshot 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 Models

    The 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 Methods

    PETSc

    PETSc is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations.

    SciDAC

    SciDAC 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 include
  • Terascale Optimal PDE Solvers (TOPS)
  • Terascale Simulation Tools and Technologies (TSTT)
  • Performance Evaluation Research Center (PERC)
  • Center for Component Technology for Terascale Simulation Software
  • Scalable Systems Software
  • Scientific Data Management
  • Other Projects

    Other projects and links are described here. These include tools for managing and automating documentation and information on my prefered laptop setup.

    Open Projects

    Open projects describes some projects that I am interested in pursuing.
    MCS Division Argonne National Laboratory University of Chicago