Subject: Re: [boost] [gsoc-2013] Boost.Thread/ThreadPool project
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2013-04-11 18:30:59
Le 10/04/13 17:02, Dan Lincan a écrit :
> My name is Dan Lincan. I'm a 4th year undergratuate student in
> Computer Science at the "Politehnica" University of Bucharest and I'm
> interested in the project "Boost.Thread/ThreadPool".
> I have studied the documents provided as resouces and I would really
> appreciate if you helped me better understand this project. Are there
> any tasks that are meant to get solved for the proposal? How do I
> I am aware that it will not be an easy task at all, especially because
> I don't have much experience with boost, but I'm willing to learn and
> work as much as it is needed to get it done.
The project Boost.ThreadPool was developed taking in account the old
Boost.Thread interface when the future library was not accepted in Boost
yet. As far as I know the author (O. Kowalke) is working on an
alternative design based on Boost.Context/Fibers instead of threads. IMO
both approaches have a use depending on the application context.
Two kinds of thread pools could be provided:
* one simple and
* another more sophisticated based on work stealing.
The scheduled tasks could be non-blocking or blocking on the completion
of other tasks.
The goal of the project is to use the existing implementation as base
and provide an interface that is compatible with the new Boost.Thread
interface (based on the C++11 standard), and refactor it to avoid
duplications (e.g. make use of a generic concurrent queue, ...)
Once a Thread pool with these characteristics will be available we can
start to adapt the boost::async and boost::future::then functions taking
a scheduler as parameter.
While this seems a big project, there is already a lot of work there and
the provided services can be done proving first
1st simple thread pool scheduling non-blocking tasks
2nd add work stealing
3rd add blocking tasks