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.