
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@gmx.de> To: <boost@lists.boost.org> 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.