图书介绍

并行计算机体系结构 硬件/软件结合的设计与分析 原书第2版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

并行计算机体系结构 硬件/软件结合的设计与分析 原书第2版
  • (美)David E. Culler等著;李晓明等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111078888
  • 出版时间:2003
  • 标注页数:776页
  • 文件大小:69MB
  • 文件页数:799页
  • 主题词:暂缺

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

并行计算机体系结构 硬件/软件结合的设计与分析 原书第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 引论1

1.1 为什么要用并行体系结构3

1.1.1 计算机应用发展的趋势4

1.1.2 微电子技术趋势9

1.1.3 体系结构趋势10

1.1.4 超级计算机15

1.1.5 小结17

1.2 并行体系结构的融合18

1.2.1 通信体系结构18

1.2.2 共享地址空间20

1.2.3 消息传递27

1.2.4 融合29

1.2.5 数据并行处理32

1.2.6 其他并行体系结构34

1.2.7 一个通用并行体系结构36

1.3 基本的设计问题37

1.3.1 通信抽象38

1.3.2 编程模型的要求38

1.3.3 通信和复制41

1.3.4 性能42

1.4 结论45

1.3.5 小结45

1.5 历史资料47

习题50

第2章 并行程序54

2.1 并行应用的案例分析55

2.1.1 洋流的模拟55

2.1.2 星系演化的模拟56

2.1.3 用光线跟踪法来实现复杂场景的可视化57

2.1.4 针对关联性的数据挖掘58

2.2 并行化过程58

2.2.1 程序并行化过程中的几个步骤59

2.2.3 并行化过程的目标65

2.2.2 计算并行和数据并行65

2.3 一个例子程序的并行化66

2.3.1 方程求解器的内核66

2.3.2 分解68

2.3.3 分配71

2.3.4 在数据并行模型下的协调72

2.3.5 在共享地址空间模型下的协调73

2.3.6 在消息传递模型下的协调78

2.4 结论84

习题84

第3章 面向性能的程序设计88

3.1划分阶段的性能问题89

3.1.1 负载平衡和同步等待时间90

3.1.2 减少固有的通信95

3.1.3 减少额外的工作98

3.1.4 小结99

3.2 在多存储器系统中的数据访问和通信100

3.2.1 看作扩展的存储层次结构的多处理器系统100

3.2.2 在扩展的存储层次结构中的附加通信101

3.2.3 用工作集的观点看附加的通信和数据的复制102

3.3 性能的协调103

3.3.1 减少附加通信103

3.3.2 将通信结构化以降低代价108

3.4 从处理器角度看到的性能因素113

3.5 并行应用程序案例的深入分析115

3.5.1 Ocean116

3.5.2 Barnes-Hut120

3.5.3 光线跟踪125

3.5.4 数据挖掘128

3.6 编程模型涉及的问题131

3.6.1 命名132

3.6.2 复制132

3.6.3 通信的开销和粒度133

3.6.5 同步134

3.6.4 块数据传送134

3.6.6 硬件代价和设计复杂性135

3.6.7 性能模型135

3.6.8 小结136

3.7 结论136

习题137

第4章 工作负载驱动的性能评价142

4.1 改变工作负载和机器的规模144

4.1.1 多处理器性能的基本测量144

4.1.2 为什么要考虑扩放性145

4.1.4 扩放模型和加速比的测量148

4.1.3 扩放的关键问题148

4.1.5 扩放模型对方程求解器内核的影响151

4.1.6 扩放工作负载参数153

4.2 评价一台实际的机器154

4.2.1 使用微基准测试程序分离性能154

4.2.2 选择工作负载156

4.2.3 评价一台固定规模的机器158

4.2.4 改变机器的规模163

4.2.5 选择性能指标164

4.3 对一个体系结构概念或设计权衡的评估166

4.3.1 多处理器的模拟167

4.3.2 缩小模拟的问题和机器参数的规模168

4.3.3 处理参数空间:评价举例171

4.3.4 小结174

4.4 说明工作负载的特征175

4.4.1 工作负载案例分析175

4.4.2 工作负载的特征化182

4.5 结论188

习题189

第5章 共享存储的多处理器193

5.1 高速缓存的一致性196

5.1.1 高速缓存一致性问题196

5.1.2 通过总线侦听的高速缓存一致性199

5.2 存储同一性204

5.2.1 顺序同一性206

5.2.2 保证顺序同一性的充分条件208

5.3 总线侦听协议的设计空间210

5.3.1 一种三态(MSI)回写作废式协议211

5.3.2 一种四态(MESI)回写作废式协议215

5.3.3 一种四态(Dragon)回写更新式协议217

5.4 关于协议设计中若干折中的评估220

5.4.1 方法论221

5.4.2 在MESI协议下的带宽需求223

5.4.3 协议优化的影响224

5.4.4 高速缓存中存储块大小的权衡227

5.4.5 基于更新和基于作废协议的对比238

5.5 同步241

5.5.1 同步事件的组成部分242

5.5.2 用户和系统的角色243

5.5.3 互斥244

5.5.4 点对点事件同步254

5.5.5 全局(栅障)事件的同步255

5.5.6 同步问题小结259

5.6 对软件的影响259

5.7 结论264

习题265

6.1 正确性需求273

第6章 基于侦听的多处理器的设计273

6.2 基础设计:采用原子总线的单级高速缓存275

6.2.1 高速缓存控制器和标记的设计276

6.2.2 侦听结果的报告277

6.2.3 对回写的处理278

6.2.4 基础系统组织279

6.2.5 非原子性的状态转移279

6.2.6 串行化281

6.2.7 死锁282

6.2.8 活锁和挨饿283

6.2.9 原子操作的实现283

6.3 多级高速缓存层次结构284

6.3.1 包含性的维护285

6.3.2 在高速缓存层次结构中传播一致性的事务287

6.4 事务拆分型总线289

6.4.1 事务拆分型总线设计的一个例子290

6.4.2 总线设计和请求-响应的匹配290

6.4.3 侦听结果和冲突的请求292

6.4.4 流控制293

6.4.5 一次缓存扑空的路线293

6.4.6 串行化和顺序同一性294

6.4.7 其他设计选择296

6.4.8 带有多级高速缓存的事务拆分型总线297

6.4.9 对一个处理器有多个待完成扑空的支持299

6.5 实例分析:SGI Challenge和Sun Enterprise 6000301

6.5.1 SGI Powerpath-2系统总线302

6.5.2 SGI处理器和内存子系统304

6.5.3 SGI I/O子系统306

6.5.4 SGI Challenge内存系统性能307

6.5.5 Sun Gigaplane系统总线308

6.5.6 Sun处理器和内存系统309

6.5.7 Sun I/O子系统311

6.5.8 Sun Enterprise内存系统性能311

6.5.9 应用程序性能312

6.6.1 共享缓存的设计314

6.6 高速缓存一致性的扩充314

6.6.2 虚拟标引缓存的一致性317

6.6.3 转换检测缓冲器的一致性318

6.6.4 环上基于侦听的高速缓存一致性320

6.6.5 在基于总线的系统中的数据和侦听带宽的扩展322

6.7 结论323

习题324

第7章 可扩展多处理器329

7.1 可扩展性331

7.1.1 带宽的可扩展性331

7.1.2 时延的可扩展性333

7.1.3 成本的可扩展性334

7.1.4 物理可扩展性336

7.1.5 通用并行体系结构的可扩展性339

7.2 编程模型的实现340

7.2.1 基本的网络事务341

7.2.2 共享地址空间343

7.2.3 消息传递346

7.2.4 主动消息349

7.2.5 共同的挑战350

7.2.6 通信体系结构设计空间351

7.3.1 节点到网络的接口352

7.3 物理DMA352

7.3.2 通信抽象的实现354

7.3.3 案例分析:nCUBE/2354

7.3.4 典型的局域网接口355

7.4 用户级访问356

7.4.1 节点到网络的接口356

7.4.2 案例分析:Thinking Machines CM-5357

7.4.3 用户级的处理程序358

7.5 专用消息处理360

7.5.1 案例分析:Intel Paragon362

7.5.2 案例分析:Meiko CS-2365

7.6 共享的物理地址空间367

7.6.1 案例分析:CRAY T3D369

7.6.2 案例分析:CRAY T3E371

7.6.3 小结372

7.7 工作站机群和工作站网络372

7.7.1 案例分析:Myrinet SBUS Lanai374

7.7.2 案例分析:PCI存储器通道376

7.8 并行软件涉及的问题378

7.8.1 网络事务的性能378

7.8.2 共享地址空间操作382

7.8.3 消息传递操作383

7.8.4 应用层性能384

7.9 同步390

7.9.1 加锁算法390

7.9.2 栅障算法393

7.10 结论397

习题398

第8章 基于目录的高速缓存一致性400

8.1 可扩展的高速缓存一致性403

8.2 基于目录方法概述404

8.2.1 简单目录方案的操作404

8.2.2 可扩展性407

8.2.3 组织目录表的其他方法408

8.3 目录协议和折中的评价412

8.3.1 目录方案的数据共享模式413

8.3.2 本地和远程通信流量418

8.3.3 高速缓存块尺寸的影响423

8.4 目录协议设计上的挑战性问题423

8.4.1 性能423

8.4.2 正确性427

8.5 基于存储器的目录协议:SGI的Origin系统432

8.5.1 高速缓存一致性协议432

8.5.2 关于正确性问题438

8.5.3 目录结构的细节441

8.5.4 协议扩展442

8.5.5 Origin2000硬件概述443

8.5.6 Hub的实现445

8.5.7 性能特征447

8.6 基于高速缓存的目录协议:Sequent的NUMA-Q451

8.6.1 高速缓存一致性协议452

8.6.2 关于正确性问题458

8.6.3 协议扩展459

8.6.4 NUMA-Q硬件一览460

8.6.5 协议和SMP节点的交互462

8.6.6 IQ链路的实现463

8.6.7 性能特征464

8.6.8 对比案例分析:HALS1多处理器466

8.7 性能参数和协议性能467

8.8 同步469

8.8.1 几种同步算法的性能470

8.8.2 实现原子性原语471

8.9 对并行软件的影响472

8.10 高级论题474

8.10.1 减少目录存储的开销474

8.10.2 层次式的一致性477

8.11 结论484

习题485

第9章 硬件/软件功能的折中491

9.1 放松的存储同一性模型492

9.1.1 系统规范说明496

9.1.2 程序员接口501

9.1.3 翻译机制504

9.1.4 真实的多处理器系统中的同一性模型504

9.2 克服容量限制505

9.2.1 第三层高速缓存505

9.2.2 惟有高速缓存的存储器体系结构506

9.3 降低硬件成本509

9.3.2 通过代码修改实现的访问控制510

9.3.1 具有去耦辅助部件的硬件访问控制510

9.3.3 基于页面的访问控制:共享虚拟存储器511

9.3.4 语言和编译器支持的访问控制520

9.4 综合:分类和简单的COMA522

9.4.1 综合:简单的COMA和Stache523

9.5 对并行软件的影响526

9.6 高级论题527

9.6.1 灵活性和CC-NUMA系统中的地址约束527

9.6.2 以软件实现放松的存储同一性528

9.7 结论533

习题533

第10章 互连网络设计539

10.1 基本定义540

10.2 基本的通信性能543

10.2.1 时延543

10.2.2 带宽547

10.3 组织结构549

10.3.1 链路550

10.3.2 交换机551

10.3.3 网络接口552

10.4.2 线性阵列和环553

10.4.1 全连接网络553

10.4 互连拓扑结构553

10.4.3 多维网格和多维花环554

10.4.4 树555

10.4.5 蝶网557

10.4.6 超立方体560

10.5 对网络拓扑设计折中的评价561

10.5.1 无负载时延562

10.5.2 负载情况下的时延565

10.6 路由569

10.6.1 路由机制569

10.6.3 免死锁570

10.6.2 确定性路由570

10.6.4 虚通道573

10.6.5 上行*-下行*路由574

10.6.6 折转模型路由575

10.6.7 自适应路由577

10.7 交换机的设计578

10.7.1 端口578

10.7.2 内部数据通路579

10.7.3 通道缓冲580

10.7.4 输出调度583

10.8 流控585

10.7.5 堆叠式维度交换机585

10.8.1 并行计算机网络与局域网、广域网的对照586

10.8.2 链路级的流控587

10.8.3 端到端的流控590

10.9 案例分析591

10.9.1 CRAY T3D网络591

10.9.2 IBM SP-1、SP-2网络593

10.9.3 可扩展一致性接口595

10.9.4 SGI的Origin网596

10.9.5 Myricom网络597

10.10 结论598

习题598

第11章 时延的包容601

11.1.1 时延包容与通信流水线603

11.1 时延包容技术概述603

11.1.2 采用技术605

11.1.3 基本要求、优点与局限性607

11.2 显式消息传递中的时延包容612

11.2.1 通信结构612

11.2.2 块数据传送612

11.2.3 预通信613

11.2.5 多线程技术614

11.3 共享地址空间中的时延包容614

11.2.4 跨越同一线程中的通信614

11.4 共享地址空间中的数据成块传送615

11.4.1 技术和机制616

11.4.2 策略问题和折衷方案617

11.4.3 性能收益618

11.5 跨越长时延事件622

11.5.1 跨越写操作623

11.5.2 跨越读操作626

11.5.3 小结632

11.6 共享地址空间中的预通信632

11.6.1 没有共享数据高速缓存的共享地址空间632

11.6.2 缓存一致的共享地址空间634

11.6.3 性能收益641

11.7 共享地址空间中的多线程技术645

11.6.4 小结645

11.7.1 技术和机制646

11.7.2 性能收益656

11.7.3 阻塞方式的实现问题658

11.7.4 交替方式的实现问题660

11.7.5 在多发布处理器中集成多线程662

11.8 免锁定的缓存设计664

11.9 结论666

习题667

12.1 技术与体系结构673

第12章 将来的发展方向673

12.1.1 演变趋势674

12.1.2 遇到的阻碍676

12.1.3 潜在的突破679

12.2 应用程序和系统软件687

12.2.1 演变趋势687

12.2.2 遇到的困难690

12.2.3 潜在的突破691

附录 并行基准测试程序集692

参考文献696

索引722

热门推荐