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



Download free course Is Parallel Programming Hard, And, If So, What Can You Do About It?, pdf file on 601 pages by Paul E. McKenney.
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!

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
File type : PDF
Downloads: 113
Created: 2022-02-03
License: CC BY-SA
Author(s): Paul E. McKenney
Is Parallel Programming Hard, And, If So, What Can You Do About It?

Others programming Tutorials

Java-Based Real-Time Programming

An Introduction to C & GUI Programming

Introduction to C and GUI Programming

Fundamentals of Python Programming

Introduction to Computers and Programming

Others related eBooks about Is Parallel Programming Hard, And, If So, What Can You Do About It?

Ruby Regexp

Scripting and automation tasks often need to extract particular portions of text from inpu..., download free Ruby tutorial in PDF (72 pages) created by ....

Android Tutorial

This tutorial is a brief overview of some Android concepts designated to beginners who want to learn the basics of Android programming language. It's a free training couses in PDF under 48 pages by Larry Walters....

Android™ Notes for Professionals

The fast-growing popularity of Android smartphones and tablets creates a huge opportunities for developers. If you're an experienced developer, you can start creating robust mobile Android apps right away with this professional guide....

C++ Hacker's Guide

Download free course C++ Hacker's Guide, pdf file on 231 pages by Steve Oualine....

C++ Pointers and Memory

This document explains how pointers and memory work and how to use them—from the basic concepts through all the major programming techniques. For each topic there is a combination of discussion, sample C code, and drawings....

Learn Programming

Download free course Learn Programming, pdf file on 465 pages by Antti Salonen....

The Rook's Guide to C++

This Creative Commons-licensed textbook written by Norwich University students and faculty aims to provide an introduction to the C++ programming language. The PDF and original typesetting materials are available if you are interested in having a free digital copy of your own or if you wish to contr...

OOP - Learn Object Oriented Thinking and Programming

Download free course OOP - Learn Object Oriented Thinking and Programming, pdf file on 527 pages by Rudolf Pecinovský....

DotNet for professionnals

Download free DotNet tutorial course in PDF, training file in 58 chapters and 192 pages. Free unaffiliated ebook created from Stack OverFlow contributor....

Reverse Engineering for Beginners

Download free ebook about Reverse Engineering for Beginners. A PDF tutorial on 942 pages by Dennis Yurichev....