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 . . . . .
...
ARM嵌入式系统基础教程(第2版) 内容简介 本书是《ARM嵌入式系统系列教程》中的理论课教材。以NXP公司(原PHILIPS公司半导体部)LPC2000系列A...
《马化腾跑赢互联网的26个竞争策略》内容简介:腾讯17年的风雨兼程,马化腾17年的栉风沐雨,可以说是中国互联网发展的鲜活标本。《
《嗨,夏威夷(图文版)》内容简介:夏威夷是人间的净土、浪漫的天堂、激情的乐园,也是冒险者与探险者的炼狱场。你可以试身火海,
《国学研究(第46卷)》内容简介:本书为袁行霈先生主编、北京大学国学研究院主办之辑刊,每年两卷,此为第46卷。本期共收录相关领
《HTML5+CSS3精致范例辞典(全彩印刷)》是专为希望成为网页设计师的学习者打造的工具书,书中详细说明了设计网页所需的HTML标记语
《无限相思无限恨》内容简介:石评梅作为深受大众喜爱的民国才女,是“五四”时期有名的作家。其情感经历、文采才干与绝代风华都一
《无价》内容简介:为什么百老汇剧场里价格越高的位置卖得越火?为什么100万美元带来的愉悦感,400万美元才能让它翻倍?为什么议价
《不教一日闲过:回忆齐白石》内容简介:齐白石是融诗、书、画、印为一体的艺术大师,是二十世纪唯一被选为世界文化名人的中国艺术
网上开店装饰秘技 本书特色 王红卫等编著的《网上开店装饰秘技(附光盘)》以*新版的photoshopcs6中文版为工具,详细讲解了photoshop在网上店铺装...
《张晋张谦集校笺》内容简介:本书为“清代诗人别集丛刊”中的一种,着眼于深度整理清初甘肃著名诗人张晋和张谦的诗集。书稿整理了
AutoCAD建筑绘图与实训 内容简介 本书内容包括:计算机绘图基础知识、AutoCAD的基本操作、AutoCAD的二维绘图常用命令、AutoCAD的三维绘图简...
《一本书读懂互联网思维》内容简介:每个人都看得懂的互联网思维入门书。本书从互联网思维的定义到互联网思维应用的具体案例表现。
《少年读山海经·千万里江山》内容简介:《山海经》是一部包罗万象的千古奇书,是一座研究古代地理和神话的宝库。“少年读山海经”
Effective系列丛书经典著作,亚马逊五星级畅销书,Ecma的JavaScript标准化委员会著名专家撰写,JavaScript语言之父、MozillaCT...
React Native-用JavaScript开发移动应用 本书特色 react native是当前移动端开发中的优秀解决方案。《react native:用...
.NETFramework的出现给编程带来了极大的改变,图形编程也同样受到了巨大的影响。微软在.NET中把GDI升级为GDI+,它包含了许多命名
《Web开发系列丛书·Web开发解决方案:应用Ajax、Apl、库和托管服务》金额ishaoruhe建立以个高校的WEB开发环境,在打下坚实基础之
《世界经典火炮TOP10》内容简介:火炮是陆军武器的重要组成部分和主要火力突击力量。本书以火炮发展的重要节点划分历史时期,纵向回
伊达千代,日本知名专业平面设计师。于2007年设立TARTDESIGN,并从事与平面设计相关的教学。著有《设计的原理》等多种设计相关书
《人人可懂的深度学习》内容简介:采用通俗易懂的语言,简明而全面地介绍对人工智能革命起到核心作用的深度学习技术。作者:【爱尔