“Is Parallel Programming Hard, And, If So, What Can You Do About It?”, by Paul E. McKenney, will help you create shared-memory parallel software with a minimum of pain. You can download it in pdf format for free.
Book Description
The purpose of this book is to help you understand how to program shared-memory parallel machines without risking your sanity. By describing the algorithms and designs that have worked well in the past, we hope tohelp you avoid at least some of the pitfalls that have beset parallel projects. But you should think of this book as a foundation on which to build, rather than as a completed cathedral.
Table of Contents
- Introduction
- Hardware and its Habits
- Tools of the Trade
- Counting
- Partitioning and Synchronization Design
- Locking
- Data Ownership
- Deferred Processing
- Applying RCU
- Validation
- Data Structures
- Advanced Synchronization
- Ease of Use
- Time Management
- Conflicting Visions of the Future