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
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
as well as a new MPI Forum Web site.
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
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.
The IBM SPx is the major computational resource of the
Center for Computational Science and Technology.
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
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
provides a common, high-performance interface to both sequential and parallel
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.
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
I've put some information together on
MOO programming examples.
There is also a Clue Sheet for navigating and
manipulating the MUD. Collaboration 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.
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
Papers and Reports
Other interesting sites
Mathematics and Computer Science Division
Argonne National Laboratory
9700 S Cass Ave
Argonne, IL 60439