Computer ScienceScience & MathematicsEconomics & FinanceBusiness & ManagementPolitics & GovernmentHistoryPhilosophy

Is Parallel Programming Hard, And, If So, What Can You Do About It?

by Paul E. McKenney

Is Parallel Programming Hard, And, If So, What Can You Do About It?

Subscribe to new books via dBooks.org telegram channel

Join
DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

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 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!

This open book is licensed under a Creative Commons License (CC BY-SA). You can download Is Parallel Programming Hard, And, If So, What Can You Do About It? ebook for free in PDF format (11.7 MB).

Table of Contents

Chapter 1
How To Use This Book
Chapter 2
Introduction
Chapter 3
Hardware and its Habits
Chapter 4
Tools of the Trade
Chapter 5
Counting
Chapter 6
Partitioning and Synchronization Design
Chapter 7
Locking
Chapter 8
Data Ownership
Chapter 9
Deferred Processing
Chapter 10
Data Structures
Chapter 11
Validation
Chapter 12
Formal Verification
Chapter 13
Putting It All Together
Chapter 14
Advanced Synchronization
Chapter 15
Advanced Synchronization: Memory Ordering
Chapter 16
Ease of Use
Chapter 17
Conflicting Visions of the Future
Chapter 18
Looking Forward and Back
Appendix A
Important Questions
Appendix B
"Toy" RCU Implementations
Appendix C
Why Memory Barriers?
Appendix D
Style Guide
Appendix E
Answers to Quick Quizzes

Book Details

Title
Is Parallel Programming Hard, And, If So, What Can You Do About It?
Subject
Computer Science
Publisher
Self-publishing
Published
2021
Pages
601
Edition
2
Language
English
PDF Size
11.7 MB
License
CC BY-SA

Related Books

Coronavirus: A book for children
Coronavirus - there's a new word you might have heard. You might hear people talking about it or you might hear it on the news. This word is the reason that you're not going to school. It is the reason you can't go outside very often or visit your friends. It might be the reason why the grown-up or grown-ups who look after you are at...
Pro TBB
This book is a modern guide for all C++ programmers to learn Threading Building Blocks (TBB). Written by TBB and parallel programming experts, this book reflects their collective decades of experience in developing and teaching parallel programming with TBB, offering their insights in an approachable manner. Throughout the book the authors present ...
XcalableMP PGAS Programming Language
XcalableMP is a directive-based parallel programming language based on Fortran and C, supporting a Partitioned Global Address Space (PGAS) model for distributed memory parallel systems. This open book presents XcalableMP language from its programming model and basic concept to the experience and performance of applications described in XcalableMP.�...
Wellbeing and Devolution
"In this book, Wallace elegantly shows how committed government intervention can improve wellbeing with rigour and impact. It's an essential read for anyone concerned with the future of the UK."Julia Unwin, CBE"As someone who commissioned one of the first attempts to learn from the devolved nations I am delighted to see this pub...
Solidarity in Europe
This open access volume provides evidence-based knowledge on European solidarity and citizen responses in times of crisis. Does the crisis of European integration translate into a crisis of European solidarity, and if yes, what are the manifestations at the level of individual citizens? How strongly is solidarity rooted at the individual level, bot...
Old and New Perspectives on Mortality Forecasting
This book describes methods of mortality forecasting and discusses possible improvements. It contains a selection of previously unpublished and published papers, which together provide a state-of-the-art overview of statistical approaches as well as behavioural and biological perspectives. The different parts of the book provide discussions of cu...