Technical Books for Multi-Core Software Developers

Submit New Article

Last Modified On :   October 16, 2007 3:51 PM PDT
Rate
 


Highly recommended books for Threading and Parallel programming

aoc-breshears.gifThe Art of Concurrency - A Thread Monkey's Guide to Writing Parallel Applications By Clay Breshears

"The Art of Concurrency" focuses on implementing algorithms in the shared-memory model of multi-core processors and will give you the hands-on experience you need. You'll get detailed explanations and usable samples to help you transform algorithms from serial to parallel code, along with advice and analysis to steer you clear of mistakes.

Buy Now!

 


Intel® Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism, by 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. The book is also packed with illustrative examples.

Buy Now!

 


Patterns for Parallel Programming, by Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill

This book 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.

Buy Now!

 

Principles of Parallel Programming, by Calvin Lin and Larry Snyder.

The book emphasizes the principles underlying parallel computation, explains the various phenomena, and clarifies why these phenomena represent opportunities or barriers to successful parallel programming. Ideal for an advanced upper-level undergraduate course, 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.

Buy Now!

 

Concurrent Programming on Windows, by Joe Duffy.

This book explains how to design, implement, and maintain large-scale concurrent programs, primarily using C# and C++ for Windows.

Buy Now!

 

Multi-core+programming.gifMulti-Core Programming Increasing Performance through Software Multi-threading, by Shameem Akhter and Jason Roberts.

Discover programming techniques for Intel multi-core architecture and Hyper-Threading Technology

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. Multi-core 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. Hyper-Threading Technology enables additional threads to operate on each core.

Intel Press ISBN 0-9764832-4-6  For more information please check at: www.intel.com/intelpress

 

Software Development for Embedded Multi-Core Systems, by Max Domeika

A Practical Guide Using Embedded Intel Architecture that provides embedded engineers with solid grounding in the skills required to develop software targeting multicore processors. Within the text, the author undertakes an in-depth exploration of performance analysis, and a close-up look at the tools of the trade.

Buy Now!

 

Real_World_Haskell.gif Real World Haskell, by John Goerzen, Bryan O'Sullivan, Donald Bruce Stewart

This easy-to-use, fast-moving tutorial introduces you to functional programming with Haskell. You'll learn how to use Haskell in a variety of practical ways, from short scripts to large and demanding applications.

Buy Now!

 

Using OpenMP Portable Shared Memory Parallel Programming, by Barbara Chapman, Gabriel Jost and Ruud Van Der Pas

OpenMP is the number one API for shared memory parallel computers. This book discusses OpenMP version 2.5 and is the most up to date text available about this important language and how it is used. The emphasis is on scientific computing, but the algorithms and techniques described are relevant to any class of parallel algorithm.

Buy Now!

 

Programming with POSIX® Threads, by David R. Butenhof

An in-depth description of the IEEE operating system interface standard, POSIX threads, commonly called Pthreads. You will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. --- Amazon.com

Buy Now!

 

Win32 Multithreaded Programming, by Cohen and Woodring

The book is currently out of print, but still worth noting as a great referance for Win32 Multithreaded Programing.

 

Buy Used Now!

 

Java Concurrency in Practice, by Brian Goetz et al.

Brian's book covers the basic concepts of concurrency and thread safety, techniques for building and composing thread-safe classes, and using the concurrency building blocks in java.util.concurrent. It also includes performance optimization dos and don'ts, testing concurrent programs and advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model.

Buy Now!

 

Concurrent Programming in Java, by Douglas Lea

The Java platform provides a broad and powerful set of APIs, tools, and technologies. One of its most powerful capabilities is the built-in support for threads. This makes concurrent programming an attractive yet challenging option for programmers using the Java programming language.

The book shows readers how to use the Java platform's threading model more precisely by helping them to understand the patterns and tradeoffs associated with concurrent programming.  --- Amazon.com

Buy Now!

 

Principles of Concurrent Programming, by M. Ben-Ari

 

 

 

Buy Now!

 

Principles of Concurrent and Distributed Programming (2nd edition), by M. Ben-Ari

The book focuses on algorithmic principles rather than language syntax with an emphasis on the use of the Spin model checker for modeling concurrent systems and verifying program correctness and includes and explains the implementation of concurrency in the Java and Ada languages. It also helps to facilitate lab work with software tools for learning concurrent and distributed programming.  --- Amazon.com

Buy Now!

 

Parallel Programming in C with MPI and OpenMP, by Michael J. Quinn

This book is a great introduction to parallel computing. It is pragmatic and focuses on what you need to know to be productive with C and MPI or OpenMP.

 

Buy Now!

 

Twelve Ways to Fool the Masses When giving Performance Results on Parallel Computers, David H. Bailey, Supercomputing Review, Aug. 1991, pp. 54-55

This is one of the most cited papers in the parallel computing literature. Want to know how to manipulate your manager using performance results? This is the paper for you.

Download Now!