Michael A. G. Aivazis |
 |
|
|
| Member of the Professional Staff |
| Center for Advanced Computing Research |
| California Institute of Technology, MC 158-79 |
| Pasadena, California 91125 |
| +1 (626) 395-3424 |
| aivazis@caltech.edu |
Education |
|
 |
Ph.D. in Theoretical Particle Physics, Illinois
Institute of Technology, 1992 |
 |
B.S. in Physics, Illinois Institute of Technology, 1985 |
|
Experience |
|
 |
Member of the Professional Staff, California Institute
of Technology, 2000- |
 |
Staff Scientist, California Institute of Technology, 1998-2000 |
 |
Consultant, Fermi National Accelerator Laboratory, 1997-1998 |
 |
Director of Technology, ParaSoft Corporation, 1995-1997 |
 |
Senior Software Engineer, ParaSoft Corporation, 1994-1995 |
 |
Visiting Assistant Professor of Physics, Southern
Methodist University, 1992-1993 |
|
Research Interests |
|
Computational science, mathematical software, software development tools and
problem-solving environments for high performance computing.
|
Biographical Sketch |
|
Michael Aivazis is currently a Co-PI at the Caltech Center for the Dynamic Response of
Materials, where he is leading the effort to construct and integrate large
scale massively parallel multi-physics simulation codes. His primary
responsibility is the design and implementation of pyre, the Center's
integration platform and problem solving environment. He is also leading the
effort to produce the next generation of solvers to be used by the center,
with focus currently on scalable parallel algorithms for meshing, contact,
fracture and fragmentation.
Previously, he spent a year as a consultant for the Computing Division at Fermi National Accelerator
Laboratory, where he provided mentorship and tools to help
manage the transition form FORTRAN to C++ for the Run II
software development effort.
Prior to that, he was the Director of Technology at ParaSoft Corporation, where
he was responsible for the company's software development
effort. In addition, he co-authored the commercially successful
development tools Insure++ and
CodeWizard. His
work on the latter led to US Pat. 5860011, which was issued on
January of 1999.
He also spent two years at the Physics
Department of the Southern
Methodist University as a Visiting Professor of Physics,
until the closing of the SSC at the end of 1993.
|
Publications |
| Books |
|
 |
Group Theory in Physics: Problems & Solutions, World
Scientific, 1990 |
|
|
| Patents |
|
 |
Method and system for automatically checking
computer source code quality based on rules, US
Pat. 5860011, ParaSoft Corporation, 1999 |
|
|
| Journal articles (reviewed) |
|
 |
Pyre: Building a Virtual Laboratory, in preparation |
 |
Fuego: A Toolkit for Chemical Kinetics Applications,
in preparation |
 |
C++ Defensive Programming: Debugging
Information, C++ Report, to be published (with W. Hicken) |
 |
C++ Defensive Programming: Execution
Firewalls, C++ Report, Vol. 11 No. 7, 1999 (with W. Hicken) |
 |
Leptoproduction of Heavy Quarks II -- A Unified QCD
Formulation of Charged and Neutral Current Processes from
Fixed Target to Collider Energies, Phys. Rev. D50,
3102-3118, 1994 (with J. C. Collins, F. I. Olness, and W. K. Tung) |
 |
Leptoproduction of Heavy Quarks I -- General Formalism and
Kinematics of Charged Current and Neutral Current Production
Processes, Phys. Rev. D50, 3085-3101, 1994 (with J. C. Collins,
F. I. Olness, and W. K. Tung) |
 |
Heavy Quark Production in Deeply Inelastic Scattering,
UMI-93-01974-mc, IIT, Chicago, 1992 |
 |
QCD Formulation of Charm Production in Deep Inelastic Scattering
and the Sea Quark - Gluon Dichotomy, Phys. Rev. Lett. 65,
2339-2342, 1990 (with F. I. Olness and W. K. Tung) |
|
|
| Conference Proceedings |
|
 |
A Virtual Test Facility for the Simulation of Dynamic Response of
Materials, Los Alamos Computer Science Institute Symposium, 2001
(with J. Cummings, S. Mauch, D. Meiron, R. Radovitzky and
R. Samtaney) |
 |
Making Remote Tools Available for Visualization of Large Data
Sets, Visualization Development Environments, 2000 (with S. Lombeyda
and M. Rajan) |
 |
Effective Unit Testing, Quality Week, 2000 |
 |
Extending and Embedding Python, Software Development West, 2000 |
 |
Configuring the Development Process, Linux World, 2000 |
 |
A Modular, Object Oriented Software Package for Chemical Kinetics
and Chemical Thermodynamics, SIAM Conference of Numerical Combustion,
2000 (with D. Goodwin) |
 |
Software Management at Fermilab, CHEP Proceedings, 1998 (with
D. Adams et al) |
 |
Defensive Programming, Software Development East, 1997 |
 |
Defensive Programming, Software Development West, 1997 |
|
|
| Other Articles |
|
 |
The Virtual Test Facility, Computing in Science and
Engineering (with W. Goddard, D. Meiron, M. Ortiz, J. Shepherd)
|
 |
Understanding the 64-bit Revolution, Software Development Magazine
|
|
|
| Software |
|
 |
pyre: a problem solving environment and integration platform
for massively parallel computational engines. Written in Python,
pyre is a very extensible, object-oriented framework for
specifying and staging complex, multi-physics simulations. It also
includes support for remote monitoring and visualization. |
 |
fuego: an object oriented toolkit for chemical kinetics
applications. fuego converts descriptions of chemical kinetics
mechanisms from a variety of formats to an in-memory object database that
contains a faithful and complete representation of the input. Supported
input formats include the de facto standard chemkin format and
CKML, an XML based format that is readily extensible. fuego
applications traverse the resulting graph of objects in order to perform
customized tasks. Example applications distributed with the package
include a full set of converters between the supported file formats, an
interactive thermodynamics and kinetics calculator and a source code
generator that produces optimal chemkin link-compatible source code. The
latter can be linked with any chemkin compatible driver and results in
significant performance improvements. fuego is written in
Python. |
 |
blade: a generalization of Glade, the popular user interface
builder for Gtk+. It provides support
for converting user interface specifications into either source code or
live widgets for a variety of widget sets. Supported input formats
currently include a growing subset of XUL and PML, a home grown
language based on XML. Target toolkits currently include Gtk+ and Gtk+ with Gnome
extensions. |
 |
srcmill: a general purpose source code generator that is used
by many of the other software packages mentioned here. It supports most of
the common types of source files, such as C, C++, FORTRAN, HTML, XML, and
a variety of shell and scripting languages, including Java and Python. It
is still very primitive and cannot do much more than produce skeleton
files. The exciting idea that keeps it alive is that modern object
oriented languages support concepts with significant overlap and it should
be possible to start from abstract descriptions of designs, such as design
patterns and even UML
specifications represented in XMI documents, and
produce industrial quality source code for a variety of target
languages. It is written in Python. |
 |
merlin: a make replacement inspired by ten years of
frustration while fighting make and autoconfig to build
software portably and reliably. It uses XML-based descriptions for all
static information, from compiler options to the set of sources that must
be compiled to build a given library, and Python as the language in which
to express the aspects of the build process that require logic. It still
needs a lot of work, so if this interests you, please offer to help. |
 |
pyacis: a set of Python bindings for ACIS, the solid modeler
from Spatial. There is full support
for all geometric primitives, transformations, Euler operations, save and
restore, as well as the generation of surface triangulations for ACIS
models. pyacis is used heavily by the VTF to generate solid models,
as well as to specify boundary conditions on arbitrary surfaces for
Eulerian and Lagrangian solvers. |
 |
pympi: a set of Python bindings for MPI. In adition, the package
includes a set of Python classes that make it possible to access the full
capabilities of MPI starting with and manipulating the single object
world, a wrapper around MPI_COMM_WORLD. This
package is the heart of the parallel capability in the VTF. |
 |
config: a system of makefiles that simplifies program
construction and deployment. config includes support for dozens
of platforms and compilers, including those available at the ASCI
supercomputers, permits easy access to external libraries and tools in a
portable manner, and allows libraries and executables built from the same
sources with different options or different compilers to co-exist. Other
features include automatic dependency generation and sensible support for
mixed language programming. |
 |
CodeWizard:
a source code analysis tool for C and C++ programs that
detects certain types of bugs and dangerous coding
practices. The latter can be common industry knowledge,
such as a subset of Scott Meyer's rules from the book
"Effective C++", as well as specified by the user. |
 |
Insure++: a source
code instrumentation tool that automatically detects and pin-points a wide
variety of bugs, including elusive memory leaks and memory corruption
errors. |
|