Forum > Third party

Amine's announcements

(1/7) > >>

aminer:

Hello


Parallel Compression 1.0


Author: Amine Moulay Ramdane


Description:

Parallel Zlib and Parallel Bzip algorithms that use my Thread Pool Engine.


Please look at pzlib.pas and pbzip.pas inside the zip file - compile and execute them...


And please see the benchmarks here:

http://pages.videotron.com/aminer/ParallelCompression/parallelbzip.htm


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.

aminer:

Hello,

Plese read more here:

http://software.intel.com/en-us/forums/showthread.php?t=73269&o=d&s=lr


Sincerely,
Amine Moulay Ramdane.

aminer:

Hello all,


My Lock-free ParallelQueue algorithm have been updated
- my new algorithm avoids false sharing - , the new version
have scored 17 millions of pop()  transactions per second
- the old score was 7 millions - on an  Intel Core 2 Quad Q6600


There are three ways to reduce lock contention:

1- Reduce the duration for which locks are held
2- Reduce the frequency with which locks are requested

or

3- Replace exclusive locks with coordination mechanisms that
   permit greater concurrency.

With low , moderate AND high contention, my ParallelQueue algorithm
offers better scalability - and i am using it inside my Thread Pool Engine -


Because my lock-free ParallelQueue algorithm uses a hash based
method - and lock striping -  and using just a LockedInc() , so, i am
REDUCING the duration for which locks are held AND REDUCING the
frequency with which locks are requested,  hence i am REDUCING A LOT
the contention, so it's very efficient.

And i can state the following law or theorem:


[1]  If there is LESS contention THEN  the algorithm will scale better.
     Due to the fact that S (the serial part) become smaller with less contention ,
     and as N become bigger,   the result - the speed of the program/algorithm...
     -  of the Amdahl's equation  1/(S+(P/N)) become bigger.

So, since my lock-free ParallelQueue algorithm is REDUCING A LOT
the contention,  it's very efficient and it scales well..

Also, i can state another law or theorem like this:


[2]  If there is false sharing THEN  the algorithm will not scale well. Due to
      the fact that S (the serial part) of the Amdahl's equation  1/(S+(P/N)) will
      become bigger, so, this is not good for scalability.

It's why i am also avoiding false sharing in my lock-free ParallelQueue algorithm.

So, my new lock-free ParallelQueue algorithm reduces a lot the contention
and  avoids false sharing, it's why it scored 17 millions of pop() transactions
per second... better than flqueue and RingBuffer.

Please look at the benchmarks here:

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

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



Sincerely,
Amine Moulay Ramdane.


aminer:
Hello

Parallel Quicksort using two cores, it is for educational purpose...

It uses my Thread Pool Engine and quicksort two arrays in parallel
and merge them....

Note: On Delphi it gave me 1.7x on two cores - with more optimization,
delphi will give you better scalability...- . Freepascal gave me just 1.2x,
so, FreePascal still have to be optimized on 'some' parts for better parallel
computing...

And please look at pqsort.pas inside the zip file - compile and execute it...


You can download Parallel Quicksort from:

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


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.


aminer:

Hello


Parallel Compression library version 1.2


Author: Amine Moulay Ramdane


Description:


Parallel Gzip , Parallel Zlib and Parallel Bzip algorithms that uses my
Thread Pool Engine.


And please look at the test examples inside the zipfile:
test_pgzip.pas , pzlib.pas , test_pbzip.pas - compile and execute them... -


And please see the benchmarks here:


http://pages.videotron.com/aminer/ParallelCompression/parallelbzip.htm

You can download my Parallel Compression library from:

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


The Parallel Compression library is VERY easy to use , and
here is an example in Object Pascal: - it's a parallel gzip compression -


--------------------------

program test;


uses ParallelCompression,classes,zlibex,sysutils;

var
pgzip:TParallelGzip;
fstream1,fstream2,fstream3:TFileStream;
name:string;

begin

name:='msvcr100.dll';  // set your your test file ...

pgzip:=TParallelGzip.create(4); // number of cores...

fstream1:=TFileStream.create(name, fmOpenRead);//+fmShareExclusive);
fstream2:=TFileStream.create(name+'.gz',fmCreate);//+fmShareExclusive); // destination of the compression...
fstream3:=TFileStream.create(name+'.ok', fmCreate);//+fmShareExclusive); // destination decompression...


pgzip.compress(fstream1,fstream2,zclevel9); // select a compressionlevel from
                                           // zcNone or zcLevel1 to zcLevel9
   

writeln;
writeln('Parallel compression finished...');

fstream2.position:=0;

pgzip.decompress(fstream2,fstream3);

writeln;
writeln('decompression finished...');


fstream1.free;
fstream2.free;
fstream3.free;
pgzip.free;

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

[#] Next page

Go to full version