Monica Garika Chandana Guduru. METHODS TO SOLVE LINEAR SYSTEMS Direct methods Gaussian elimination...
-
Upload
jocelin-york -
Category
Documents
-
view
223 -
download
1
Transcript of Monica Garika Chandana Guduru. METHODS TO SOLVE LINEAR SYSTEMS Direct methods Gaussian elimination...
CONJUGATE GRADIENT METHOD
Monica GarikaChandana Guduru
METHODS TO SOLVE LINEAR SYSTEMSDirect methods Gaussian elimination method LU method for factorization Simplex method of linear programmingIterative method Jacobi method Gauss-Seidel method Multi-grid method Conjugate gradient method
Conjugate Gradient methodThe CG is an algorithm for the numerical solution of particular system of linear equations
Ax=b. Where A is symmetric i.e., A = AT and positive
definite i.e.,
xT * A * x > 0 for all nonzero vectorsIf A is symmetric and positive definite then the
function Q(x) = ยฝ x`Ax โ x`b + c
Conjugate gradient methodConjugate gradient method builds up a
solution x*โฌ Rn
in at most n steps in the absence of
round off errors.Considering round off errors more than n
steps may be needed to get a good approximation of exact solution x*
For sparse matrices a good approximation of exact solution can be achieved in less than n steps in also with round off errors.
In oil reservoir simulation, The number of linear equations corresponds to the number of grids of a reservoirThe unknown vector x is the oil pressure of
reservoirEach element of the vector x is the oil
pressure of a specific grid of the reservoir
Practical Example
Linear System
Square matrixUnknown vector
(what we want to find)Known vector
Matrix Multiplication
Positive Definite Matrix
> 0[ x1 x2 โฆ xn ]
ProcedureFinding the initial guess for solution ๐ฅ0Generates successive approximations to ๐ฅ0Generates residualsSearching directions
x0 = 0, r0 = b, p0 = r0
for k = 1, 2, 3, . . . ฮฑk = (rT
k-1rk-1) / (pTk-1Apk-1) step length
xk = xk-1 + ฮฑk pk-1 approximate solution
rk = rk-1 โ ฮฑk Apk-1 residual
ฮฒk = (rTk rk) / (rT
k-1rk-1) improvement
pk = rk + ฮฒk pk-1 search direction
Conjugate gradient iteration
Iteration of conjugate gradient method is of the form
x(t) = x(t-1) + s(t)d(t) where, x(t) is function of old value of vector x s(t) is scalar step size x
d(t) is direction vector Before first iteration, values of x(0), d(0) and g(0) must be set
Steps to find conjugate gradient methodEvery iteration t calculates x(t) in four steps : Step 1: Compute the gradient g(t) = Ax(t-1) โ b Step 2: Compute direction vector d(t) = - g(t) + [g(t)` g(t) / g(t-1)` g(t-1)] d(t-1) Step 3: Compute step size s(t) = [- d(t)` g(t)]/d(t)โ A d(t)] Step 4: Compute new approximation of x x(t) = x(t-1) + s(t)d(t)
Sequential Algorithm1) ๐ฅ0 = 02) ๐0 := ๐ โ ๐ด๐ฅ03) ๐0 := ๐04) ๐ := 05) ๐พ๐๐๐ฅ := maximum number of iterations to be done6) if ๐ < ๐๐๐๐ฅ then perform 8 to 167) if ๐ = ๐๐๐๐ฅ then exit8) calculate ๐ฃ = ๐ด๐k
9) ฮฑk : = rkT rk/pT
k v
10) ๐ฅk+1:= ๐ฅk + ak pk
11) ๐k+1 := ๐k โ ak v
12) if ๐k+1 is sufficiently small then go to 16
end if13) ๐ฝk :=( r T
k+1 r k+1)/(rTk ๐k)
14) ๐k+1 := ๐k+1 +ฮฒk pk
15) ๐ := ๐ + 116) ๐๐๐ ๐ข๐๐ก = ๐ฅk+1
Complexity analysisTo Identify Data DependenciesTo identify eventual communicationsRequires large number of operationsAs number of equations increases complexity
also increases .
Why To Parallelize?Parallelizing conjugate gradient method is a
way to increase its performanceSaves memory because processors only store
the portions of the rows of a matrix A that contain non-zero elements.
It executes faster because of dividing a matrix into portions
How to parallelize?For example , choose a row-wise block
striped decomposition of A and replicate all vectors
Multiplication of A and vector may be performed without any communication
But all-gather communication is needed to replicate the result vector
Overall time complexity of parallel algorithm is
ฮ(n^2 * w / p + nlogp)
Row wise Block Striped Decomposition of a Symmetrically Banded Matrix
( a) ( b )
Dependency Graph in CG
Algorithm of a Parallel CG on each Computing Worker (cw)1) Receive ๐๐ค๐0,๐๐ค ๐ด,๐๐ค ๐ฅ02) ๐๐ค๐0 =๐๐ค ๐03) ๐ := 04) ๐พ๐๐๐ฅ := maximum number of iterations to be done5) if ๐ < ๐๐๐๐ฅ then perform 8 to 166) if ๐ = ๐๐๐๐ฅ then exit7) ๐ฃ =๐๐ค ๐ด๐๐ค๐๐8) ๐๐ค๐๐ผ๐9) ๐๐ค๐ท๐ผ๐10) Send ๐๐ผ๐,๐ท๐ผ๐11) Receive ๐ผ๐12) ๐ฅ๐+1 = ๐ฅ๐ + ๐ผ๐๐๐13) Compute Partial Result of ๐๐+1: ๐๐+1 =๐๐ โ ๐ผ๐๐ฃ14) Send ๐ฅ๐+1, ๐๐+115) Receive ๐ ๐๐๐๐๐16) if ๐ ๐๐๐๐๐ = ๐ ๐๐๐ข๐ก๐๐๐๐๐๐๐โ๐๐ go to 2317) ๐๐ค๐๐ฝ๐18) ๐๐ค๐ท๐ฝ๐19) Send ๐๐ค๐๐ฝ๐ , ๐๐ค๐ท๐ฝ๐20) Receive ๐ฝ๐21) ๐๐ค๐๐+1 =๐๐ค ๐๐+1 + ๐ฝ๐ ๐๐ค๐๐22) ๐ := ๐ + 123) Result reached
Speedup of Parallel CG on Grid Versus Sequential CG on Intel
Communication and Waiting Time of the Parallel CG on Grid
We consider the difference between f at the solution x and any other vector p:
1)
21
) 21 1
) ( )2 2
1 1simplify) ( )
2 21 1
replace ) ( )2 2
1 1
2 2
t
t
t t
t t
t t t t
t t
i f
ii f
ii i f f
f f
f f
t
t
t t
t t
p p Ap b p c
x x Ax b x c
x p x Ax b x c p Ap b p c
x p x Ax b x p Ap b p
b x p x Ax x Ax p Ap x Ap
x Ax p A
1
2positive-definitess) ( ) 0
t
t
f f
p x Ap
x p A x p
x p
Parallel Computation Designโ Iterations of the conjugate gradient method can be executed only in sequence, so the most advisable approach is to parallelize the computations, that are carried out at each iteration The most time-consuming computations are the
multiplication of matrix A by the vectors x and dโ Additional operations, that have the lower computational complexity order, are different vector processing procedures (inner product, addition and subtraction, multiplying by a scalar).While implementing the parallel conjugate gradient method, it can be used parallel algorithms of matrix-vector multiplication,
Parallel Computation Design
โPureโ Conjugate Gradient Method (Quadratic Case)
0 - Starting at any x0 define d0 = -g0 = b - Q x0 , where gk is the column vector of gradients of the objective function at point f(xk)
1 - Using dk , calculate the new point xk+1 = xk + ak dk , where
2 - Calculate the new conjugate gradient direction dk+1 , according to: dk+1 = - gk+1 + bk dk
where
T a k = -
gk dkdkTQdk
b k = gk+1TQd kdkTQd k
ADVANTAGES Advantages:1) Gradient is always nonzero and linearly
independent of all previous direction vectors.2) Simple formula to determine the new
direction. Only slightly more complicated than steepest descent.
3) Process makes good progress because it is based on gradients.
ADVANTAGESAttractive are the simple formulae for
updating the direction vector.Method is slightly more complicated than
steepest descent, but converges faster.Conjugate gradient method is an Indirect SolverUsed to solve large systemsRequires small amount of memoryIt doesnโt require numerical linear algebra
ConclusionConjugate gradient method is a linear solver
tool which is used in a wide range of engineering and sciences applications.
However, conjugate gradient has a complexity drawback due to the high number of arithmetic operations involved in matrix vector and vector-vector multiplications.
Our implementation reveals that despite the communication cost involved in a parallel CG, a performance improvement compared to a sequential algorithm is still possible.
ReferencesParallel and distributed computing systems by
Dimitri P. Bertsekas, John N.TsitsiklisParallel programming for multicore and cluster
systems by Thomas Rauber,Gudula RungerScientific computing . An introduction with parallel
computing by Gene Golub and James M.OrtegaParallel computing in C with Openmp and mpi by
Michael J.QuinnJonathon Richard Shewchuk, โAn Introduction to
the Conjugate Gradient Method Without the Agonizing Painโ, School of Computer Science, Carnegie Mellon University, Edition 1 1/4