The Art of Concurrency
A Thread Monkey's Guide to Writing Parallel Applications
Publisher: O'Reilly Media
Released: May 2009
Pages: 304

If you're looking to take full advantage of multi-core processors with concurrent programming, this practical book provides the knowledge and hands-on experience you need. The Art of Concurrency is one of the few resources to focus on implementing algorithms in the shared-memory model of multi-core processors, rather than just theoretical models or distributed-memory architectures. The book provides detailed explanations and usable samples to help you transform algorithms from serial to parallel code, along with advice and analysis for avoiding mistakes that programmers typically make when first attempting these computations.

Written by an Intel engineer with over two decades of parallel and concurrent programming experience, this book will help you:

  • Understand parallelism and concurrency
  • Explore differences between programming for shared-memory and distributed-memory
  • Learn guidelines for designing multithreaded applications, including testing and tuning
  • Discover how to make best use of different threading libraries, including Windows threads, POSIX threads, OpenMP, and Intel Threading Building Blocks
  • Explore how to implement concurrent algorithms that involve sorting, searching, graphs, and other practical computations

The Art of Concurrency shows you how to keep algorithms scalable to take advantage of new processors with even more cores. For developing parallel code algorithms for concurrent programming, this book is a must.

Table of Contents
Product Details
About the Author
Colophon
Recommended for You
Customer Reviews

REVIEW SNAPSHOT®

by PowerReviews
O'Reilly MediaThe Art of Concurrency
 
4.3

(based on 3 reviews)

Ratings Distribution

  • 5 Stars

     

    (1)

  • 4 Stars

     

    (2)

  • 3 Stars

     

    (0)

  • 2 Stars

     

    (0)

  • 1 Stars

     

    (0)

100%

of respondents would recommend this to a friend.

Pros

  • Helpful examples (3)

Cons

    Best Uses

    • Expert (3)
    • Intermediate (3)
      • Reviewer Profile:
      • Developer (3)

    Reviewed by 3 customers

    Sort by

    Displaying reviews 1-3

    Back to top

    (3 of 3 customers found this review helpful)

     
    5.0

    Mind Warping

    By Senior Code Monkey

    from Arlington, VA

    About Me Designer, Developer

    Verified Reviewer

    Pros

    • Accurate
    • Concise
    • Easy to understand
    • Helpful examples
    • Well-written

    Cons

      Best Uses

      • Expert
      • Intermediate
      • Student

      Comments about O'Reilly Media The Art of Concurrency:

      "The Art of Concurrency," by Clay Breshears, is an outstanding book on concurrent algorithms and multi-threaded programming. Breshears hits the sweet spot between rigor and readability, and manages to make a terrifically difficult subject accessible, if not the to layman, at least to motivated and experienced developers.

      While I cannot imagine a more accessible book on the subject, make no mistake: reading this book requires some serious head work and commitment. If you stay the course, you will review the details of algorithms that you vaguely remember (quick sort; Floyd's algorithm) and some that may be entirely new to you (PRAM). But the rewards are significant: not just a sense of accomplishment, but confidence that you could transform a gnarly serial algorithm into a parallel version that would run rings around the original. There is also the intangible benefit of having been forced to look at problems sideways, with the result that next time you need to engineer a solution, you will be less stuck in a rut and more apt to find an elegant, out-of-the-box solution.

      Although there are some eminently practical chapters on searching for potential race conditions, this book is not a cookbook of thread solutions: few developers will need to implement parallel binary searches, parallel sorts, or parallel graph traversal. Yet reading this book should make a developer better prepared to resolve more mundane concurrency issues. And it goes down easy: the author has a charming voice, loves his area of expertise, and takes delight in leading the reader through this subject.

      Without a doubt, this is one of the best books on programming that I have read.

      (2 of 2 customers found this review helpful)

       
      4.0

      Great introduction and reference

      By harningt

      from Huntertown, IN

      About Me Developer

      Verified Reviewer

      Pros

      • Easy to understand
      • Helpful examples
      • Well-written

      Cons

        Best Uses

        • Expert
        • Intermediate

        Comments about O'Reilly Media The Art of Concurrency:

        With CPUs growing in power by adding additional core as opposed to just getting "faster", learning how to take advantage of parallel programming is a must. The book "The Art of Concurrency: A Thread Monkey's Guide to Writing Parallel Applications" by Clay Breshears works great as a reference and guide for determining when parallelization may be possible, how it could be done, and what to look out for.

        The book introduces the reader to parallel programming with a set of useful rules and guidelines to follow to plan for optimizing algorithms by distributing workloads through concurrent programming. Much of the remainder of the book enumerates some common tasks and how to make them concurrent. One of the best parts of the common task listing is the scorecard for evaluating the quality of the implementation. The scorecard includes the useful performance factors of "efficiency" and "scalability". It also includes the important details of "simplicity" and "portability", important when evaluating methods for maintainable code.
        The common threading tools OpenMP, Intel Thread Building Blocks, and POSIX threads are described in the early chapters and sprinkled throughout the examples in a useful manner, providing exposure to different ways one might implement concurency; not everyone needs to re-invent the wheel when optimizing tasks.

        (6 of 13 customers found this review helpful)

         
        4.0

        Content ok, style strange

        By Chrilly

        from Altmelon, Austria/Europe

        About Me Designer, Developer

        Verified Reviewer

        Pros

        • Accurate
        • Helpful examples

        Cons

          Best Uses

          • Expert
          • Intermediate

          Comments about O'Reilly Media The Art of Concurrency:

          The book is a good introduction into concurrent/parallel programming on shared memory machines. It shows how one can use the multiple cores on modern PCs. The author presents usefull examples in C++ (its in fact C). He covers OpenMP, TBB, Unix-Pthreads and Windows-Threads in a balanced way. There are (naturally) no MPI examples.
          A drawback of the book is the writing style. The author takes himself to serious and important. He "speaks" sometimes to the reader like a mother to a 3 years old child. Just to impress the reader, he mentions several times that he has a PhD in Computer-Science. Personally I was not impressed, because for a mathematician CS is a second-hand discipline. But that's another story.

          Another drawback of the book is, that the code is not available on the net.

          Displaying reviews 1-3

          Back to top

           
          Buy 2 Get 1 Free Free Shipping Guarantee
          Buying Options
          Immediate Access - Go Digital what's this?
          Ebook: $35.99
          Formats:  DAISY, ePub, Mobi, PDF
          Print & Ebook: $49.49
          Print: $44.99