Bill Gropp

I am a Senior Computer Scientist in the Mathematics and Computer Science Division of Argonne National Laboratory.

This page contains pointers to a number of different projects that I am involved in, as well as to tools that I use.

My interests are in scientific computing, particularly in algorithms and software for adaptive and parallel methods for partial differential equations. A BibTeX database of some of my publications and reports (in HTML) is available.


PETSc is a library of numerical routines useful for computing approximate solutions of PDEs. It is designed for both parallel and uniprocessor computers, and includes methods for solving both linear and nonlinear systems of equations. PETSc Projects
  • The PETSc Scientific Computing Libraries
  • PETSc Workshop (at ICASE) and PETSc Workshop (at Cornell).
  • MPI

    MPI is the message passing interface standard. I've been involved in this from the beginning and am one of the authors of a very popular implementation, MPICH. The MPI-2 standard has been released; it is available from our MPI page, as well as a new MPI Forum Web site.
  • Pointer to assorted MPI Documents. MPI Projects
  • The ANL/MSU portable MPI implementation. MPICH Projects
  • Scalable Unix Commands

    Managing large numbers of UNIX systems (such as our IBM SPx) requires special tools. The Scalable Unix Commands are extensions of the venerable Unix commands (like ps and find) that are scalable to 1000's of processors. Unlike the current fad of GUI tools, these have a carefully defined input and output format, allowing you to use them to build arbitrarily complex and sophisticated applications. The Scalable Unix Commands Ptools project.

    IBM SPx

    The IBM SPx is the major computational resource of the Center for Computational Science and Technology. CCST Projects
  • More information on the CCST is avaiable.
  • Pointer to assorted IBM SP2 Documents
  • Those accessing this page from the domain can get display of current SP users from this Java Applet.
  • Scalable I/O

    The Scalable I/O project is a large, multi-agency, multi-institution project to develop scalable I/O solutions for massively parallel computers. I am involved in the Scalable I/O Integration and Testbeds working group as head of the ANL testbed (IBM SPx). More information on ANL's involvement as a testbed is available.

    As part of the Scalable I/O project, we are developing an abstract I/O device. This effort, led by Rajeev Thakur, provides a common, high-performance interface to both sequential and parallel file systems.

    Hypertext tools

    The WEB is a good way to provide information. Generating content (actual information) can be difficult; keeping it up-to-date can be even harder. My approach is to generate different forms of content from a single source. Combined with make, this makes it easier to ensure that content on the WEB is up-to-date.
  • The tohtml program for converting LaTeX documents into HTML.
  • The doctext program for generating documentation directly from programs (in LaTeX, nroff/man, and HTML formats)
  • An experimental program mapnames allows you to automatically replace every occurance of a name with a link to a given URL. Large numbers of names are supported; allowing extensive automatic cross-linking. This has been used in a set of on-line MPI Tutorial Examples to map all MPI routines to their Web documentation.
  • How to make movies
  • How to create hypertext presentations
  • PETSc has support for VRML output. A simple example of PETSc VRML output is available. Output from a 3-D fluid dynamics solver, generated from PETSc, is available. You will need a VRML enabled browser. If you're having trouble, or the image looks bad (all grey or sudden color changes), see VRML Trouble?

    If you don't like VRML, the same tools in PETSc can generate Open Inventor output.

  • Finally, I've imported a large collection of GIF images that may be used with Web pages.
  • Collaboration in the MUD

    A MUD is a text-based collaborative environment. We use then to form virtual conferences inside our division. A MUD can be programmed with MOO, which is a nice programming language practically crippled by the lack of good on-line documentation. One useful item is the ProgrammerTutorial. I've put some information together on MOO programming examples. There is also a Clue Sheet for navigating and manipulating the MUD. Collaboration Projects

    Applications projects

    One of the best ways to gain insight and ideas for new research directions is to work on some applications. I'm involved currently in several multidisiplinary projects; these are built on top of PETSc and MPI.
  • A Numerical Laboratory for Multi-Model Multi-Domain Computational Methods in Aerodynamics and Acoustics
  • Projects

    I keep a list of projects that I am interested in working on but don't have the time to do them myself. Besides, collaborations are more fun. These projects range from simple one hour programming tasks to long term projects.

    Guides and Helpers

    I'm putting together some documentation on using various tools. The first one is
  • Surviving latex2e, a guide to making LaTeX documents when all you have is latex2e and you don't want to re-write everything.
  • Books

  • Using MPI, by William Gropp, Ewing Lusk, and Anthony Skjellum, published by MIT Press, October 1994; ISBN 0-262-57104-8. An errata is available for the book.
  • Domain Decomposition: Parallel Multilevel Methods for Elliptic PDES, by Barry Smith, Petter Bjorstad, and William Gropp, published by Cambridge University Press: Europe- North America, 1996; ISBN 0-521-49589-X.
  • MPI: The Complete Reference - 2nd Edition: Volume 2 - The MPI-2 Extensions , by William Gropp, Steven Huss-Lederman, Andrew Lumsdaine, Ewing Lusk, Bill Nitzberg, William Saphir, and Marc Snir, published by The MIT Press, September, 1998; ISBN 0-262-57123-4.
  • Papers and Reports

    Recent Talks

    Other interesting sites

    Other Addresses

    Mathematics and Computer Science Division
    Argonne National Laboratory
    9700 S Cass Ave
    Argonne, IL 60439

    FAX: 630-252-5986