《并行多核体系结构基础》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)汤孟岩(YanSolihin)著;钱德沛(等)译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2018
  • ISBN:9787111610410
  • 页数:372 页
图书介绍:并行编程和性能调优对许多程序员而言已经成为不可或缺的能力。本书以问题为引导,系统地讲解了并行多核体系结构中的根本问题。第一部分介绍了在共享存储多处理器中的编程问题,例如编程模型、规则和非规则应用的并行化技术。第二部分介绍了共享存储多处理器体系结构,包括存储层次、设计共享存储并行多处理器时的基本问题、缓存一致性、存储一致性、同步、互连网络,以及图形处理单元系统的单指令多线程编程模型。最后部分提供了对多核体系结构领域专家的访谈记录,从专家视角理解并行多核体系结构的发展过程和未来趋势。本书在阐述过程中采用“理论讲解+案例分析+专家访谈”相结合的方式,其视角独特、内容新颖、方法独到。本书的内容适用于研究生、高年级本科生,以及受过计算机科学或工程训练的专业人士。

第1章 多核体系结构概述 1

1.1多核体系结构的由来 2

1.2并行计算机概述 9

1.2.1并行计算机的Flynn分类法 12

1.2.2MIMD并行计算机分类 13

1.3未来的多核体系结构 14

1.4习题 18

课堂习题 18

课后习题 18

第2章 并行编程概述 20

2.1并行程序性能的限制因素 20

2.2并行编程模型 23

2.2.1共享存储与消息传递模型的对比 25

2.2.2一个简单的例子 26

2.2.3其他编程模型 29

2.3习题 37

课后习题 37

第3章 共享存储并行编程 39

3.1并行编程的步骤 39

3.2依赖分析 40

3.2.1循环级依赖分析 42

3.2.2迭代空间遍历图和循环传递依赖图 42

3.3识别循环结构中的并行任务 45

3.3.1循环迭代间的并行和DOALL并行 45

3.3.2DOACROSS:循环迭代间的同步并行 46

3.3.3循环中语句间的并行 48

3.3.4DOPIPE:循环中语句间的流水线并行 50

3.4识别其他层面的并行 51

3.5通过算法知识识别并行 53

3.6确定变量的范围 55

3.6.1私有化 56

3.6.2归约变量和操作 57

3.6.3准则 58

3.7同步 59

3.8任务到线程的映射 60

3.9线程到处理器的映射 64

3.10OpenMP概述 67

3.11习题 72

课堂习题 72

课后习题 77

第4章 针对链式数据结构的并行编程 79

4.1LDS并行化所面临的挑战 79

4.2LDS并行化技术 80

4.2.1计算并行化与遍历 80

4.2.2针对数据结构的操作并行化 82

4.3针对链表的并行化技术 89

4.3.1读操作之间的并行 89

4.3.2LDS遍历中的并行 91

4.3.3细粒度锁方法 94

4.4事务内存 98

4.5习题 99

课堂习题 99

课后习题 101

第5章 存储层次结构概述 103

5.1存储层次的意义 103

5.2高速缓存体系结构基础 104

5.2.1数据放置策略 105

5.2.2数据替换策略 109

5.2.3数据写策略 111

5.2.4多级高速缓存中的包含策略 113

5.2.5统一/分立/Banked高速缓存和高速缓存流水线 117

5.2.6高速缓存寻址和旁路转换缓冲 119

5.2.7非阻塞式高速缓存 121

5.3高速缓存性能 122

5.3.1高速缓存缺失的幂次定律 124

5.3.2栈距离特性 125

5.3.3高速缓存性能指标 126

5.4预取 127

5.4.1步长预取和顺序预取 128

5.4.2多处理器系统中的预取 130

5.5多核体系结构中的高速缓存设计 130

5.6高速缓存的物理组成 131

5.6.1集中式高速缓存 131

5.6.2分布式高速缓存 133

5.6.3混合式高速缓存 133

5.7高速缓存的逻辑组成 135

5.7.1散列函数 139

5.7.2改善共享高速缓存的距离局部性 140

5.7.3私有高速缓存结构中的容量共享 141

5.8案例分析 143

5.8.1IBM Power7的存储层次 143

5.8.2AMD Shanghai和Intel Barcelona处理器存储层次的比较 146

5.9习题 148

课堂习题 148

课后习题 150

第6章 共享存储多处理器简介 152

6.1缓存一致性问题 153

6.2存储一致性问题 155

6.3同步问题 156

6.4习题 160

课堂习题 160

课后习题 161

第7章 缓存一致性基础 163

7.1概述 164

7.2基于总线的多处理器缓存一致性问题 168

7.2.1“写直达”缓存的一致性协议 168

7.2.2“写回”缓存的MSI协议 170

7.2.3“写回”缓存的MESI协议 175

7.2.4“写回”缓存的MOESI协议 178

7.2.5“写回”缓存基于更新的协议 183

7.3缓存设计对缓存一致性性能的影响 186

7.4性能及其他实际问题 187

7.4.1预取和一致性缺失 187

7.4.2多级缓存 187

7.4.3侦听过滤 189

7.5点对点互连网络上的广播式协议 189

7.6习题 203

课堂习题 203

课后习题 207

第8章 对同步的硬件支持 209

8.1锁的实现 209

8.1.1对锁实现性能的评估 209

8.1.2对原子指令的需求 210

8.1.3TS锁 212

8.1.4TTSL 214

8.1.5LL/SC锁 215

8.1.6Ticket锁 218

8.1.7ABQL 219

8.1.8各种锁实现的量化比较 221

8.2栅障的实现 222

8.2.1翻转感应集中式栅障 223

8.2.2组合树栅障 225

8.2.3硬件栅障实现 225

8.3事务内存 227

8.4练习 232

课堂习题 232

课后习题 236

第9章 存储一致性模型 238

9.1程序员的直觉 238

9.2保证顺序一致性的体系结构机制 242

9.2.1在基于总线的多处理器中基本的SC实现 242

9.2.2改善SC性能的技术 244

9.3松弛的一致性模型 246

9.3.1安全网 246

9.3.2处理器一致性 246

9.3.3弱序 248

9.3.4释放一致性 250

9.3.5惰性释放一致性 253

9.4不同存储一致性模型中的同步 254

9.5习题 256

课堂习题 256

课后习题 260

第10章 高级缓存一致性设计 262

10.1目录式一致性协议 262

10.2目录式一致性协议概览 262

10.3目录式缓存一致性协议基础 268

10.4实现正确性和性能 272

10.4.1由目录状态不同步引起的竞争处理 272

10.4.2由对请求非实时处理引起的竞争处理 274

10.4.3写传播和事务串行化 280

10.4.4同步支持 281

10.4.5存储一致性模型 282

10.5当前设计问题 283

10.5.1处理不精确的目录信息 283

10.5.2一致性粒度 286

10.5.3系统划分 288

10.5.4加速线程迁移 289

10.6习题 291

课堂习题 291

课后习题 293

第11章 互连网络体系结构 295

11.1链路、信道和延迟 296

11.2网络拓扑 298

11.3路由策略和算法 302

11.4路由器体系结构 312

11.5案例研究:Alpha 21364网络体系结构 315

11.6多核设计的问题 317

11.7习题 319

课堂习题 319

课后习题 321

第12章 SIMT体系结构 323

12.1SIMT编程模型 323

12.2将SIMT工作负载映射到SIMT核上 325

12.3SIMT核体系结构 326

12.3.1标量ISA 326

12.3.2SIMD化/向量化:Warp构造 326

12.3.3细粒度多线程(Warp级并行) 328

12.3.4微体系结构 328

12.3.5流水线执行 329

12.3.6控制流处理 330

12.3.7内存系统 331

12.4习题 334

课堂习题 334

课后习题 335

第13章 专家访谈 337

参考文献 356

索引 361