February 25, 2009
This Week's Multicore Reading List
Deirdre Blake
Threading Building Blocks, Patterns, Concurrency for Windows, and more.
A list of book releases compiled by Dr. Dobb's to keep you up-to-date on parallel programming and multicore technology.
Patterns for Parallel Programming
Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill
Patterns for Parallel Programming is designed to help people new to parallel computing "think parallel." It uses design patterns to present the essence of how experts think about parallel programming. Examples are provided in MPI, OpenMP, and Java; though really the book is useful for any parallel programming language you may choose to use. For more on what Tim Mattson has to say about "thinking parallel," listen to this Dr. Dobb's interview with Tim Mattson. (Audio file.)
Principles of Parallel Programming
Calvin Lin and Larry Snyder
Principles of Parallel Programming emphasizes the principles underlying parallel computation, explains the various phenomena, and clarifies why these phenomena represent opportunities or barriers to successful parallel programming. Principles of Parallel Programming supplies enduring knowledge that will outlive the current hardware and software, aiming to inspire future researchers to build tomorrow's solutions.
Concurrent Programming on Windows
Joe Duffy
Concurrent Programming on Windows explains how to design, implement, and maintain large-scale concurrent programs, primarily using C# and C++ for Windows. For details, see this review by Mike Riley.
Multi-Core Programming: Increasing Performance through Software Multithreading
Shameem Akhter and Jason Roberts
Software developers can no longer rely on increasing clock speeds alone to speed up single-threaded applications; instead, to gain a competitive advantage, developers must learn how to properly design their applications to run in a threaded environment. Multicore architectures have a single processor package that contains two or more processor "execution cores," or computational engines, and deliver -- with appropriate software -- fully parallel execution of multiple software threads. For more information, see Fundamental Concepts of Parallel Programming, also by Shameem Akhter and Jason Roberts.
Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism
James Reinders
Parallelism for C++ as defined by Intel Threading Building Blocks is being heralded as the key for multi-core programming in C++. In this book, James Reinders explains the library in a way that furnishes novices and experts alike with a clear and accessible discussion of the complexities of concurrency.