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 . . . . .
...
《打造超级区块链社区:建设、运营、实践》内容简介:《打造超级区块链社区:建设、运营、实践》从社区、区块链、运营这3个方面重点
《色彩设计》主要介绍了色彩、配色及色彩管理的相关知识以及在软件中如何实现,通过将具体的配色案例进行Before与After的对比,并
繁琐的CSS规则和各浏览器支持度的不统一素来都为网页设计师所诟病。通过多年潜心研究与深入测试,作者归纳组合出了多达350条的设
《CG思维解锁》内容简介:本书是国内首部介绍新科技时代下综合运用CG绘图技术进行数字绘画创作的著作。本书内容涉及自动绘画、VR36
《我不是产品经理》内容简介:移动互联网商业模式下的用户增长,本质上就是更低成本地获取用户,更高效率地实现商业变现,并在获取
中文版Photoshop标准教程 本书特色 《中文版photoshop标准教程》:专家编著,依纲编写:《中文版photoshop标准教程》由国内一线photos...
《金圣叹选批杜诗》内容简介:金圣叹选本的特点不仅在于选更在于评,更注重点评和鉴赏。金圣叹首创唐诗“七律分解法”来评点唐诗。
《灾害康复医学》内容简介:全书内容包括绪论、灾害伤员早期医学救援、灾害伤员康复治疗(物理治疗、作业治疗、假肢矫形)、灾害伤
本书以IEEE802系列标准为主介绍局域网与城域网的相关技术,涉及lOMbps以太网、快速以太网、千兆位以太网、万兆位以太网、交换式以
傻博士超经典问答3000例(1CD) 目录 PART 1 电脑故障诊断与导读 电脑硬件故障的种类 电脑软件故障的种类 病毒、木马故障排除原则 电脑故障的排除原则...
《Spring Batch批处理框架》内容简介:本书全面、系统地介绍了批处理框架Spring Batch,通过详尽的实战示例向读者展示了Spring Bat
《客厅设计广场(第2季):欧式客厅》内容简介:客厅是家庭聚会、休闲的重要场所,是能充分体现居室主人个性的居室空间,也是访客停
《GOOGLEHACKS探索和利用全球信息资源的技巧和工具》(第3版)使用Google意味着你需要不断地拓展令人震惊的新技术。在Google地图刚
ThedevelopmentoftheSemanticWeb,withmachine-readablecontent,hasthepotentialtorevo...
MassiveChangeisamodernillustratedprimeronthenewinventions,technologies,andevents...
《李白诗选》内容简介:李白,字太白,号青莲居士,祖籍陇西城纪。李白是盛唐文化孕育出来的天才诗人,他非凡的自信、傲岸的人格和
Tornadoisascalable,non-blockingwebserverandwebapplicationframeworkwritteninPytho...
非光滑控制理论与应用 本书特色 从方法的对象来看,与传统控制律相比,非光滑控制律的适用范围不同,正如李世华和丁世宏等编著的《非光滑控制理论与应用》中将提...
《图解室内设计分析》:建筑师和室内设计师在今天这个读图时代,每天与大量的视觉信息打交道,图像的瞬时显示成了设计师看图的主
本书深入浅出介绍了人机交互系统的原理与应用,内容涉及电子原理基础、设备选型、建立集成电路、微处理编程、计算机通信、转换和