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 . . . . .
...
《设计随笔79》内容简介:我认为自己是设计师,而不是作家。十多年前,在鲜有证据证明我有写作才能的情况下,三名优秀的编辑史蒂
现在,告诉您一个奇迹,让您体验一位绘画大师的创作快乐和真谛。在“300年前”的一个小小的快乐镇里,衣冠楚楚的绅士驾着十八世纪
《GIS在城市管理中的应用》主要介绍GIS基本功能在城市管理中的具体使用与实现途径。分别针对城市综合应用、城市规划、城市土地管
在线阅读本书Web2.0architectureopensupanincrediblenumberofoptionsforflexiblewebdesign,c...
本书是一本架设与维护TCP/IP网络的完整指南,无论你是在职的系统管理员,还是需要访问Internet的家用系统用户,都可从本书获得帮
EdwinHutchinscombineshisbackgroundasananthropologistandanopenoceanracingsailoran...
Java Web从入门到精通-(第2版)-(附1DVD) 本书特色 《Java Web从入门到精通(第2版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实...
本书是一本专门针对网页美工设计的图书,全面、细致地介绍利用Dreamweaver8和PhotoshopCS2进行创意和设计的具体方法和步骤。全书
《产品设计手绘技法》被当代设计大师卢吉•科拉尼(LuigiColani)誉为史上最好的手绘技法图书,续作《产品手绘与创意表达》持续热
★列为全球上百所大学标准教材和首席参考书!★图书馆必备典藏,作者MichaelL.Scott是计算机领域的著名学者,译者是北京大学的裘宗
本书特别邀请了数位国内知名GUI设计师一起由浅至深地讲解GUI设计案例,详细讲解各个案例中所遇到的问题和软件应用。本书分为以下
《上海建设全球海洋中心城市发展对策研究报告》内容简介:本书立足于《全国海洋经济发展“十三五”规划》提出的推进上海建设全球海
本书采用程序员最爱用的面向对象C++语言来描述数据结构和算法,并把数据结构原理和算法分析技术有机地结合在一起,系统介绍了各种
《超级IP运营攻略》内容简介:本书分为战略篇、产业篇、运营篇、营销篇和网红篇五大部分,对IP孵化、版权分销、品牌建设、营销推广
《国际平面设计基础教程:GRIDS网格设计》的目的是向读者介绍平面设计中网格的基本运用原则,就像当代设计师们所实践的那样。虽然
《云游戏》内容简介:本书从游戏产业发展的历程、规律和现状开始讲起,以时间为轴,快速介绍了整个游戏产业的发展脉络,让读者清晰
《OPNETModeler与网络仿真》旨在帮助读者在阅读软件帮助文件时,更方便快捷地使用OPNETModeler(下文将其简称为OPNET)。全书共分为
《牢记使命:中国共产党为什么能砥砺奋进》内容简介:黄相怀著的《牢记使命:中国共产党为什么能砥砺奋进》紧扣党的十九大精神,以
《分裂者宫崎骏》内容简介:分裂感在宫崎骏的身上几乎无处不在。他是著名的反战主义者,同时也是著名的武器爱好者。童年经历让他曾
生物群智计算与机器学习 本书特色 作为人工智能领域的一个重要分支,生物群智计算与机器学习已经引起越来越多**外研究者的关注,成为前沿性的热点研究领域,在理论和应...