I am still writing the page at:
And it starts with something like this:
"On a multicore system, your goal is to spread the work efficiently
among many cores so that it does executes simultaneously. And
performance gain should be directly related to how many cores you
have. So, a quad core system should be able to get the work done
4 times faster than a single core system. A 16-core platform should
be 4-times faster than a quad-core system, and 16-times faster than
a single core...
That's where my Threadpool comes in hand, it spreads the work
among many cores.
The following have been added to Threadpool:
Lock-free ParallelQueue for less contention and more efficiency
or it can use lockfree_mpmc - flqueue that i have modified, enhanced
and improved... - See lock-free ParallelQueue:
It uses many queues and work-stealing - for more efficiency -
The worker threads enters in a wait state when there no job in the
lock-free queues - for more efficiency -
You can distribute your jobs to the worker threads and call any
method with the threadpool's execute() method.
Work-Stealing scheduling algorithm offer many feature over the
ordinary scheduling algorithm:
Using local queues, this will minimize contention.
Every thread can steal work from the other threads,
so Work-Stealing provides implicitly Load Balancing.
My Threadpool allows load balancing, and also minimize contention...".
Any Feedback ?
Amine Moulay Ramdane.