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

Fundamentals of C++ Programming

Basic Programming Concepts

Power Programming with Mathematica

Practical Foundations for Programming Languages

Certified Programming with Dependent Types

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

Python for You and Me

This is a simple book to learn Python programming language, it is for the programmers who are new to Python....

Advanced Android Programming Tutorial

This Android PDF Tutorial is created from Stack Overflow Documentation, the content is written by the developer at Stack Overflow. Free PDF training course in 1329 pages for professionals developers....

Basic Programming Concepts

The objectives of this tutorial are to introduce the fundamental concept of algorithm and the basic concepts of object-oriented programming, use the Java programming language, understand and apply good programming practices and evaluate your programmer skills....

Essential C++

This book written to provide clear and concise explanation of topics for programmers both starting to learn the C++ programming language 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....

Advanced Applications for Artificial Neural Networks

In this book, highly qualified multidisciplinary scientists grasp their recent researches motivated by the importance of Artificial Neural Networks (ANN)....

Pointers - C++ course

PDF course about C++ and pointers, free document in 65 pages....

Programming Persistent Memory

Download free course Programming Persistent Memory, pdf file on 438 pages by Steve Scargall....

The JavaScript Beginner's Handbook

Download free course The JavaScript Beginner's Handbook, pdf file on 70 pages by Flavio Copes....

Getting started with C#

Free tutorial in PDF about C# programming ,a training document under 52 pages designated to beginners who want to learn the basics of CSharp language....

Practical Artificial Intelligence Programming in Java, 3rd Edition

This book uses both best of breed open source software and the author's own libraries to introduce the reader to Artificial Intelligence (AI) technologies like genetic algorithms, neural networks, expert systems, machine learning, and statistical natural language processing (NLP). ...