Brief Description
Over the last few decades,
developing efficient iterative methods for solving
discretized partial differential equations (PDEs) has been
a topic of intensive research. Though these efforts
have yielded many mathematically optimal solvers, such as
the multigrid method, the unfortunate reality is that
multigrid methods have not been used much in practical
applications. This marked gap between theory and practice
is mainly due to the fragility of traditional multigrid
methodology and the complexity of its implementation. This
paper aims to develop theories and techniques that will
narrow this gap. Specifically, its aim is to
develop mathematically optimal solvers that are robust and
easy to use for a variety of problems in practice.
One central mathematical technique for reaching this
goal is a general framework called the Fast Auxiliary Space
Preconditioning (FASP) method.
FASP methodology represents a class of methods that
- transform a complicated system into a sequence of
simpler systems by using auxiliary spaces;
- produces an efficient and robust preconditioner (to
be used with Krylov space methods such as CG and GMRes)
in terms of efficient solvers for these
simpler systems.
By carefully making use of the
special features of each problem, the FASP method can
be efficiently applied to a large class of commonly used
partial differential equations including equations of
Poisson, diffusion-convection-reaction, linear elasticity,
Stokes, Brinkman, Navier–Stokes, complex fluids models, and
magnetohydrodynamics.
Fast Poisson Solver:
Algebraic Multigrid (AMG) Method
It is not difficult to notice
the importance of the role a flexible and powerful
Poisson solver in this project. We are building an in-house
algebraic-type linear system solvers.
AMG method:
One main drawback of the geometric multigrid methods above is
that they depends on grid hierarchy and problem dependent. As
there has been an increasing demand of efficient black-box
solvers, and the increasing geometrical complexity limits the
utilization of geometrical multigrid methods, the development of
algebraic multigrid (AMG) algorithms is one of the most active
fields in numerical analysis nowadays. There is no method known
able to deal with all practical problems and the development is
expected to continue for the next years, while the efficiency
and robustness will be two important issues to be considered.
AMG method is a hierarchical and
matrix-based approach which allows an efficient solution to the
large sparse unstructured linear systems of equations. Since A.
Brandt’s first multigrid-like approach in early 1980s, which
could be directly applied to algebraic equations of certain
types without any pre-defined hierarchy, there have been several
ways to realize concrete AMG algorithms.
For an AMG algorithm, the key step
is establishing inter-grid operators. By choosing the inter-grid
operators and using the Galerkin approach, a subspace of the
current level vector space can be approximated decently. The
point is that such a subspace should be linked to the
performance of relaxation process.
There have been several ways to
distinguish the “slow-to-reduce” error and to establish the
inter-grid operators. For certain matrices with specific
properties, the performance of the relaxation process can be
predicted with respect to the entries of the matrix. Therefore,
the inter-grid operators can be given depending on the matrix
directly. For example, the famous Ruge-Stuben algorithm is such
an example that works well for M-matrices.
AMG method in FASP package
We have implemented three
different AMG methods in our FASP package
- Classical AMG (C-AMG)
- Smoothed Aggregation AMG (SA-AMG)
- Unsmoothed Aggregation AMG (UA-AMG)
Here are some preliminary test results:
Test Results
for 2D Poisson in a unit square discretized by standard 5-point
stencil
|
Iter.
|
Setup
|
Solve
|
Total
|
Grid Cplx.
|
Oper. Cplx.
|
C-AMG
|
5
|
4.40
|
2.87
|
7.27
|
1.67
|
2.20
|
SA-AMG
|
9
|
3.08
|
3.57
|
6.65
|
1.16
|
1.43
|
UA-AMG
|
14
|
0.78
|
5.53
|
6.31
|
1.14
|
1.20
|
Notation:
- Iter.: number of iterations
- Setup: setup time in sceonds
- Solve: solve time in sceonds
- Total: total CPU time in sceonds
- Grid. Cplx.: grid complexity
- Oper. Cplx. operator complexity
Note:
- Relative residual less than 1.0e-6
- Intel Core 2 Duo 2.4 GHz, 8GB Ram, gcc-4.4, -O3
AMG method on GPU
One of our ongoing work is
parallel AMG method on GPU. In general, a good parallel AMG method
that suits GPU architecture:
- regular sparsity pattern on each level
- low complexity
- low setup cost
- fine-grain parallelism
- take advantage of hierarchical GPU memory
structure
We have implemented UA-AMG method on GPU based on NVIDIA CUDA
environment since UA-AMG suits the above requirements. Here are
some preliminary test results:
Test Results
for 2D Poisson in a unit square discretized by standard 5-point
stencil
Size
|
Iter
|
Setup
|
Solve
|
Total
|
Grid. Cplx.
|
Oper. Cplx.
|
1
Million
|
19
|
0.13
|
0.47
|
0.60
|
1.32
|
1.31
|
4
Million
|
19
|
0.62
|
2.01
|
2.63
|
1.32
|
1.31
|
Notation:
- Size: size of the problem
- Iter.: number of iterations
- Setup: setup time in sceonds
- Solve: solve time in sceonds
- Total: total CPU time in sceonds
- Grid. Cplx.: grid complexity
- Oper. Cplx. operator complexity
Note:
- Relative residual less than 1.0e-6
- Double Precision
- NVIDIA Tesla C2070, nvcc, CUDA release 4.0, V0.2.1221
FASP package
Here
is more about our FASP package.