Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming.threads > #1001

Re: Parallel Quicksort 1.0 here...

From "aminer" <aminer@videotron.ca>
Newsgroups comp.programming.threads, comp.programming
Subject Re: Parallel Quicksort 1.0 here...
Date 2012-08-17 17:54 -0500
Organization A noiseless patient Spider
Message-ID <k0meue$m2k$1@dont-email.me> (permalink)
References <k0md2b$dhh$1@dont-email.me>

Cross-posted to 2 groups.

Show all headers | View raw


Hello,

It is easy to use parallel quicksort , you can sort strings , integers  , 
reals, doubles etc
you can sort even sort then 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(1); // 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.

---


Thank you,
Amine Moulay Ramdane.


"aminer" <aminer@videotron.ca> wrote in message 
news:k0md2b$dhh$1@dont-email.me...
>
> 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.
>
> 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.
>
>
>
> 

Back to comp.programming.threads | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Parallel Quicksort 1.0 here... "aminer" <aminer@videotron.ca> - 2012-08-17 17:28 -0500
  Re: Parallel Quicksort 1.0 here... "aminer" <aminer@videotron.ca> - 2012-08-17 17:54 -0500
    Re: Parallel Quicksort 1.0 here... "aminer" <aminer@videotron.ca> - 2012-08-17 18:01 -0500
  Re: Parallel Quicksort 1.0 here... "aminer" <aminer@videotron.ca> - 2012-08-18 00:31 -0500
  Re: Parallel Quicksort 1.0 here... Gerald Breuer <Gerald.Breuer@googlemail.com> - 2012-08-18 10:19 +0200
  Re: Parallel Quicksort 1.0 here... "aminer" <aminer@videotron.ca> - 2012-08-18 09:57 -0500
    Re: Parallel Quicksort 1.0 here... Gerald Breuer <Gerald.Breuer@googlemail.com> - 2012-08-18 19:52 +0200
      Re: Parallel Quicksort 1.0 here... "aminer" <aminer@videotron.ca> - 2012-08-18 14:20 -0500
        Re: Parallel Quicksort 1.0 here... Gerald Breuer <Gerald.Breuer@googlemail.com> - 2012-08-18 22:58 +0200
  Re: Parallel Quicksort 1.0 here... "aminer" <aminer@videotron.ca> - 2012-08-21 12:21 -0500

csiph-web