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.
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 . . . . .
...
《设计·人机界面》系统地介绍近年来国内外人机界面设计领域的基础理论、研究方法、最新发展与成果。人机界面是计算机科学和认知
Thinkpad笔记本电脑应用技术精粹 本书特色 本书内容覆盖了ThinkPad笔记本电脑硬件系统和软件系统两大方面的应用技巧。从ThinkPad笔记本电脑硬件...
《著作权合理使用制度研究(第三版)》内容简介:合理使用是现代著作权法中的一项重要制度,在著作权研究中被美、日学者称为世界性
《南腔北调集》内容简介:本书是收鲁迅1932年至1933年所作杂文五十一篇,1934年3月上海同文书店初版。包括《为了忘却的记念》《论“
《传播文书写作》内容简介:本书简明扼要地论述了传播文书写作的相关知识,详细地对新闻类传播文书、宣讲类传播文书、广告类传播文
《传播网络理论》2003年由牛津大学出版社出版,并获得20113年国际传播学会组织传播分会的年度最佳著作奖《传播网络理论》不仅抓住
ASP Web开发教程 内容简介 本书是专为落实教育部和信息产业部《关于在职业院校开展计算机应用与软件技术专业领域技能型紧缺人才培养培训工作的通知》和《职业院校...
计算机程序设计艺术第1卷第1册(双语版) 内容简介 关于算法分析的这多卷论著已经长期被公认为经典计算机科学的定义性描述。迄今已出版的完整的三卷已经组成了程序设计...
本套教学用书的特点:权威性——教育部等教育司推荐、教育部高等学校信息科学与技术引进教材专家组遴选;系统性——覆盖电子信息
本书系统地介绍了计算机视觉方面的基础知识,详细讨论了从图像自动抽取重要信息的相关理论,内容包括最近出现的研究成果。本书取
本书深入阐述了能使UNIX操作系统发挥出量大功效的软件设计方法,对UNIX编程的精髓进行了清晰易懂的介绍。两位作者具有多年教学与
《从展场到展览》内容简介:本书通过分析与解读以上海为代表性的艺术博物馆(上海博物馆、龙美术馆、K11艺术中心、上海当代艺术馆等
共享经济对所在的整个行业的角度来说是一种思路的转变,会对其原有的经济模式形成冲击。共享经济的目的是共享,而提高效率是它的
《放下一切去旅行》内容简介:最遗憾的事就是不曾说走就走,旅行,你还要等多久? 他带着拍立得和朋友结伴出行,在国内各种“X奴”
本书的文字图片由中国恐龙网的国内、美国以及澳大利亚分部的几位编辑通力合作完成。中国恐龙网定位于高端科普层,编辑时注重可读
《智能手机维修大全(实例精华版)》内容简介:为维修类工具书,本书以理论结合实际的方式,着重讲解智能手机的维修技巧,同时配以
DesignandMATLABconceptshavebeenintegratedintext.*Integratesapplicationsasitrelat...
《影响数学世界的猜想与问题·从开普勒到阿诺德:三体问题的历史》共分五编:第一编为古典理论卷,第二编为重刚体绕不动点运动问题
《穿透式学习》内容简介:在数字时代,随着知识更迭速度的加快,学习变成了每一个职场人士必须终身面对的首要事情。高效工作的前提
WhileWeb2.0wasaboutdata,Web3.0isaboutknowledgeandinformation.ScriptingIntelligen...