Michael A. G. Aivazis

bluerule.gif (857 bytes)

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.