
Book contents
- Frontmatter
- Contents
- Preface
- Acknowledgments
- 1 Scientific Computing and Simulation Science
- 2 Basic Concepts and Tools
- 3 Approximation
- 4 Roots and Integrals
- 5 Explicit Discretizations
- 6 Implicit Discretizations
- 7 Relaxation: Discretization and Solvers
- 8 Propagation: Numerical Diffusion and Dispersion
- 9 Fast Linear Solvers
- 10 Fast Eigensolvers
- A C++ Basics
- B MPI Basics
- Bibliography
- Index
9 - Fast Linear Solvers
Published online by Cambridge University Press: 05 October 2013
- Frontmatter
- Contents
- Preface
- Acknowledgments
- 1 Scientific Computing and Simulation Science
- 2 Basic Concepts and Tools
- 3 Approximation
- 4 Roots and Integrals
- 5 Explicit Discretizations
- 6 Implicit Discretizations
- 7 Relaxation: Discretization and Solvers
- 8 Propagation: Numerical Diffusion and Dispersion
- 9 Fast Linear Solvers
- 10 Fast Eigensolvers
- A C++ Basics
- B MPI Basics
- Bibliography
- Index
Summary
We have already discussed how to solve tridiagonal linear systems of equations using direct solvers (the Thomas algorithm) in Chapter 6 and some iterative solvers (Jacobi, Gauss-Seidel, SOR, and multigrid) in Chapter 7. We have also discussed solutions of nonlinear and linear systems and have introduced the conjugate gradient method in Chapter 4. In the current chapter we revisit this subject and present general algorithms for the direct and iterative solution of large linear systems. We start with the classical Gaussian elimination (which is a fast solver) and then proceed with more sophisticated solvers and preconditioners for symmetric and nonsymmetric systems.
In parallel computing, we introduce the broadcasting command MPI_Bcast and demonstrate its usefulness in the context of Gaussian elimination. In addition, we reiterate the use of MPI_Send, MPI_Recv, MPI_Allgather, and MPI_Allreduce through example implementations of algorithms presented in this chapter.
GAUSSIAN ELIMINATION
Gaussian elimination is one of the most effective ways to solve the linear system
Ax = b.
The Thomas algorithm (see Section 6.1.4) is a special case of Gaussian elimination for tridiagonal systems.
- Type
- Chapter
- Information
- Parallel Scientific Computing in C++ and MPIA Seamless Approach to Parallel Algorithms and their Implementation, pp. 455 - 537Publisher: Cambridge University PressPrint publication year: 2003