Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Parallel Compression library version 1.2 ...

aminer10
Novice
505 Views


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.



0 Kudos
2 Replies
aminer10
Novice
505 Views

Hello,


As you have noticed , my Parallel Compression library
works on TStreams class..

That means it supportsTFileStream(files..) or TMemoryStream(memory...) ...
of Object Pascal.


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

Have fun ! :)


Take care...

Sincerely,
Amine Moulay Ramdane.



0 Kudos
aminer10
Novice
505 Views


Hello,

As you have noticed , i have followed the Divide and Conquer method...

First you have to know how to program in proceduraland Object Oriented
programming andafter that you begin parallel programming ...

The divide an conquer method works very well in parallel programming
also, cause as you have noticed , to be able to engineer the Parallel
Compression Library and Parallel Sort etc. i first began to engineerthe
following fondations:

- My lock-free ParallelQueue

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

- And my Thread Pool Engine that uses my lock-free ParallelQueue

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


After that, i have developped - in Object Pascal - the Parallel Compression
Library thatuses my Thread Pool Engine.

And as you have noticed.ParallelCompression.pas - look inside the zipfile-,
containsa TCallbacks class and both TParallelGzip , TParallelBzip
classes inherit from TCallbacks..

Andas you have noticed also, my Parallel Compression library
works on TStream class..

That means it supports TFileStream(files..) or
TMemoryStream(memory...) ...of Object Pascal.

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


Andhave fun ! :)



Sincerely,
Amine Moulay Ramdane.



0 Kudos
Reply