Forum > Third party
Amine's announcements
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