<?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 Sol 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/801602#M599</link>
    <description>&lt;BR /&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;I have also ported it to 64 bits systems, just open 
defines.inc&lt;BR /&gt;and change {$DEFINE CPU32} to {$DEFINE CPU64} and 
compile&lt;BR /&gt;it.&lt;BR /&gt;&lt;BR /&gt;Also i have got over 3X scalability on a quad 
core.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;Amine Moulay Ramdane.&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Thu, 14 Jun 2012 15:49:19 GMT</pubDate>
    <dc:creator>aminer10</dc:creator>
    <dc:date>2012-06-14T15:49:19Z</dc:date>
    <item>
      <title>Parallel implementation of Conjugate Gradient Linear System Solver 1.0 ...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801601#M598</link>
      <description>&lt;DIV&gt;&lt;BR /&gt;Hello,&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Parallel implementation of Conjugate Gradient Linear System Solver 
1.0&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Description:&lt;BR /&gt;&lt;BR /&gt;The Parallel implementation of Conjugate 
Gradient Linear System Solver that i programmed here is designed to be used to 
solve large sparse systems of linear equations where the direct methods can 
exceed available machine memory and/or be extremely time-consuming. for example 
the direct method of the Gauss algorithm takes O(n^2) in the back substitution 
process and is dominated by the O(n^3) forward elimination process, that means, 
if for example an operation takes 10^-9 second and we have 1000 equations , the 
elimination process in the Gauss algorithm will takes 0.7 second, but if we have 
10000 equations in the system , the elimination process in the Gauss algorithm 
will take 11 minutes !. This is why i have develloped for you the Parallel 
implementation of Conjugate Gradient Linear System Solver in Object Pascal, that 
is very fast. &lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Jacobi serial complexity is O(N^2) and Conjugate gradient serial complexity 
= O(N^3/2).&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;You can download Parallel implementation of Conjugate Gradient Linear 
System Solver 1.0 from:&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;A href="http://pages.videotron.com/aminer/"&gt;http://pages.videotron.com/aminer/&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Please look at the test.pas example inside the zip file, compile and 
execute it... &lt;BR /&gt;&lt;BR /&gt;Language: FPC Pascal v2.2.0+ / Delphi 7+: &lt;A href="http://www.freepascal.org/"&gt;http://www.freepascal.org/&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Operating Systems: Win , Linux and Mac (x86). &lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Note: to be able to port to Linux and Mac OSX you have to compile the 
dynamic libraries...&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Required FPC switches: -O3 -Sd -dFPC -dWin32 -dFreePascal &lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;-Sd for delphi mode.... &lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;-dUnix for Linux,MacOSX etc.&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;Required Delphi switches: -DMSWINDOWS -$H+ -DDelphi&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;And inside defines.inc you have two defines: &lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;{$DEFINE CPU32} for 32 bits systems &lt;BR /&gt;{$DEFINE CPU64} for 64 bits 
systems&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Thank you.&lt;/DIV&gt;
&lt;DIV&gt;Amine Moulay Ramdane.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 14 Jun 2012 15:42:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801601#M598</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-14T15:42:44Z</dc:date>
    </item>
    <item>
      <title>Parallel implementation of Conjugate Gradient Linear System Sol</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801602#M599</link>
      <description>&lt;BR /&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;I have also ported it to 64 bits systems, just open 
defines.inc&lt;BR /&gt;and change {$DEFINE CPU32} to {$DEFINE CPU64} and 
compile&lt;BR /&gt;it.&lt;BR /&gt;&lt;BR /&gt;Also i have got over 3X scalability on a quad 
core.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;Amine Moulay Ramdane.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 14 Jun 2012 15:49:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801602#M599</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-14T15:49:19Z</dc:date>
    </item>
    <item>
      <title>Parallel implementation of Conjugate Gradient Linear System Sol</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801603#M600</link>
      <description>&lt;DIV&gt;&lt;BR /&gt;Hello, &lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;You have only one method to use that is Solve()&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;function TParallelConjugateGradient.Solve(var A: 
arrarrext;var B,X:VECT;var 
RSQ:DOUBLE;nbr_iter:integer;show_iter:boolean):boolean;&lt;/DIV&gt;
&lt;DIV&gt;
&lt;P&gt;&lt;/P&gt;&lt;P&gt;The system: A*x = b&lt;/P&gt;
&lt;P&gt;The important variables in the Solve() method are:&lt;/P&gt;
&lt;P&gt;A is the matrix , B isthe b vector, X the initial vector x, &lt;/P&gt;
&lt;P&gt;nbr_iter is the number of iterations that you want &lt;/P&gt;
&lt;P&gt;and show_iter to show the number of iteration on the screen.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Thank you.&lt;/P&gt;
&lt;P&gt;Amine Moulay Ramdane.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 14 Jun 2012 16:04:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801603#M600</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-14T16:04:55Z</dc:date>
    </item>
    <item>
      <title>Parallel implementation of Conjugate Gradient Linear System Sol</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801604#M601</link>
      <description>&lt;DIV&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;And RSQ is the sum of the squares of the components of the residual vector 
A.x - b. &lt;/P&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;Thank you.&lt;/DIV&gt;
&lt;DIV&gt;Amine Moulay Ramdane&lt;/DIV&gt;</description>
      <pubDate>Thu, 14 Jun 2012 16:14:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801604#M601</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-14T16:14:56Z</dc:date>
    </item>
    <item>
      <title>Parallel implementation of Conjugate Gradient Linear System Sol</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801605#M602</link>
      <description>&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;"The Conjugate Gradient Method is the most prominent iterative method for solving sparse systems of linear equations. Unfortunately, many textbook treatments of the topic are written with neither illustrations nor intuition, and their victims can be found to this day babbling senselessly in the corners of dusty libraries. For this reason, a deep, geometric understanding of the method has been reserved for the elite brilliant few who have painstakingly decoded the mumblings of their forebears. Conjugate grandient is the most popular iterative method for solving large systems of linear equations. CG is effective for systems of the form &amp;#5;A.x = b &lt;BR /&gt;where x &amp;#5;is an unknown vector,  b is a known vector, A and &amp;#4;is a known, square, symmetric, positive-definite&lt;BR /&gt;(or positive-indefinite) matrix. These systems arise in many important settings, such as finite difference and finite element methods for solving partial differential equations, structural analysis, circuit analysis, and math homework."&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Amine Moulay Ramdane.&lt;BR /&gt;</description>
      <pubDate>Thu, 14 Jun 2012 16:54:07 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801605#M602</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-14T16:54:07Z</dc:date>
    </item>
    <item>
      <title>Parallel implementation of Conjugate Gradient Linear System Sol</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801606#M603</link>
      <description>&lt;DIV&gt;&lt;BR /&gt;"The Conjugate gradientmethod can also be applied to non-linear &lt;/DIV&gt;
&lt;DIV&gt;problems, but with much less success since the non-linear functions &lt;/DIV&gt;
&lt;DIV&gt;have multiple minimums. The Conjugategradient method will indeed &lt;/DIV&gt;
&lt;DIV&gt;find a minimum of such a nonlinear function, but it is in no way guaranteed 
&lt;/DIV&gt;
&lt;DIV&gt;to be a global minimum, or the minimum that is desired. But the &lt;/DIV&gt;
&lt;DIV&gt;conjugate gradient method is great iterative method for solving large, 
&lt;/DIV&gt;
&lt;DIV&gt;sparse linear systems with a symmetric, positive, definite matrix.."&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you,&lt;BR /&gt;Amine Moulay Ramdane&lt;/DIV&gt;</description>
      <pubDate>Thu, 14 Jun 2012 19:59:12 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801606#M603</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-14T19:59:12Z</dc:date>
    </item>
    <item>
      <title>Parallel implementation of Conjugate Gradient Linear System Sol</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801607#M604</link>
      <description>&lt;DIV&gt;&lt;BR /&gt;Hello,&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;"In the method of conjugate gradients the residuals are not used &lt;/DIV&gt;
&lt;DIV&gt;as search directions, as in the steepest decent method, cause searching 
&lt;/DIV&gt;
&lt;DIV&gt;can require a large number of iterations as the residuals zig zag towards 
&lt;/DIV&gt;
&lt;DIV&gt;the minimum value for ill-conditioned matrices. But instead conjugate 
&lt;/DIV&gt;
&lt;DIV&gt;gradient method uses the residuals as a basis to form conjugate search 
&lt;/DIV&gt;
&lt;DIV&gt;directions . In this manner, the conjugated gradients (residuals) form a 
&lt;/DIV&gt;
&lt;DIV&gt;basis of search directions to minimize the quadratic function f(x)and 
&lt;/DIV&gt;
&lt;DIV&gt;to achieveresult of dim(N) convergence."&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR /&gt;&lt;BR /&gt;Thank you.&lt;BR /&gt;Amine Moulay Ramdane.&lt;/DIV&gt;
&lt;DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 14 Jun 2012 21:24:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801607#M604</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-14T21:24:01Z</dc:date>
    </item>
    <item>
      <title>Parallel implementation of Conjugate Gradient Linear System Sol</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801608#M605</link>
      <description>&lt;BR /&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;Parallel implementation of Jacobi with relaxation Linear System 
Solver&lt;BR /&gt;
&lt;DIV&gt;&lt;/DIV&gt;
&lt;DIV&gt;and &lt;BR /&gt;&lt;BR /&gt;Parallel implementation of Conjugate Gradient Linear System 
Solver&lt;BR /&gt;&lt;BR /&gt;was updated to version 1.01&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;You can download them 
from:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://pages.videotron.com/aminer/" target="_blank"&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;/DIV&gt;</description>
      <pubDate>Fri, 15 Jun 2012 14:23:14 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/Parallel-implementation-of-Conjugate-Gradient-Linear-System/m-p/801608#M605</guid>
      <dc:creator>aminer10</dc:creator>
      <dc:date>2012-06-15T14:23:14Z</dc:date>
    </item>
  </channel>
</rss>

