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 . . . . .
...
VisualBasic程序设计实验教程 本书特色 吴昊编著的《Visual Basic程序设计实验教程》是《Visual Basic程序设计》配套的实验教材,帮...
《张文鹤护肤指南》内容简介:本书为北京三甲医院小儿皮肤科专家、抖音2000万+大V仙鹤大叔•张文鹤20年临床经验总结。详解青春痘的分
In"NecklaceofSkulls,"alow-graderevolutionhasbrokenoutontheCaliforniaborderwithMe...
《德国设计图典》是艺术设计专业的入门参考书,旨在通过简单的百科式构架和丰富直观的图片资料来帮助初学者接触、理解和掌握德国
《华为增量绩效法》内容简介:增量绩效法是华为“打胜仗”思想的演绎和延伸,是被华为实践证明的管理利器,也是被众多中小企业验证
《恒温教养》内容简介:在教养孩子的过程中,面对孩子的大哭大叫、无理取闹,无助、心累、崩溃正席卷而来,因此父母时常会感到焦虑
《Go语言学习指南:惯例模式与编程实践》内容简介:本书Go语言正在迅速成为构建Web服务的优选语言。本书很好地阐述了Go语言的特性,
CX5590中文版Photoshop CS4 从入门到精通 本书特色 海量的内容:上千个photoshop知识点,数百个注意、提示与技巧,为您的学习铺就一条快速...
《手绘设计草图表现技法》内容简介:本书阐述了手绘图透视表现的基本原理、制图方法和物体的质感表现等,介绍了多种手绘图表现的画
《四象限理财:投资理财极简法则》内容简介:本书立足于四象限资产配置法,为普通投资者提供了一种合理规划资产的新思路。具体而言
《Web安全深度剖析》总结了当前流行的高危漏洞的形成原因、攻击手段及解决方案,并通过大量的示例代码复现漏洞原型,制作模拟环境
Adetailedexaminationofinteriorroutingprotocols--completelyupdatedinanewedition*A...
《记者的发现力(增订本)》内容简介:“发现”是一种力量。记者善于发现新鲜事物、揭示事物内在规律的能力就是“新闻发现力”。本
《轻战略:量子时代的敏捷决策》内容简介:本书适合创业型小企业和大型企业的内部孵化企业专业人士使用,提出了创新型组织需要更加
《C#入门经典》(第3版)将全面介绍C#编程的所有知识,共分为5篇:第1篇是C#语言:介绍了C#语言的所有内容,从基础知识到面向对象的
亚历山大·奥斯特瓦德(AlexOsterwalder)亚历山大·奥斯特瓦德博士是国际畅销书《商业模式新生代》的第一作者,充满激情的企业家
Thistutorialanelementaryintroductiontoteachnon-programmershowtocustomizetheirwor...
《21世纪高等院校电气信息类系列教材•人工神经网络原理及仿真实例》以神经网络结构为主线,以学习算法为副线,详细介绍了神经网络
《中国人力资源法律审计报告2018——从东盟十国看“一带一路”国家的劳动与雇佣管制》内容简介:本报告是“中国人力资源审计系列报
《微课程和多媒体课件设计与制作规范》内容简介:本书共分为三部分,首部分主要介绍文字、声音、图像、视频、动画等视听媒体的运用