Hello,

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.