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: 130
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?

Warning: Trying to access array offset on false in /home/tutovnfz/public_html/article.php on line 233

Others programming Tutorials

Programming for Computations - Python

Programming for Computations - Python, 2nd Edition

C Programming Notes for Professionals

Professor Frisby's Mostly Adequate Guide to Functional Programming

OOP - Learn Object Oriented Thinking and Programming

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

VB.NET Quick Guide

The purpose of this PDF tutorial is to provide a quick learning guide to programming for the students who wants to buils their own application with Microsoft VB.Net ....

DevOps for Digital Leaders

Learn to design, implement, measure, and improve DevOps programs that are tailored to your..., download free DevOps tutorial in PDF (173 pages) created by Kieran Taylor ....

Essential Algorithms

This book written to provide clear and concise explanation of topics for programmers both starting to learn the Algorithms as well as those diving in more complex topics. Most examples are linked to online playground that allows you to change the code and re-run it....

A Byte of Python

This is a free book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience. If all you know about computers is how to save text files, then this is the book for you. This book is written for the latest Python 3, even though Python ...

Using Perl 6

This book is primarily for people who want to learn Perl 6. It teaches the basics from a Perl 6 perspective, touching on variable interpolation, datastructure use, object construction, threads, closures, symbol tables, and other core features. It then introduces continuations, coroutines, binding (o...

Getting started with DOM

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

: Advanced R, Second Edition

This book helps you understand how R works at a fundamental level. It is designed for R programmers who want to deepen their understanding of the language, and programmers experienced in other languages who want to understand what makes R different and special....

Exploring .NET Core

Download free course Exploring .NET Core, pdf file on 155 pages by Dustin Metzgar....

JavaScript Notes for Professionals

Download free course JavaScript Notes for Professionals, pdf file on 489 pages by Stack Overflow Community....

Android video game tutorial

With this tutorial you will learn how to create an android video game and the basics of android applications development, free training document on 34 pages by Nikhil Yadav....