<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Parallel implementation of Conjugate Gradient Linear System Solver was updated. in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/769771#M119</link>
    <description>&lt;DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Hello all,&lt;BR /&gt;&lt;BR /&gt;Parallel implementation of Conjugate Gradient Linear 
System Solver was updated.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;I have corrected a bug so that it works correctly when you useonlya 
asingle thread.&lt;BR /&gt;&lt;BR /&gt;Description:&lt;BR /&gt;&lt;BR /&gt;The Parallel implementation of 
Conjugate Gradient Linear System Solver that &lt;BR /&gt;i programmed here is designed 
to be used to solve large sparse systems of &lt;BR /&gt;linear equations where the 
direct methods can exceed available machine memory &lt;BR /&gt;and/or be extremely 
time-consuming. for example the direct method of the Gauss &lt;BR /&gt;algorithm takes 
O(n^2) in the back substitution process and is dominated by &lt;/DIV&gt;
&lt;DIV&gt;the O(n^3)forward elimination process, that means, if for example an 
operation &lt;/DIV&gt;
&lt;DIV&gt;takes 10^-9 second and we have 1000 equations , the elimination process in 
&lt;/DIV&gt;
&lt;DIV&gt;the Gauss algorithm will takes 0.7 second, but if we have 10000 equations 
in the &lt;/DIV&gt;
&lt;DIV&gt;system , the elimination process in the Gauss algorithm will take 11 
minutes !. &lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;This is why i have develloped for you the Parallel implementation of 
Conjugate &lt;/DIV&gt;
&lt;DIV&gt;Gradient Linear System Solver in Object Pascal, that is very 
fast.&lt;BR /&gt;&lt;BR /&gt;You have only one method to use that is Solve()&lt;BR /&gt;&lt;BR /&gt;function 
TParallelConjugateGradient.Solve(var A: arrarrext;var 
B,X:VECT;var&lt;BR /&gt;RSQ:DOUBLE;nbr_iter:integer;show_iter:boolean):boolean;&lt;BR /&gt;&lt;BR /&gt;The 
system: A*x = b&lt;BR /&gt;&lt;BR /&gt;The important parameters in the Solve() method 
are:&lt;BR /&gt;&lt;BR /&gt;A is the matrix , B is the b vector, X the initial vector 
x,&lt;BR /&gt;&lt;BR /&gt;nbr_iter is the number of iterations that you want&lt;BR /&gt;&lt;BR /&gt;and 
show_iter to show the number of iteration on the screen.&lt;BR /&gt;&lt;BR /&gt;RSQ is the sum 
of the squares of the components of the residual vector&lt;BR /&gt;A.x - b.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I 
have got over 3X scalability on a quad core.&lt;BR /&gt;&lt;BR /&gt;The Conjugate Gradient 
Method is the most prominent iterative method for&lt;BR /&gt;solving sparse systems of 
linear equations. Unfortunately, many textbook &lt;BR /&gt;treatments of the topic are 
written with neither illustrations nor intuition, &lt;/DIV&gt;
&lt;DIV&gt;and their victims can be found to this day babbling senselessly in the 
corners &lt;/DIV&gt;
&lt;DIV&gt;of dusty libraries. For this reason, a deep, geometric understanding of the 
&lt;/DIV&gt;
&lt;DIV&gt;method has been reserved for the elite brilliant few who have painstakingly 
&lt;/DIV&gt;
&lt;DIV&gt;decoded the mumblings of their forebears. Conjugate gradient is the most 
&lt;/DIV&gt;
&lt;DIV&gt;popular iterative method for solving large systems of linear equations. CG 
is&lt;BR /&gt;effective for systems of the form A.x = b where x is an unknown vector, b 
is &lt;BR /&gt;a known vector, A is a known square, symmetric, positive-definite (or 
&lt;BR /&gt;positive-indefinite) matrix.These systems arise in many important settings, 
&lt;/DIV&gt;
&lt;DIV&gt;such as finite difference and finite element methods for solving partial 
differential &lt;/DIV&gt;
&lt;DIV&gt;equations, structural analysis, circuit analysis, and math 
homework&lt;BR /&gt;&lt;BR /&gt;The Conjugate gradient method can also be applied to non-linear 
problems, &lt;BR /&gt;but with much less success since the non-linear functions have 
multiple &lt;BR /&gt;minimums. The Conjugate gradient method will indeed find a minimum 
of &lt;/DIV&gt;
&lt;DIV&gt;such a nonlinear function, but it is in no way guaranteed to be a global 
minimum, &lt;/DIV&gt;
&lt;DIV&gt;or the minimum that is desired.&lt;BR /&gt;&lt;BR /&gt;But the conjugate gradient method is 
great iterative method for solving &lt;BR /&gt;large,sparse linear systems with a 
symmetric, positive, definite matrix.&lt;BR /&gt;&lt;BR /&gt;In the method of conjugate 
gradients the residuals are not used as search &lt;BR /&gt;directions, as in the 
steepest decent method, cause searching can require a &lt;/DIV&gt;
&lt;DIV&gt;large number of iterations as the residuals zig zag towards the minimum 
value for &lt;BR /&gt;ill-conditioned matrices. But instead conjugate gradient method 
uses the residuals&lt;/DIV&gt;
&lt;DIV&gt;as a basis to form conjugate search directions . In this manner, the 
conjugated &lt;/DIV&gt;
&lt;DIV&gt;gradients (residuals) form a basis of search directions to minimize the 
quadratic &lt;/DIV&gt;
&lt;DIV&gt;function f(x)=1/2*Transpose(x)*A*x + Transpose(b)*x and to achieve faster 
&lt;/DIV&gt;
&lt;DIV&gt;speed and result of dim(N) convergence.&lt;BR /&gt;&lt;BR /&gt;Jacobi serial complexity is 
O(N^2) and Conjugate gradient serial complexity &lt;BR /&gt;is O(N^3/2). &lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Please look at the test.pas example inside the zip file, compile and 
execute &lt;BR /&gt;it...&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;You can download Parallel implementation of 
Conjugate Gradient Linear &lt;BR /&gt;System Solver from:&lt;BR /&gt;&lt;BR /&gt;&lt;A&gt;http://pages.videotron.com/aminer&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you,&lt;BR /&gt;Amine 
Moulay Ramdane.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Fri, 10 Aug 2012 01:09:12 GMT</pubDate>
    <dc:creator>aminer10</dc:creator>
    <dc:date>2012-08-10T01:09:12Z</dc:date>
    <item>
      <title>Parallel implementation of Conjugate Gradient Linear System Solver was updated.</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/769771#M119</link>
      <description>&lt;DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Hello all,&lt;BR /&gt;&lt;BR /&gt;Parallel implementation of Conjugate Gradient Linear 
System Solver was updated.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;I have corrected a bug so that it works correctly when you useonlya 
asingle thread.&lt;BR /&gt;&lt;BR /&gt;Description:&lt;BR /&gt;&lt;BR /&gt;The Parallel implementation of 
Conjugate Gradient Linear System Solver that &lt;BR /&gt;i programmed here is designed 
to be used to solve large sparse systems of &lt;BR /&gt;linear equations where the 
direct methods can exceed available machine memory &lt;BR /&gt;and/or be extremely 
time-consuming. for example the direct method of the Gauss &lt;BR /&gt;algorithm takes 
O(n^2) in the back substitution process and is dominated by &lt;/DIV&gt;
&lt;DIV&gt;the O(n^3)forward elimination process, that means, if for example an 
operation &lt;/DIV&gt;
&lt;DIV&gt;takes 10^-9 second and we have 1000 equations , the elimination process in 
&lt;/DIV&gt;
&lt;DIV&gt;the Gauss algorithm will takes 0.7 second, but if we have 10000 equations 
in the &lt;/DIV&gt;
&lt;DIV&gt;system , the elimination process in the Gauss algorithm will take 11 
minutes !. &lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;This is why i have develloped for you the Parallel implementation of 
Conjugate &lt;/DIV&gt;
&lt;DIV&gt;Gradient Linear System Solver in Object Pascal, that is very 
fast.&lt;BR /&gt;&lt;BR /&gt;You have only one method to use that is Solve()&lt;BR /&gt;&lt;BR /&gt;function 
TParallelConjugateGradient.Solve(var A: arrarrext;var 
B,X:VECT;var&lt;BR /&gt;RSQ:DOUBLE;nbr_iter:integer;show_iter:boolean):boolean;&lt;BR /&gt;&lt;BR /&gt;The 
system: A*x = b&lt;BR /&gt;&lt;BR /&gt;The important parameters in the Solve() method 
are:&lt;BR /&gt;&lt;BR /&gt;A is the matrix , B is the b vector, X the initial vector 
x,&lt;BR /&gt;&lt;BR /&gt;nbr_iter is the number of iterations that you want&lt;BR /&gt;&lt;BR /&gt;and 
show_iter to show the number of iteration on the screen.&lt;BR /&gt;&lt;BR /&gt;RSQ is the sum 
of the squares of the components of the residual vector&lt;BR /&gt;A.x - b.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;I 
have got over 3X scalability on a quad core.&lt;BR /&gt;&lt;BR /&gt;The Conjugate Gradient 
Method is the most prominent iterative method for&lt;BR /&gt;solving sparse systems of 
linear equations. Unfortunately, many textbook &lt;BR /&gt;treatments of the topic are 
written with neither illustrations nor intuition, &lt;/DIV&gt;
&lt;DIV&gt;and their victims can be found to this day babbling senselessly in the 
corners &lt;/DIV&gt;
&lt;DIV&gt;of dusty libraries. For this reason, a deep, geometric understanding of the 
&lt;/DIV&gt;
&lt;DIV&gt;method has been reserved for the elite brilliant few who have painstakingly 
&lt;/DIV&gt;
&lt;DIV&gt;decoded the mumblings of their forebears. Conjugate gradient is the most 
&lt;/DIV&gt;
&lt;DIV&gt;popular iterative method for solving large systems of linear equations. CG 
is&lt;BR /&gt;effective for systems of the form A.x = b where x is an unknown vector, b 
is &lt;BR /&gt;a known vector, A is a known square, symmetric, positive-definite (or 
&lt;BR /&gt;positive-indefinite) matrix.These systems arise in many important settings, 
&lt;/DIV&gt;
&lt;DIV&gt;such as finite difference and finite element methods for solving partial 
differential &lt;/DIV&gt;
&lt;DIV&gt;equations, structural analysis, circuit analysis, and math 
homework&lt;BR /&gt;&lt;BR /&gt;The Conjugate gradient method can also be applied to non-linear 
problems, &lt;BR /&gt;but with much less success since the non-linear functions have 
multiple &lt;BR /&gt;minimums. The Conjugate gradient method will indeed find a minimum 
of &lt;/DIV&gt;
&lt;DIV&gt;such a nonlinear function, but it is in no way guaranteed to be a global 
minimum, &lt;/DIV&gt;
&lt;DIV&gt;or the minimum that is desired.&lt;BR /&gt;&lt;BR /&gt;But the conjugate gradient method is 
great iterative method for solving &lt;BR /&gt;large,sparse linear systems with a 
symmetric, positive, definite matrix.&lt;BR /&gt;&lt;BR /&gt;In the method of conjugate 
gradients the residuals are not used as search &lt;BR /&gt;directions, as in the 
steepest decent method, cause searching can require a &lt;/DIV&gt;
&lt;DIV&gt;large number of iterations as the residuals zig zag towards the minimum 
value for &lt;BR /&gt;ill-conditioned matrices. But instead conjugate gradient method 
uses the residuals&lt;/DIV&gt;
&lt;DIV&gt;as a basis to form conjugate search directions . In this manner, the 
conjugated &lt;/DIV&gt;
&lt;DIV&gt;gradients (residuals) form a basis of search directions to minimize the 
quadratic &lt;/DIV&gt;
&lt;DIV&gt;function f(x)=1/2*Transpose(x)*A*x + Transpose(b)*x and to achieve faster 
&lt;/DIV&gt;
&lt;DIV&gt;speed and result of dim(N) convergence.&lt;BR /&gt;&lt;BR /&gt;Jacobi serial complexity is 
O(N^2) and Conjugate gradient serial complexity &lt;BR /&gt;is O(N^3/2). &lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Please look at the test.pas example inside the zip file, compile and 
execute &lt;BR /&gt;it...&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;You can download Parallel implementation of 
Conjugate Gradient Linear &lt;BR /&gt;System Solver from:&lt;BR /&gt;&lt;BR /&gt;&lt;A&gt;http://pages.videotron.com/aminer&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you,&lt;BR /&gt;Amine 
Moulay Ramdane.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 10 Aug 2012 01:09:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/769771#M119</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-08-10T01:09:12Z</dc:date>
    </item>
  </channel>
</rss>

