|
Boost : |
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2008-07-16 09:06:57
Hello,
After been read the Fork/Join framework
(http://gee.cs.oswego.edu/dl/papers/fj.pdf) and the Task scheduler of the
TBB
library(http://download.intel.com/support/performancetools/tbb/sb/tutorial.pdf)
I don't think that a thread_pool library not allowing a tasks internally
re-submit child tasks and then wait on the child task can be enough.
I'm not saying that your thread_pool library is not useful, but IMO we need
both.
When you implement with your thread_pool library the following common
parallel algorithm
Result solve(Problem problem) {
if (problem is small)
directly solve problem
else {
split problem into independent parts
fork new subtasks to solve each part recursively
join all subtasks
compose result from subresults
}
}
you will need a number of threads that depend on the depth of the sub-task
tree because the thread executing a task is blocked waiting for its
sub-tasks. If we have a limited number of threads we will be unable to solve
the general problem, If the number is dynamic your library can create a
number of threads that can exhaust the memory.
With the FJ framework you only need a thread, and usually you use the same
number of threads that the number of processors or cores.
Then even if your thread_pool is useful to schedule task that do not wait
(on sub-tasks), we need also a thread_pool based on the ideas of the FJ
framework or the TBB Task scheduler toimplement some parallel algorithms.
I'd prefere to review a thread_pool library that provides both models.
Best
Vicente
----- Original Message -----
From: "Oliver Kowalke" <k-oli_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Tuesday, July 15, 2008 7:13 PM
Subject: [boost] [thread_pool]: formal review request
Hello,
I'd like to request a review of my thread_pool library - it is available at
the boost vault/Concurrent
Programming.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk