Skip to main content

An Introduction to Parallel Programming

  • 3rd Edition - December 28, 2026
  • Latest edition
  • Author: Steven A. Wright
  • Language: English

An Introduction to Parallel Programming, Third Edition presents a tried-and-true tutorial approach that shows students how to develop effective parallel programs with MPI, Pthrea… Read more

Purchase options

Sorry, this title is not available for purchase in your country/region.

Description

An Introduction to Parallel Programming, Third 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 new edition carries forward its clear explanations for designing, debugging and evaluating the performance of distributed and shared-memory programs while adding coverage of such topics as target directives in OpenMP for programming GPUs. 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

Readership

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

Table of contents

1. Why parallel computing

2. Parallel hardware and parallel software

3. Shared-memory programming with Pthreads

4. Shared-memory programming with OpenMP

5. Distributed memory programming with MPI

6. GPU programming with OpenMP (new)

7. GPU programming with CUDA

8. Parallel program development

9. Where to go from here

Product details

  • Edition: 3
  • Latest edition
  • Published: December 28, 2026
  • Language: English

About the author

SW

Steven A. Wright

Steven A. Wright is a Senior Lecturer in Computer Science at the University of York, having joined the department in July 2018. He is a member of the Real-Time and Distributed Systems research group, and his research is broadly focused on High Performance Computing, in particular looking at the performance, programmability and energy efficiency of supercomputers and the scientific computing applications running on them. He has collaborated widely with colleagues from national laboratories, universities and industry, including the US Department of Energy, the UK Atomic Energy Authority, the York Plasma Institute, Rolls-Royce, Intel, NVIDIA, ARM and IBM.

Prior to joining York, he was a Research Fellow within the High Performance and Scientific Computing (HPSC) research group at the University of Warwick, working on projects with the Centre for Fusion, Space and Astrophysics, Sandia National Laboratories and Rolls-Royce. He completed his Ph. D. at Warwick in 2014 with a thesis titled Monitoring, Analysis and Optimisation of I/O in Parallel Applications.

At York he has taught across the degree programme, and he is currently the Programme Lead for all on-campus CS Undergraduate Programmes. He currently leads the High-Performance Parallel and Distributed Systems (HIPC) module, and previously led the Software Testing (SOTE) module.

Affiliations and expertise
Department of Computer Science, University of York, UK