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

书名:Is Parallel Programming Hard, And, If So, What Can You Do About It?
作者:PaulE.McKenney
译者:
ISBN:9780954899332
出版社:
出版时间:2011-12-16
格式:epub/mobi/azw3/pdf
页数:401
豆瓣评分: 9.5

书籍简介:

The purpose of this book is to help you understand how to program shared-memory parallel machines without risking your sanity.1 By describing the algorithms and designs that have worked well in the past, we hope to help you avoid at least some of the pitfalls that have beset parallel projects. But you should think of 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 should in time render this book obsolete. Parallel programming is not as hard as it is reputed, and it is hoped that this book makes it even easier for you.

作者简介:

Paul McKenney is a Distinguished Engineer and CTO of Linux at

IBM's Linux Technology Center (LTC). He is the maintainer of

the Linux kernel's implementation of RCU and a contributor to

the user-level implementation. He chaired the Linux Plumbers

Conference Program Committee in 2009 and 2011, and served on

the Linux Kernel Summit Program Committee in 2010 and 2011.

He has published one netbook, one book chapter, and more than

one hundred papers and presentations, and holds more than 80

patents in the USA, PRC, and elsewhere.

书友短评:

@ alswl 中文地址在这里 http://ifeve.com/perfbook/还需要再读几遍 @ JesterPure 无敌 @ ryzn Paul大叔的书,还没读,很感兴趣。 @ ylgrgyq 棒棒棒,武林绝学 @ 李树花开 没事翻一翻还是不错的. @ zetCONCURRENCY 没事翻一翻还是不错的. @ 风空之枫 perfbook-e2. 看完了 1-9 章,后面 order/verification/formal 没细看。重点在于设计的思路,比如 batching、fastpath, etc。不过实际上这本有点设计 + 实现混杂,加上很多 Linux Kernel 有关的 api (smb, qsbr…)。整体来说还是帮助非常大的 @ Jekton 有些地方没讲清楚 @ 聪郎 Save for later. 先修知识准备不足。

书籍目录

1
Introduction
1.1 Historic Parallel Programming Difficulties . . . . . . . . . . . . . . . . .
1.2 Parallel Programming Goals . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Productivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3 Generality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Alternatives to Parallel Programming . . . . . . . . . . . . . . . . . . . .
1.3.1 Multiple Instances of a Sequential Application . . . . . . . . . .
1.3.2 Make Use of Existing Parallel Software . . . . . . . . . . . . . .
1.3.3 Performance Optimization . . . . . . . . . . . . . . . . . . . . .
1.4 What Makes Parallel Programming Hard? . . . . . . . . . . . . . . . . .
1.4.1 Work Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4.2 Parallel Access Control . . . . . . . . . . . . . . . . . . . . . . .
1.4.3 Resource Partitioning and Replication . . . . . . . . . . . . . . .
1.4.4 Interacting With Hardware . . . . . . . . . . . . . . . . . . . . .
1.4.5 Composite Capabilities . . . . . . . . . . . . . . . . . . . . . . .
1.4.6 How Do Languages and Environments Assist With These Tasks? .
1.5 Guide to This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1 Quick Quizzes . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.2 Sample Source Code . . . . . . . . . . . . . . . . . . . . . . . .
2 Hardware and its Habits
2.1 Overview . . . . . . . . . . . . . . .
2.1.1 Pipelined CPUs . . . . . . . .
2.1.2 Memory References . . . . .
2.1.3 Atomic Operations . . . . . .
2.1.4 Memory Barriers . . . . . . .
2.1.5 Cache Misses . . . . . . . . .
2.1.6 I/O Operations . . . . . . . .
2.2 Overheads . . . . . . . . . . . . . . .
2.2.1 Hardware System Architecture
2.2.2 Costs of Operations . . . . . .
2.3 Hardware Free Lunch? . . . . . . . .
2.3.1 3D Integration . . . . . . . .
2.3.2 Novel Materials and Processes
2.3.3 Special-Purpose Accelerators
2.3.4 Existing Parallel Software . .
2.4 Software Design Implications . . . . .

· · · · · ·

  • Therefore, if you wish to argue that parallel programming will remain as difficult as it is currently perceived by many to be, it is you who bears the burden of proof, keeping in mind the many centuries of counter-examples in a variety of fields of endeavor.
    —— 引自章节:Introduction
  • the primary goals of parallel pro-gramming are performance, productivity, and gener-ality.
    —— 引自章节:Introduction
  • 添加微信公众号:好书天下获取

    添加微信公众号:“好书天下”获取书籍好书天下 » Is Parallel Programming Hard, And, If So, What Can You Do About It?
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!

     

    添加微信公众号:“好书天下”获取书籍

    添加微信公众号:“好书天下”获取书籍添加微信公众号:“好书天下”获取书籍