Fundamentals of Multicore Software Development: 1st Edition (Paperback) book cover

Fundamentals of Multicore Software Development

1st Edition

Edited by Victor Pankratius, Ali-Reza Adl-Tabatabai, Walter Tichy

CRC Press

330 pages | 101 B/W Illus.

Purchasing Options:$ = USD
Paperback: 9781138114371
pub: 2017-07-19
Hardback: 9781439812730
pub: 2011-12-12
eBook (VitalSource) : 9780429149047
pub: 2011-12-12
from $39.98

FREE Standard Shipping!


With multicore processors now in every computer, server, and embedded device, the need for cost-effective, reliable parallel software has never been greater. By explaining key aspects of multicore programming, Fundamentals of Multicore Software Development helps software engineers understand parallel programming and master the multicore challenge.

Accessible to newcomers to the field, the book captures the state of the art of multicore programming in computer science. It covers the fundamentals of multicore hardware, parallel design patterns, and parallel programming in C++, .NET, and Java. It also discusses manycore computing on graphics cards and heterogeneous multicore platforms, automatic parallelization, automatic performance tuning, transactional memory, and emerging applications.

As computing power increasingly comes from parallelism, software developers must embrace parallel programming. Written by leaders in the field, this book provides an overview of the existing and up-and-coming programming choices for multicores. It addresses issues in systems architecture, operating systems, languages, and compilers.


Fundamentals of Multicore Software Development provides a well-organized overview of advances in parallel architectures and software programming. … This reviewer learned much from [the book] and highly recommends it, whether for personal interest or for use as an introductory text.

—Robert Schaefer, ACM SIGSOFT Software Engineering Notes, May 2012

The individual chapters are well written and self contained; they can be read independently yet fit together well into a coherent and logical presentation. Each chapter includes extensive references. … The book will likely appeal most to researchers. …

—Andrew R. Huber, Computing Reviews, March 2012

This book paints a great picture of where we are, and gives more than an inkling of where we may go next. As we gain broader, more general experience with parallel computing based on the foundation presented here, we can be sure that we are helping to rewrite the next chapter — probably the most significant one — in the amazing history of computing.

—From the Foreword by Burton J. Smith, Technical Fellow, Microsoft Corporation

Table of Contents

Introduction, Victor Pankratius, Ali-Reza Adl-Tabatabai, and Walter Tichy

Basics of Parallel Programming

Fundamentals of Multicore Hardware and Parallel Programming, Barry Wilkinson

Parallel Design Patterns, Tim Mattson

Programming Languages for Multicore

Threads and Shared Variables in C++, Hans Boehm

Parallelism in .NET and Java, Judith Bishop

OpenMP, Barbara Chapman and James LaGrone

Programming Heterogeneous Processors

Scalable Manycore Computing with CUDA, Michael Garland, Vinod Grover, and Kevin Skadron

Programming the Cell Processor, Christoph Kessler

Emerging Technologies

Automatic Extraction of Parallelism from Sequential Code, David I. August, Jialu Huang, Thomas B. Jablin, Hanjun Kim, Thomas R. Mason, Prakash Prabhu, Arun Raman, and Yun Zhang

Auto-Tuning Parallel Application Performance, Christoph Schaefer, Victor Pankratius, and Walter Tichy

Transactional Memory, Tim Harris

Emerging Applications, Pradeep Dubey

About the Editors

Victor Pankratius heads the Multicore Software Engineering group at the Karlsruhe Institute of Technology. He is also the elected chairman of the Software Engineering for Parallel Systems (SEPARS) international working group. With a focus on making parallel programming easier, his research encompasses auto-tuning, language design, debugging, and empirical studies.

Ali-Reza Adl-Tabatabai is a senior principal engineer at Intel Corporation, where he leads a team working on compilers and scalable runtimes. His research concentrates on language features that make it easier to build reliable and scalable parallel programs for future multicore architectures.

Walter Tichy is a professor of computer science and head of the Programming Systems group at the Karlsruhe Institute of Technology. He is also a member of the board of directors of software engineering at Forschungszentrum Informatik (FZI), an independent research institution. His research covers tools and methods to simplify the engineering of general-purpose parallel software, including race detection, auto-tuning, and high-level languages for expressing parallelism.

About the Series

Chapman & Hall/CRC Computational Science

Learn more…

Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Programming Languages / General
COMPUTERS / Software Development & Engineering / General