Recent

Author Topic: About my threadpool engine...  (Read 3144 times)

aminer

  • Hero Member
  • *****
  • Posts: 956
About my threadpool engine...
« on: October 04, 2012, 01:31:41 am »

Hello,

I have used my threadpool engine as a scalable FIFO queue,
and have done some benchmarks on a quad cores using both
the execute() method and my new Exec()  method and here
is the scalability numbers:

Using one global lockfree queue, it gave a negative scalability of  -2.7x

Using mutiple lockfree local queues with work-stealing
and using the execute() method , it can go up to 2.5x scalability

And using multiple lockfree local queues with work-stealing
and using my new Exec() method , it can go up to 3.8x scalability.


Those benchmarks were run under Delphi.

But on Freepascal my threadpool engine is not scaling cause there it's a problem with the freepacal compiler.

You can download my threadpool engine and all my parallel libraries from:

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



Thank you,
Amine Moulay Ramdane.



 

aminer

  • Hero Member
  • *****
  • Posts: 956
Re: About my threadpool engine...
« Reply #1 on: October 04, 2012, 01:37:14 am »



On those tests i have used my Threadpool engine
as a scalable MPMC(mutiple producers-mutiple consumers)
queue.


Thank you,
Amine Moulay Ramdane.

aminer

  • Hero Member
  • *****
  • Posts: 956
Re: About my threadpool engine...
« Reply #2 on: October 04, 2012, 01:58:12 am »


I correct:

Using mutiple lockfree local queues with work-stealing
and using the execute() method , it gave 2.5x scalability


Amine Moulay Ramdane.

aminer

  • Hero Member
  • *****
  • Posts: 956
Re: About my threadpool engine...
« Reply #3 on: October 04, 2012, 02:31:15 am »

Hello,

I will compare the Exec() method of my threadpool engine to the bucketsort,
in the bucketsort algorithm, si if in the bucketsort the elements are uniformly
distributed over an interval [a, b]  and buckets have not significantly
different number of elements the scalability will be optimal.
It's the same with the Exec() method of my threadpool engine,
if the load is uniformly distributed over the local lockfree FIFO MPMC
queues the scalability will be optimal, so using multiple lockfree local
queues with work-stealing and using my new Exec() method , my threadpool engine
used as a scalable FIFO MPMC queue  can go up to 3.8x scalability on a quadcores..

Now when i have used only a glocal lockfree queue on my threadpool engine,
my threadpool engine used as a scalable FIFO MPMC queue gave a negative
scalability of -2.7x,

 
And using mutiple lockfree local queues with work-stealing
and using the execute() method , my threadpool engine used as
a scalable FIFO MPMC queue gave me 2.5x scalability.


Wha'ts important is that my threadpool engine is useful.

You can download my threadpool engine and all my parallel libraries from:

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



Thank you,
Amine Moulay Ramdane.


 



 

TinyPortal © 2005-2018