Parallel Jacobi Algorithm11
Parallel Jacobi Algorithm11
Parallel Jacobi Algorithm11
ALGORITHM
Rayan Alsemmeri
Amseena Mansoor
LINEAR SYSTEMS
Jacobi method is used to solve linear systems of the
form Ax=b, where A is the square and invertible.
Recall that if A is invertible there is unique solution
METHODS SOLVE LINEAR SYSTEMS
Direct solvers
Gaussian elimination
LU decomposition
Iterative solvers
Stationary iterative solvers
Jacobi
Gauss-Seidel
Successive over-relaxation
-
ITERATIVE METHODS
Starts with an initial approximation for the solution
vector (x0)
At each iteration algorithm updates the x vector by
using the sytem Ax=b
During the iterations coefficient A, matrix is not
changed so sparsity is preserved
Each iteration involves a matrix-vector product
If A is sparse this product is efficiently done
Jacobi Algorithm
The first iterative technique is called the Jacobi method. This
method makes two assumptions: First, the system given by
Continue the iterations until two successive approximations are identical when rounded to
three significant digits.
To begin, write the system in the form
Example of Jacobi
Stopping Criteria
Difference between two consecutive approximations
component wise is less than some tolerance
There exist other ways of computing distance between
two vectors, using norms
Jacobi iteration
x10
a11 x1 a12 x2 a1n xn b1 0
a21x1 a22 x2 a2 n xn b2 x2
x
0
0
an1 x1 an 2 x2 ann xn bn xn
1
x
1
n (bn an1 x1 an 2 x2 ann1 xn 1 )
0 0 0
ann
SEQUENTIAL JACOBI ALGORITHM
Ax b D is diagonal matrix
L is lower triangular matrix
A D L U U is upper triangular
matrix
k 1 1
x D (b ( L U ) x ) k
Pseudo Code for Jacobi
X-new //new approximation
X-old//previous approximation
Tol//given(specified by the number)
Counter=0//counts number of iterations
Iter-max//maximum number of iterations(specified by problem)
While(diff>tol &&counter<iter_max)
{
X_new=D-1(b-(L+u)X_old);
Diff=X_new-X_old;
X_old=X_new;
Counter=counter+1;
}
Does Jacobi Always Converge?
As k,under what conditions on A the sequence {xk}
converges to the solution vector
For the same A matrix, one method may converge
while the other may diverge
Example of Divergence
How to guarantee the convergence
The coefficient matrix of A should be strictly
diagonally dominant matrix
If the coefficient matrix of A is not strictly diagonally
dominant matrix we can exchange the rows to keep it
strictly diagonally dominant
+……. 𝑎 11 𝑎 12 𝑎 13
𝑎 21 𝑎 22 𝑎 23
+……. 𝑎 31 𝑎 32 𝑎 33
+…….
Theorem
If A is strictly diagonally dominant, then the system of
linear equations given by, has a unique solution to
which the Jacobi method will converge for any initial
approximation
Parallel Implementations of Jacobi
Algorithm
x k 1 D 1 (b ( L U ) x k )
Xk+1 D-1 b L+U XK
-
Parallel Jacobi Algorithm
Row wise Matrix Vector multiplication
Shared-memory parallelization very straightforward
Consider distributed memory machine using MPI
Row wise with shared memory
Xk+1 D-1 b L+U XK
-
Pseudo code of Jacobi distributed memory
systems
1. Distribute D-1,b,L+U row wise at each node
2. Distribute initial guess X0 to all nodes
3. Perform Jacobi iterative at each node to compute
corresponding parts
4. Broadcast all parts of new approximation to the
master process(Let us say p=0)
5. Distribute new approximation to all nodes row wise
6. Repeat from 3
Complexity