Hello,
ThreadpoolX that scales very well is here..
I have ported the scalable counting network algorithm to Delphi and
FreePascal, and i have used it inside my following ThreadpoolX engine,
and now it scales very well, here is the papers of the scalable counting
network algorithm:
http://people.csail.mit.edu/shanir/publications/AHS.pdf
and also read the following (the counting network is truly scalable,
please look at the graph inside the paper):
http://people.csail.mit.edu/shanir/publications/HLS.pdf
you have to look at my following Threadpool engine that scales very well
now, because it is very powerful now, here is what it supports:
- I have used scalable counting networks to make my Threadpool engine
scale very well.
- The worker threads enter in a wait state when there is no job in the
concurrent FIFO queues - for more efficiency -
- You can distribute your jobs to the worker threads and call any method
with the threadpool's execute() method.
- It uses work-stealing to be more efficient.
- You can configure it to use stacks or FIFO queues , when you use
stacks it will be cache efficient.
- Now it can use processor groups on windows, so that it can use more
than 64 logical processors and it scales well.
- Now it distributes the jobs on multiple FIFO queues or stacks so that
it scales well.
- You can wait for the jobs to finish with the wait() method.
- It's NUMA-aware and NUMA efficient.
- And it is portable to many operating systems.
Please read the new HTML tutorial inside the zip.
You can download it from:
https://sites.google.com/site/aminer68/an-efficient-threadpool-engine-that-scales-very-well
and the one with priortities is here:
https://sites.google.com/site/aminer68/an-efficient-threadpool-engine-with-priorities-that-scales-very-well
And the Linux version is coming soon...
Thank you,
Amine Moulay Ramdane.