Is Parallel Programming Hard, And, If So, What Can You Do About It? (Release v2023.06.11a)
Paul E. McKenney

TL;DR
This book aims to make shared-memory parallel programming more accessible by presenting practical engineering approaches, automation opportunities, and foundational knowledge to help programmers tackle complex tasks effectively.
Contribution
It introduces an engineering perspective to parallel programming, emphasizing task-specific approaches and automation, to simplify and advance the field.
Findings
Parallel programming is increasingly an engineering discipline.
Certain parallel tasks can be automated.
Practical techniques improve parallel programming effectiveness.
Abstract
The purpose of this book is to help you program shared-memory parallel systems without risking your sanity. Nevertheless, you should think of the information in this book as a foundation on which to build, rather than as a completed cathedral. Your mission, if you choose to accept, is to help make further progress in the exciting field of parallel programming-progress that will in time render this book obsolete. Parallel programming in the 21st century is no longer focused solely on science, research, and grand-challenge projects. And this is all to the good, because it means that parallel programming is becoming an engineering discipline. Therefore, as befits an engineering discipline, this book examines specific parallel-programming tasks and describes how to approach them. In some surprisingly common cases, these tasks can be automated. This book is written in the hope that…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Parallel Computing and Optimization Techniques
