Subject: Re: [boost] Boost.Thread project for GSoC 2014
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2014-03-06 17:47:30
Le 06/03/14 04:06, Haoyue Wang a écrit :
> I am Haoyue, a PhD student in geophysics at MIT. I used C++11 to
> write parallel finite element codes in my research and had some
> coursework on concurrent programming.
> Boost is such a powerful and efficient library. I sincerely hope I could
> contribute to it this summer and beyond.
> I am interested in the standalone GSoC Projects under Boost.Thread.
> Particularly, the Work-Stealing-Thread-Pool project is a great one
> that I expect to learn a lot from.
> I understand that there could be much more to discuss once I have
> a preliminary proposal. Here I just want to ask if I am heading in
> the right direction.
> I think a good point to start is chapter 6, 7, and 9 of the book C++
> Concurrency in Action: Practical Multithreading and the Executors
> and Schedulers revision 3 from http://www.open-std.org/.
Yes, this is a good starting point.
> I haven't used Executor before but I am ware of its existence in Java
> for a while. Maybe I could go through some Executor and fork/join
> Java examples to see how they are used in practice.
I don't think this is a good idea. Why not start with the executors
included in Boost.Thread library (develop/master branches)
> Finally, I will read and understand the executors codes on GitHub.
The executors directory included already some executors. One of them the
basic_thread_pool is a good starting point. The work-stealing
thread_pool could be based on it and the implementation provided in
> I hope I could put up a good first draft proposal next Monday.
> If there is any advice, please let me know.
I would need to know more about your background. Are you familiar with
thread-safe lock based data-structures? lock-free data structures?
Your first proposal should be as complete as possible and you will need
to probe that you are knowledgeable of the problem domain, of Boost
environment and of C++11.
Showing a prototype of a thread pool having specific queue for each
thread (See CCIA 9.1.4) that make use of the sync_queue in Boost.Thread
would be really nice.
Which compiler(s) are you using? Which platform(s)?
Do you use already Boost?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk