- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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;
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;
then
begin
result:=1;
exit;
end;
if TStudent(Item1).name = TStudent(Item2).name
then
begin
result:=0;
exit;
end;
end;
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;
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('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).name,' ');
end;
do
begin
writeln(TStudent(tab).name,' ');
end;
for i := 0 to HIGH(Tab) do freeandnil(TStudent(tab));
setlength(tab,0);
myobj.free;
end.
---
Thank you,
Amine Moulay Ramdane.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I wrote:
>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.
Sorry for the typo, i mean you can even sort them when they are inside objects.
Thank you,
Amine Moulay Ramdane.
Amine Moulay Ramdane.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Will there be a C/C++ version?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
>>Will there be a C/C++ version?
Aminer10, could you follow up, please?
You're doing programming with Pascal and many of users on Intel forums are using C/C++ and Fortran.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page