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


Groups > comp.programming > #1601

Re: Parallelcompression library was updated to version 2.16 ...

From "aminer" <aminer@videotron.ca>
Newsgroups comp.programming.threads, comp.programming, alt.comp.lang.borland-delphi
Subject Re: Parallelcompression library was updated to version 2.16 ...
Date 2012-05-19 18:27 -0500
Organization A noiseless patient Spider
Message-ID <jp96o0$r2a$1@dont-email.me> (permalink)
References <66958cc4-bb13-433b-b1e5-1375079587ed@s27g2000yqd.googlegroups.com>

Cross-posted to 3 groups.

Show all headers | View raw


Hello,

I will try to clarify more this problem that i have solved in
version 2.16 ...

If you take a look inside the parallelcompression zipfile,
inside the file parallelgzip.pas, you will notice that i am using a 
threadpool
engine and inside the TCallbacks.GzipCompress() method  i am using
GZCompressStream() outside the critical section , this is good for
scalability, but inside the same method i am using also a critical section
like this:

repeat
If TParallelGzip(Tjob(obj).obj).count_compress = Tjob(obj).index
then
 begin
  // i am using some code here
  Inc(TParallelGzip(Tjob(obj).obj).count_compress);
  break;
 end;
sleep(0);
until false;

as you have noticed , in this critical section  i am testing like this:
 If TParallelGzip(Tjob(obj).obj).count_compress = Tjob(obj).index
and if you read carefully the code inside parallelgzip.pas you will
notice that since i am using a critical section like this , and using
a threadpool engine, the threadpool engine must not use work-sealing
or this will cause a deadlock inside the TCallbacks.GzipCompress() method,
so to correct this problem i had to use for example a FIFO queue for
each worker thread to enhance the scalability and completly avoid
work-stealing (from the LIFO Stacks.or FIFO Queues).


Thank you for your time.



Amine Moulay Ramdane.






"aminer" <aminer68@gmail.com> wrote in message 
news:66958cc4-bb13-433b-b1e5-1375079587ed@s27g2000yqd.googlegroups.com...
>
> Hello,
>
> Parallelcompression library was updated to version 2.16 , i have
> just changed the code inside my threadpool.pas engine inside the
> parallel compression zipfile to not use work-stealing , cause work-
> stealing
> will cause a deadlock in parallelcompression library, so please use
> the
> threadpool engine that i have provided you inside the
> parallelcompression zipfile.
>
> Description:
>
> Parallel compression library implements Parallel Gzip , Parallel
> Bzip ,
> Parallel LZMA and Parallel LZ algorithms using my Thread Pool Engine.
>
>
> You can download my ParallelCompression  library version 2.16 from:
>
> http://pages.videotron.com/aminer/
>
>
>
>
> Thank you.
>
> Amine Moulay Ramdane.
> 

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


Thread

Parallelcompression library was updated to version 2.16 ... aminer <aminer68@gmail.com> - 2012-05-19 14:30 -0700
  Re: Parallelcompression library was updated to version 2.16 ... "aminer" <aminer@videotron.ca> - 2012-05-19 18:27 -0500
  Re: Parallelcompression library was updated to version 2.16 ... Gerald Breuer <Gerald.Breuer@googlemail.com> - 2012-05-27 01:02 +0200

csiph-web