Parallel implementation of Conjugate Gradient Linear System Solver

1.0

Description:

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.
Jacobi serial complexity is O(N^2) and Conjugate gradient serial complexity

= O(N^3/2).
You can download Parallel implementation of Conjugate Gradient Linear

System Solver 1.0 from:
http://pages.videotron.com/aminer/
Please look at the test.pas example inside the zip file, compile and

execute it...

Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/
Operating Systems: Win , Linux and Mac (x86).
Note: to be able to port to Linux and Mac OSX you have to compile the

dynamic libraries...
Required FPC switches: -O3 -Sd -dFPC -dWin32 -dFreePascal
-Sd for delphi mode....
-dUnix for Linux,MacOSX etc.
Required Delphi switches: -DMSWINDOWS -$H+ -DDelphi
And inside defines.inc you have two defines:
{$DEFINE CPU32} for 32 bits systems

{$DEFINE CPU64} for 64 bits

systems
Thank you.
Amine Moulay Ramdane.