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: 111
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

Programming Persistent Memory

Defensive Database Programming with SQL Server

An Introduction to C & GUI Programming

Programming for Computations - Python

Fundamentals of C++ Programming

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

Data Parallel C++

Learn how to accelerate C++ programs using data parallelism. This open book enables C++ programmers to be at the forefro.....

Advanced Python, course with exercises

This tutorial is a self­learning document in PDF for a course in Python programming intended to advanced students level....

Mastering Python

Python is a dynamic programming language. It is known for its high readability and hence i..., download free Python tutorial in PDF (486 pages) created by Rick van Hattem ....

Think Python - How to Think Like a Computer Scientist

Think Python is an introduction to Python programming for students with no programming experience. It starts with the most basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, ...

25 Secrets for Faster ASP.NET Applications

Download free course 25 Secrets for Faster ASP.NET Applications, pdf file on 38 pages by Red Gate....

J2EE for NetBeans

Download free Java J2EE for NetBeans course material, tutorial training, a PDF file on 330 pages...

C# Features Succinctly

Download free course C# Features Succinctly, pdf file on 77 pages by Dirk Strauss....

OpenCOBOL Guide for programmers

This PDF tutorial describes the syntax and usage of the COBOL programming language as implemented by the current version of OpenCOBOL ,it's a free training document under 259 pages designated to intermediate users level....

Introduction to Programming with Fortran

Download free course Introduction to Programming with Fortran, pdf file on 963 pages by Ian Chivers, Jane Sleightholme....

Tutorial XML in PDF

Download free XML tutorial course in PDF, training file in 8 chapters and 25 pages. Free unaffiliated ebook created from Stack OverFlow contributor....