Intermediate Parallel and Distributed Computing¶
By: Elizabeth Shoop (CSinParallel project and Macalester College)
With assistance and inspiration from Joel Adams, Richard Brown, and Suzanne Matthews (The CSinParallel project team)
This book is designed as a follow-on from our PDC for Beginners book. If you already have some experience with OpenMP, MPI, and CUDA coding, then you may be able to start with this book.
A hallmark of this book, like PDC for Beginners, is that the programs presented here can be run directly from this book, enabling learners to experience PDC concepts immediately.
All of the code in this book can be found on a GitHub repo for the CSInParallel Project. Please feel free to explore that if you want to have your students try the code on lab machines.
NOTE: THIS BOOK IS A WORK IN PROGRESS! However, there are eight solid chapters available. We hope to add further examples and suggestions for projects based on starting point code representing real-world high-performace computing problems. So please stay tuned!
Table of Contents¶
- About Intermediate Parallel and Distributed Computing
- CHAPTER 1: PDC Patterns
- CHAPTER 2: Shared Memory Patterns using OpenMP
- CHAPTER 3: Random Number Generators for PDC
- Chapter 4: Message Passing Parallel Patternlets
- Chapter 5: Message Passing: combining patterns
- Chapter 6: Message Passing Example Applications
- Chapter 7: OpenACC Basics
- Chapter 8: OpenACC Next steps
To Cite:¶
Shoop E., and members of CSInParallel. Intermediate PDC, 1.0 Edition. Available online
Acknowledgements¶
This work is sponsored in part by
U.S. National Science Foundation (NSF) Collaborative Research Grants DUE-1822480/1822486/1855761. Collaborative Research: CSinParallel: Experiential Learning of Parallel and Distributed Computing through Sight, Sound, and Touch.
This work is also sponsored in part by:
United States Military Academy (USMA) Award Number W911NF-23-2-0044. USMA, as the Federal awarding agency, reserves a royalty-free, nonexclusive and irrevocable right to reproduce, publish, or otherwise use this software for Federal purposes, and to authorize others to do so in accordance with 2 CFR 200.315(b).
License¶
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.