An Introduction to Parallel Programming by Peter Pacheco

September 3, 2010  [MK] Andrea

An Introduction to Parallel Programming Morgan Kaufmann is excited to announce the forthcoming publication of An Introduction to Parallel Programming, by Peter S. Pacheco.  The text is due out in January, 2011.

About the Book

Parallel programming is no longer just for specialists. If you want to fully exploit the power of clusters and multicore processors, it’s essential that you learn the basics of distributed- and shared-memory parallel programming. An Introduction to Parallel Programming uses a tutorial approach to show you how to develop effective parallel programs with MPI, PThreads, and OpenMP. Whether you are a student or a practicing professional, Peter Pacheco’s new book will show you how to design, debug, and evaluate the performance of distributed and shared-memory programs.

Key Features

  • Features a tutorial approach, starting with small programming examples and building progressively to more challenging examples
  • Focuses on designing, debugging and evaluating the performance of distributed and shared-memory programs
  • Stresses hands-on development of parallel programs, using MPI, PThreads, and OpenMP programming models

Who should read this book?

This book is specifically written for students in undergraduate parallel programming or parallel computing courses designed for the computer science major or as a service course to other departments.  It’s also a great resource for professionals with no background in parallel computing.

Table of Contents

1 Why Parallel Computing
1.1 Why We Need Ever-Increasing Performance
1.2 Why We’re Building Parallel Systems
1.3 Why We Need to Write Parallel Programs
1.4 How Do We Write Parallel Programs?
1.5 What We’ll Be Doing
1.6 Concurrent, Parallel, Distributed
1.7 The Rest of the Book
1.8 A Word of Warning
1.9 Typographical Conventions
1.10 Summary
1.11 Exercises

2 Parallel Hardware and Parallel Software
2.1 Some Background
2.2 Modifications to the von Neumann Model
2.3 Parallel Hardware
2.4 Parallel Software
2.5 Input and Output
2.6 Performance
2.7 Parallel Program Design
2.8 Writing and Running Parallel Programs
2.9 Assumptions
2.10 Summary
2.11 Exercises

3 Distributed Memory Programming with MPI
3.1 Getting Started
3.2 The Trapezoidal Rule in MPI
3.3 Dealing with I/O
3.4 Collective Communication
3.5 MPI Derived Datatypes
3.7 A Parallel Sorting Algorithm
3.8 Summary
3.9 Exercises
3.10 Programming Assignments

4 Shared Memory Programming with Pthreads
4.1 Processes, Threads and Pthreads
4.2 Hello, World
4.3 Matrix-Vector Multiplication
4.4 Critical Sections
4.5 Busy-Waiting
4.6 Mutexes
4.7 Producer-Consumer Synchronization and Semaphores
4.8 Barriers and Condition Variables
4.9 Read-Write Locks
4.10 Caches, Cache-Coherence, and False Sharing
4.11 Thread-Safety
4.12 Summary
4.13 Exercises
4.14 Programming Assignments

5 Shared Memory Programming with OpenMP
5.1 Getting Started
5.2 The Trapezoidal Rule
5.3 Scope of Variables
5.4 The Reduction Clause
5.5 The Parallel For Directive
5.6 More About Loops in OpenMP: Sorting
5.7 Scheduling Loops
5.8 Producers and Consumers
5.9 Caches, Cache-Coherence, and False Sharing
5.10 Thread-Safety
5.11 Summary
5.12 Exercises
5.13 Programming Assignments

6 Parallel Program Development and Parallel Algorithms
6.1 Two N-Body Solvers
6.2 Tree Search
6.3 A Word of Caution
6.4 Which API?
6.5 Summary
6.6 Exercises
6.7 Programming Assignments

7 Where to Go from Here

ISBN: 9780123742605 | View in bookstore

Bookmark and Share

1 Comment
   Raju k said on December 27, 2010 at 1:07 am

the best

Tell us what you think!

Comments

*