Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am looking for a good book about parallel programming with focus on C++. Something suitable for a person reasonably good in C++ programming, but with no experience in concurrent software development. On the other hand, I'd prefer a practical book, without loads of silly examples about philosophers eating lunch.

Is there a book out there that's the de-facto standard for describing best practices, design methodologies, and other helpful information on parallel programming with focus on C++ ? What about that book makes it special?

share|improve this question
1  
Answers to this question might be helpful: stackoverflow.com/questions/1268087/… –  Vitor Jul 1 '11 at 12:57
1  
Now, I wonder if there is a canonical book on philosophers eating lunch :) –  Matthieu Dec 9 '11 at 19:59
    
@Matthieu It's hard to find one that isn't cluttered with a bunch of silly examples of practical applications to parallel programming. –  Evicatos Apr 2 at 17:22
add comment

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

closed as off-topic by gnat, Dan Pichelman, MichaelT, mattnz, thorsten müller Sep 20 '13 at 7:57

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – gnat, Dan Pichelman, MichaelT, mattnz, thorsten müller
If this question can be reworded to fit the rules in the help center, please edit the question.

4 Answers

up vote 2 down vote accepted

Parallel Programming with Microsoft Visual C++ counts? It's focused on their ConcRT though (parallel paterns library, agents etc).

share|improve this answer
    
Thanks, I'll give it a go. –  quant_dev Jul 1 '11 at 14:15
    
Started reading it on Kindle, it seems good. –  quant_dev Jul 1 '11 at 19:38
add comment

This is not a book(as you've asked), but take a look on this(C++ AMP), please. It seems very interesting and useful technology and what is more important, there are few lines of code, that need to be added to "make app parallel".

P.S. Here are two useful and good books: Parallel Programming Using C++, Parallel and Distributed Programming Using C++.

UPD: Hey, here is it (finally): C++ Concurrency in Action by Williams.

share|improve this answer
    
Thanks, I will keep them on the reserve list (the book recommended by Waldemar Pawlaszek is cheaper). –  quant_dev Jul 1 '11 at 19:38
2  
If you want a book on C++ AMP, I wrote one :-) gregcons.com/cppamp –  Kate Gregory Oct 14 '12 at 20:19
add comment

Take a look at Concurrent Programming in Java: Design Principles and Patterns. Even though it's directed at the Java folks, the underlying concepts (Mutexes, Conditions, Semaphores, Barriers, Rendevouz-Points, ...) are not bound to any specific language. The problems that come with multi-threading don't lie in syntax or libraries, but in the inherent complexity of parallel execution with shared state.

If you think the Dining Philosophers Problem is silly you have yet to understand those problems.

share|improve this answer
2  
I prefer to have real-world examples. And also I would prefer a book centred on C++. –  quant_dev Jul 1 '11 at 11:40
add comment

Here is the book from the guy who made an the first implementation of the new standard threading library, participated to the standard and maintain to boost::thread implementation: http://www.manning.com/williams/

It obviously uses almost exclusively C++ standard libraries to explain basics of concurrency, and point to some other libraries, boost and TBB (or PPL which is basically the same).

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.