An Introduction to Parallel Programming

An Introduction to Parallel Programming

2nd Edition - August 27, 2021

Write a review

  • Authors: Peter Pacheco, Matthew Malensek
  • eBook ISBN: 9780128046180
  • Paperback ISBN: 9780128046050

Purchase options

Purchase options
DRM-free (PDF, EPub)
In Stock
Sales tax will be calculated at check-out

Institutional Subscription

Free Global Shipping
No minimum order


An Introduction to Parallel Programming, Second Edition presents a tried-and-true tutorial approach that shows students how to develop effective parallel programs with MPI, Pthreads and OpenMP.As the first undergraduate text to directly address compiling and running parallel programs on multi-core and cluster architecture, this second edition carries forward its clear explanations for designing, debugging and evaluating the performance of distributed and shared-memory programs while adding coverage of accelerators via new content on GPU programming and heterogeneous programming. New and improved user-friendly exercises teach students how to compile, run and modify example programs.

Key Features

  • Takes a tutorial approach, starting with small programming examples and building progressively to more challenging examples
  • Explains how to develop parallel programs using MPI, Pthreads and OpenMP programming models
  • A robust package of online ancillaries for instructors and students includes lecture slides, solutions manual, downloadable source code, and an image bank

    New to this edition:
  • New chapters on GPU programming and heterogeneous programming
  • New examples and exercises related to parallel algorithms


Students in undergraduate parallel programming or parallel computing courses designed for the computer science major or as a service course to other departments; professionals with no background in parallel computing

Table of Contents

  • 1. Why parallel computing
    2. Parallel hardware and parallel software
    3. Distributed memory programming with MPI
    4. Shared-memory programming with Pthreads
    5. Shared-memory programming with OpenMP
    6. GPU programming with CUDA
    7. Parallel program development
    8. Where to go from here

Product details

  • No. of pages: 496
  • Language: English
  • Copyright: © Morgan Kaufmann 2021
  • Published: August 27, 2021
  • Imprint: Morgan Kaufmann
  • eBook ISBN: 9780128046180
  • Paperback ISBN: 9780128046050

About the Authors

Peter Pacheco

Peter Pacheco received a PhD in mathematics from Florida State University. After completing graduate school, he became one of the first professors in UCLA’s “Program in Computing,” which teaches basic computer science to students at the College of Letters and Sciences there. Since leaving UCLA, he has been on the faculty of the University of San Francisco. At USF Peter has served as chair of the computer science department and is currently chair of the mathematics department.

His research is in parallel scientific computing. He has worked on the development of parallel software for circuit simulation, speech recognition, and the simulation of large networks of biologically accurate neurons. Peter has been teaching parallel computing at both the undergraduate and graduate levels for nearly twenty years. He is the author of Parallel Programming with MPI, published by Morgan Kaufmann Publishers.

Affiliations and Expertise

University of San Francisco, USA

Matthew Malensek

Matthew Malensek is an Assistant Professor in the Department of Computer Science at the University of San Francisco. His research interests are centered around big data, parallel/distributed systems, and cloud computing. This includes systems approaches for processing and managing data at scale in a variety of domains, including fog computing and Internet of Things (IoT) devices.

Affiliations and Expertise

Assistant Professor, Department of Computer Science, University of San Francisco, CA, USA

Ratings and Reviews

Write a review

Latest reviews

(Total rating for all reviews)

  • Yacob C. Sun Dec 26 2021

    Very good introductory to Parallel algorithm

    Good C lang examples. Clear text language and easy to understand. Cutting edge and up to date about cache, SOA/AOS, MPI, multi processing, Cuda, NUNA and similar. highly recommended.