Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Parallel Quicksort 1.0 is here.

Reply
Thread Tools

Parallel Quicksort 1.0 is here.

 
 
aminer
Guest
Posts: n/a
 
      08-17-2012
Hello,

Parallel Quicksort 1.0 is here.


Description:

Parallel Quicksort that uses my threadpool engine.

Parallel Quicksort gave me 3x scaling when sorting strings on a quad cores,
it scales better than the parallel quicksort in the parallelsort library..

Please use Lazarus-1.1-38262-fpc-2.6.1 from
http://mirrors.iwi.me/lazarus/snapshots / cause it scales better on this
version.


Hello,

It is easy to use parallel quicksort , you can sort strings , integers ,
reals, doubles etc
you can even sort them when they are inside objects.

Here is an example that i gave you inside the zip file, i am sorting strings
that are inside objects:

:
---

program test;

uses parallelquicksort,sysutils,timer;

type

TStudent = Class
public
Name: string;
end;
?
var tab:Ttabpointer;
myobj:TParallelSort;
student:TStudent;
i:integer;


function comp(Item1, Item2: Pointer): integer;

begin

if TStudent(Item1).name < TStudent(Item2).name
then
begin
result:=-1;
exit;
end;

if TStudent(Item1).name > TStudent(Item2).name
then
begin
result:=1;
exit;
end;

if TStudent(Item1).name = TStudent(Item2).name
then
begin
result:=0;
exit;
end;
?
end;

begin

myobj:=TParallelSort.create(4); // set to the number of cores...

setlength(tab,100000);

for i:=low(tab) to high(tab)
do
begin
student:=TStudent.create;
student.name:= inttostr(i);
tab[high(tab)-i]:= student;
end;
?
HPT.Timestart;

myobj.pqsort(tab,comp);

writeln;
writeln('Time in microseconds: ',hpt.TimePeriod);
?
writeln;

writeln('Please press a key to continu...');

readln;

for i := LOW(tab) to HIGH(Tab)
do
begin
writeln(TStudent(tab[i]).name,' ');
end;

for i := 0 to HIGH(Tab) do freeandnil(TStudent(tab[i]));
setlength(tab,0);
myobj.free;

end.

---



Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/

or Lazarus 32 bits or 64 bits from:

http://mirrors.iwi.me/lazarus/snapshots/

Operating Systems: Win , Linux and Mac (x86).


You can download parallelquicksort from:

http://pages.videotron.com/aminer/



Thank you,
Amine Moulay Ramdane.




 
Reply With Quote
 
 
 
 
aminer
Guest
Posts: n/a
 
      08-17-2012
Hello,

I have posted on this forum, cause you can read the source code
of all my libraries and port them to C++ if you want.

I have giving you all the source code of my following libraries:


Parallel Quicksort 1.0
Parallel implementation of Conjugate Gradient Linear System Solver 1.02
Parallel implementation of Jacobi with relaxation Linear System Solver
version 1.01
Parallel Compression Library 2.17
Parallel Hashlist (parallel hashtable) 1.44
Parallel Sort Library 2.6
Lockfree MPMC and SPMC fifo queues version 1.13
Lockfree MPMC and SPMC priority FIFO queues version 1.1
AWE version 1.23
Threadpool 1.38 (stable version)
Threadpool with priority 1.26 (stable version)
Parallel Matrix demo


You can download them from:

http://pages.videotron.com/aminer/


Thank you,
Amine Moulay Ramdane,



"aminer" <(E-Mail Removed)> wrote in message
news:k0mhff$4n3$(E-Mail Removed)...
> Hello,
>
> Parallel Quicksort 1.0 is here.
>
>
> Description:
>
> Parallel Quicksort that uses my threadpool engine.
>
> Parallel Quicksort gave me 3x scaling when sorting strings on a quad
> cores,
> it scales better than the parallel quicksort in the parallelsort library..
>
> Please use Lazarus-1.1-38262-fpc-2.6.1 from
> http://mirrors.iwi.me/lazarus/snapshots / cause it scales better on this
> version.
>
>
> Hello,
>
> It is easy to use parallel quicksort , you can sort strings , integers ,
> reals, doubles etc
> you can even sort them when they are inside objects.
>
> Here is an example that i gave you inside the zip file, i am sorting
> strings
> that are inside objects:
>
> :
> ---
>
> program test;
>
> uses parallelquicksort,sysutils,timer;
>
> type
>
> TStudent = Class
> public
> Name: string;
> end;
> ?
> var tab:Ttabpointer;
> myobj:TParallelSort;
> student:TStudent;
> i:integer;
>
>
> function comp(Item1, Item2: Pointer): integer;
>
> begin
>
> if TStudent(Item1).name < TStudent(Item2).name
> then
> begin
> result:=-1;
> exit;
> end;
>
> if TStudent(Item1).name > TStudent(Item2).name
> then
> begin
> result:=1;
> exit;
> end;
>
> if TStudent(Item1).name = TStudent(Item2).name
> then
> begin
> result:=0;
> exit;
> end;
> ?
> end;
>
> begin
>
> myobj:=TParallelSort.create(4); // set to the number of cores...
>
> setlength(tab,100000);
>
> for i:=low(tab) to high(tab)
> do
> begin
> student:=TStudent.create;
> student.name:= inttostr(i);
> tab[high(tab)-i]:= student;
> end;
> ?
> HPT.Timestart;
>
> myobj.pqsort(tab,comp);
>
> writeln;
> writeln('Time in microseconds: ',hpt.TimePeriod);
> ?
> writeln;
>
> writeln('Please press a key to continu...');
>
> readln;
>
> for i := LOW(tab) to HIGH(Tab)
> do
> begin
> writeln(TStudent(tab[i]).name,' ');
> end;
>
> for i := 0 to HIGH(Tab) do freeandnil(TStudent(tab[i]));
> setlength(tab,0);
> myobj.free;
>
> end.
>
> ---
>
>
>
> Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/
>
> or Lazarus 32 bits or 64 bits from:
>
> http://mirrors.iwi.me/lazarus/snapshots/
>
> Operating Systems: Win , Linux and Mac (x86).
>
>
> You can download parallelquicksort from:
>
> http://pages.videotron.com/aminer/
>
>
>
> Thank you,
> Amine Moulay Ramdane.
>
>
>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: Parallel Quicksort 1.0 here... aminer C++ 0 08-18-2012 07:23 PM
Re: Parallel quicksort Arne Vajh°j Java 9 11-06-2010 04:18 AM
Re: Parallel quicksort Kevin McMurtrie Java 0 05-15-2010 11:19 PM
Parallel port control with USB->Parallel converter Soren Python 4 02-14-2008 03:18 PM
Parallel quicksort (MPI) simo C Programming 2 03-07-2007 07:25 PM



Advertisments