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 . . . . .
...
《JavaScript面向对象编程指南》内容包括:JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中
《游戏编程中的人工智能技术》是人工智能游戏编程的一本指南性读物,介绍在游戏开发中怎样应用遗传算法和人工神经网络来创建电脑
肓信号处理是现代数学信号处理、计算智能学近年来迅速发展的重要方向。在电子信息、通信、生物医学、图像增强、雷达、地球物理信
在这本新书《实现模式》里面,KentBeck将自己多年形成的编程习惯以及阅读既有代码的体验凝练成了编程中的价值观、原则和77种实现
《Objective-C编程》讲述Objective-C编程语言和基本的iOS/Mac开发知识。作者首先从基本的编程概念讲起(变量、条件语句、循环结构
《编译原理及实践》系统介绍了经典的编译理论和技术,同时也包含了面向对象语言等当前较新语言的编译技术。本书更可贵之处在于提
《张洁文集·散文随笔卷》内容简介:《散文随笔卷》在阅读过程中不仅能品味这些佳作的散文随笔卷思想性、艺术性,而且还能从中明白
《贾伯斯傅》这本贾伯斯生前唯一授权的传记,完整记载他的一生。但这本书谈的不只是贾伯斯。人人都知道贾伯斯不遗余力捍卫隐私,
《快速成交》内容简介:对销售人员来说,无论是设计销售方案,还是进行客户筛选、客户拜访,都是为了一个共同的目的——成交。没有
PPT设计完全自学教程 本书特色 本书是初学者快速自学powerpoint的经典教程。全书共分为24章,从powerpoint快速入门开始讲起,以循序渐进的方式...
《煮海时光:侯孝贤的光影记忆》内容简介:本书按创作年序,收录了侯导从影四十年来,每一部作品台前幕后的珍贵回忆。对侯孝贤这样
《苏东坡新传》内容简介:苏东坡,天赋异禀的大文豪,无可救药的乐天派…… 他的标签很多,却难以被标签定义。居高处为翰林学士,落
《Python面试通关宝典》内容简介:本书内容分为两篇,第1篇是Python语言面试题,第2篇是算法面试题。Python语言面试题涵盖面试通用
デザインのあらゆる手法が凝縮!55年間の装幀900点!!強力なパワーを放つ作品を次々と生み出した、世界的デザイナー・横尾忠則。一
本书为康萍等主编的《VisUalFosxPro程序设计实用教程》的配套习题解答与实验指导教材,由常年工作在计算机教学第一线的教师组织编
《科特迪瓦(第2版)》内容简介:科特迪瓦位于非洲大陆西部,南邻大西洋几内亚港湾。这里有西非第一大港口,也是内陆国家马里和布基
《配送中心运作与管理》内容简介:随着社会经济的发展,现代物流作为一种先进的组织方式和管理技术,是企业降低成本、提高经济效益
《股民的眼泪》内容简介:股市惨淡,跌跌不休,不少股民暗自垂泪,究竟如何避开股市的地雷? 张化桥继续敢言作风,在新作中大胆揭示
《零基础学PHP》主要内容:PHP是一种运行于服务器端并完全跨平台的嵌入式脚本编程语言,是目前开发各类Web应用的主流语言之一。P
Flex+JSP web应用开发实战详解 内容简介 本书对flex和jsp技术进行了归纳总结,覆盖了flex和jsp技术的知识和应用场景。本书共分为5篇,分别是...