**Aztec** is a software library for use in iteratively solving
large, sparse linear systems of equations, **Ax** = **b**, such
as those which arise from applications which model complex physics
problems using differential equations (e.g., finite-element or
finite-difference methods). It is the result of over six years of
research into *robust*, *efficient* and *accurate* algorithms
for the solution of linear systems. Further, **Aztec **is an
iterative library that greatly simplifies the parallelization process
when solving the linear systems by providing tools for the parallel
implementation of modeling applications who would use **Aztec** as
their linear solver. Because of the complex nature of the physics and
geometries found in real-world industrially relevant problems, accurate
modeling of these applications requires *robust solution*
algorithms such as those found in **Aztec**. Further, as the simulation
is required to more accurately model nature, the size of these problems
increases quickly. When we began work on **Aztec**, a large value of **n**
was considered to be several hundred-thousand. Now, we are working on *solving
problems with several hundred-million unknowns* (**n** ~ 10^8). This
rapid advance in the size of problems engineers and scientists desire
to model has come about mainly because of the availability of large,
massively parallel (MP), supercomputers and the leading edge tools,
such as **Aztec**, which allow people to effectively use them.

As stated, **Aztec** uses *iterative* methods for solving
systems of equations as opposed to a *direct* methods which means
that we begin with some guess for the solution and gradually improve
this guess until some criteria of convergence has been achieved.
Iterative methods are the solution strategy of choice on MP computers
because of the manner in which they scale with the problem size and the
fact that they rely on a small set of kernel algorithms which can be
effectively implemented on these platforms. How one determines the
``update'' which improves the ``guess'' identifies the method or class
of methods. **Aztec** utilizes techniques known as Krylov methods
which are among the most robust iterative solution methods for linear
systems. **Aztec** employs these techniques on matrices (**A**)
which may have a *completely unstructured* sparsity pattern. This
complicates the implementation greatly because we can no longer relay
on any regularity pattern within our data structure for storing **A**.
This may have an especially negative impact on performance but, through the
use of *novel data structures and algorithms*, we have achieved *outstanding
performance* on a variety of computer architectures.

Another aspect of iterative solvers is preconditioning. The idea is
basically that we may be able to modify the original system of
equations in a manner which will make the new system ``easier'' to solve.
Making the new system easier to solve will manifest itself by improving
the convergence properties of the preconditioned system. However, the
total time required to achieve the preconditioned solution, including
the time needed to solve modify the original system, must be less than
that needed to solve the original system if the preconditioning is to
be judged worthwhile. In practice, effective preconditioners are a must
and often the only way to achieve solutions, period. Within **Aztec**
we have implemented a suite of *leading-edge preconditioning* schemes
which not only ensure the robustness of our solution algorithms but actually *accelerate*
the solution convergence times.

These attributes - efficient iterative solvers, unique data structures
and their implementation, robust preconditioners and ease of parallel implementation
- combine to make **Aztec** a *significant technological
breakthrough* in the arena of scientific computing. **Aztec**
has allowed Sandia to solve scientific computing problems of
importance to DOE and U.S. Industry which were previously unsolvable by
any other means and helped to make MP computing the standard platform
for large scale simulation and design codes. Further, we have provided
this tool to industry who are now using it in their own scientific
computing applications.

There are a number of current state-of-the-art engineering and
scientific simulation codes which rely on **Aztec**. All of these
codes require robust and efficient solution methods to solve
challenging problems that are tractable only on large MP machines. The
earliest and most publicized application code using **Aztec** is the
chemically reacting flow code **MPSalsa** developed at Sandia National
Laboratories. **MPSalsa** is a leading-edge simulation code which
has been designed to analyze and optimize the operation and design of
chemical vapor deposition (CVD) reactors for growing thin semiconductor
films. CVD is a backbone process in the over $60 Billion semiconductor
industry. The **Aztec** library forms a critical kernel of the **MPSalsa**
solution strategy. Using the MP iterative solvers from **Aztec**, **MPSalsa**
has been able to produce a significant decrease in execution time for
simulation of CVD reactors. This decrease in turnaround time has
enabled **MPSalsa** researchers to use computational CVD simulations
to produce an optimal design for an actual prototype CVD reactor.

Other principle applications that use **Aztec** include an
electromagnetics simulation code (EMMA), used for defense calculations,
as well as a free surface -- moving mesh, incompressible flow code
(GOMA). This code is used by Sandia and five members of a national
consortium to model important film coating and injection mold filling
manufacturing problems. It is also a key kernel to a continuum plasma
modeling code under development at Sandia which will have a wide
variety of defense and industrial applications.

As described earlier there have been over 35 external research and test-and-evaluation
licenses executed for **Aztec**. In addition there are a number of
governmental laboratories and establishments that have obtained the rights
to use **Aztec**. Further, there are now several companies that are interested
in obtaining commercial licenses for **Aztec**. A brief list of uses includes
ground water flow with toxic waste transport modeling, heat transfer modeling
for manufacturing process, nuclear material non-proliferation studies, cardiac
defibrillation simulations, compressible flow calculations for hyper-sonic
vehicles, automotive tire manufacturing design calculations, fire simulations,
etc.

**Aztec**, by its very nature as an iterative solver library, has a
nearly limitless set of potential application and uses. As described
above **Aztec** has been designed as a general library for
unstructured sparse-matrix problems produced from popular approximation
methods such as finite-element and finite-difference methods. These
approximation methods are widely used in many universities, industrial
research centers, government laboratories and industrial design
centers. The fields of potential applications that use such methods
range from industrial manufacturing design, chemical process simulation,
automotive and aircraft design, architectural design, weather prediction
and climate modeling, biomedical engineering, geophysical and astrophysical
simulations, petroleum engineering, basic scientific research, etc.
Since the **Aztec** library provides source code to the licensing
parties these customers can modify **Aztec** as they require and so
there is really no limit to the potential uses for such a flexible
tool. This is precisely the reason that DOE and Sandia has put
considerable investment into the**Aztec** library - it has and will
continue to make a significant impact on leading-edge engineering and
scientific modeling.

Back to Aztec
HomeLast Updated: 19 August 1997 WWW Administration (www-admin@www.cs.sandia.gov) Michael A. Heroux (mheroux at cs.sandia.gov) |