Forum > Third party
Parallel Sort Library 2.01
(1/1)
aminer:
Hello,
Parallel Sort Library 2.01
Author: Amine Moulay Ramdane
Description:
Parallel Sort Library that supports Parallel Quicksort, Parallel
HeapSort
and Parallel MergeSort on Multicores systems.
Parallel Sort Library 2.0 uses my Thread Pool Engine and quicksort
many array parts - of your array - in parallel using Quicksort or
HeapSort
or MergeSort and after that it finally merge them - with the merge()
procedure -
Note: Parallel Quicksort gave me ~3x speed on four cores.
And please look at test.pas inside the zip file, it's a parallel
quicksort example
- compile and execute it...
You can download Parallel Sort Library from:
http://pages.videotron.com/aminer/
Parallel Sort Library is very easy to use , and
here is an example in Object Pascal:
----------------------------------------
program test;
uses
{$IFDEF Delphi}cmem,{$ENDIF}
{$IFDEF DELPHI2005+}cmem,{$ENDIF}
ParallelSort,sysutils,classes;
type
TStudent = Class
public
Name: string;
end;
var tab:Ttabpointer;
myobj:TParallelSort;
student:TStudent;
i,j:integer;
c_ok:boolean;
function comp(Item1, Item2: Pointer): Integer;
begin
if TStudent(Item1).name < TStudent(Item2).name then result:=-1;
if TStudent(Item1).name > TStudent(Item2).name then result:=1;
if TStudent(Item1).name = TStudent(Item2).name then result:=0;
end;
begin
randomize;
myobj:=TParallelSort.create(4,ctQuickSort);
// number of cores and the sort's type
// ctQuickSort or ctHeapSort or ctMergeSort ..
setlength(tab,100000);
for i := LOW(tab) to HIGH(Tab)
do
begin
student:=TStudent.create;
student.name:= 'Amine'+inttostr(random(2000000));
// student.name:=random(10000000);
tab:=student;
end;
myobj.sort(tab,@comp);
for i := LOW(tab) to HIGH(Tab)
do
begin
writeln(TStudent(tab).name,' ');
end;
j:=0;
for i := j to HIGH(Tab) do freeandnil(TStudent(tab));
setlength(tab,0);
myobj.free;
writeln('ok');
end.
--------------------------------
Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/
Operating Systems: Win , Linux and Mac (x86).
Required FPC switches: -O3 -Sd -dFPC -dWin32 -dFreePascal
-Sd for delphi mode....
Required Delphi switches: -DMSWINDOWS -$H+
For Delphi 5,6,7 use -DDelphi
For Delphi 2005,2006,2007,2009,2010+ use the switch -DDELPHI2005+
Sincerely,
Amine Moulay Ramdane.
Navigation
[0] Message Index