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 presenting the engineering discipline underlying successful parallel-programming projects will free a new generation of parallel hackers from the need to slowly and painstakingly reinvent old wheels, enabling them to instead focus their energy and creativity on new frontiers. However, what you get from this book will be determined by what you put into it. It is hoped that simply reading this book will be helpful, and that working the Quick Quizzes will be even more helpful. However, the best results come from applying the techniques taught in this book to real-life problems. As always, practice makes perfect.
But no matter how you approach it, we sincerely hope that parallel programming brings you at least as much fun, excitement, and challenge that it has brought to us!
Table of contents
- How To Use This Book
- Introduction
- Hardware and its Habits
- Tools of the Trade
- Counting
- Partitioning and Synchronization Design
- Locking
- Data Ownership
- Deferred Processing
- Data Structures
- Validation
- Formal Verification
- Putting It All Together
- Advanced Synchronization
- Advanced Synchronization: Memory Ordering
- Ease of Use
- Conflicting Visions of the Future
- Looking Forward and Back
- Important Questions
- "Toy" RCU Implementations
- Why Memory Barriers?
- Style Guide
- Answers to Quick Quizzes
Pages : | 601 |
Size : | 11.7 MB |
Downloads: | 126 |
Created: | 2022-02-03 |
License: | CC BY-SA |
Author(s): | Paul E. McKenney |
Warning: Trying to access array offset on false in /home/tutovnfz/public_html/amp/article-amp.php on line 263
Others related eBooks about Is Parallel Programming Hard, And, If So, What Can You Do About It?
This programming fundamentals tutorial in PDF format covers the key concepts and principles that are essential for anyone looking to become a proficient coder. The tutorial begins with an introduction to programming, explaining the basic concepts and terminologies that underlie all programming langu
Download free course Object-oriented Programming in C#, pdf file on 485 pages by Kurt Normark.
Download free course OOP - Learn Object Oriented Thinking and Programming, pdf file on 527 pages by Rudolf Pecinovský.
Mathematica is a feature-rich, high-level programming language which has historically been used by engineers. This book unpacks Mathematica for programmers, building insights into programming style via real world syntax, real world examples, and extensive parallels to other languages.
Advanced Linux Programming is divided into two parts. The first covers generic UNIX system services, but with a particular eye towards Linux specific information. This portion of the book will be of use even to advanced programmers who have worked with other Linux systems since it will cover Linux