A list of book releases compiled by Dr. Dobb's to keep you up-to-date on parallel programming and multicore technology.
Parallel Processing for Scientific Computing
edited by Padma Raghavan, Horst D. Simon, and Michael A. Heroux
Scientific computing has often been called the third approach to scientific discovery, emerging as a peer to experimentation and theory. Parallel processing has been an enabling technology in scientific computing for more than 20 years. This reflects the mix of topics that mathematicians, computer scientists, and computational scientists focus on to make parallel processing effective for scientific problems. The book is divided into four parts: The first concerns performance modeling, analysis, and optimization; the second focuses on parallel algorithms and software for an array of problems common to many modeling and simulation applications; the third emphasizes tools and environments that can ease and enhance the process of application development; and the fourth provides a sampling of applications that require parallel computing for scaling to solve larger and realistic models that can advance science and engineering.
Petascale Computing: Algorithms and Applications
edited by David A. Bader
From scalable algorithm design for massive concurrency to performance analyses and scientific visualization, this book captures the state of the art in high-performance computing algorithms and applications. Featuring contributions from the world’s leading experts in computational science, this edited collection explores the use of petascale computers for solving the most difficult scientific and engineering problems of the current century.
Transactional Memory: Synthesis Lectures on Computer Architecture
by James Larus and Ravi Rajwar
The advent of multicore processors has renewed interest in the idea of incorporating transactions into the programming model used to write parallel programs. This approach, known as transactional memory, offers an alternative, and hopefully better, way to coordinate concurrent threads. The ACI (atomicity, consistency, isolation) properties of transactions provide a foundation to ensure that concurrent reads and writes of shared data do not produce inconsistent or incorrect results. At a higher level, a computation wrapped in a transaction executes atomically -- either it completes successfully and commits its result in its entirety or it aborts. In addition, isolation ensures the transaction produces the same result as if no other transactions were executing concurrently. Although transactions are not a parallel programming panacea, they shift much of the burden of synchronizing and coordinating parallel computations from a programmer to a compiler, runtime system, and hardware. The challenge for the system implementers is to build an efficient transactional memory infrastructure. This book presents an overview of the state of the art in the design and implementation of transactional memory systems (as of early summer 2006).