Boost logo

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