第一章 绪论 1
1.1 引言 2
1.1.1 什么是并行计算机 2
1.1.2 为什么需要并行计算机 4
1.1.3 如何学习并行计算机 7
1.2 并行计算机发展背景 8
1.2.1 应用需求 9
1.2.2 技术进展 12
1.2.3 结构趋势 15
1.3 典型并行计算机系统简介 20
1.3.1 SIMD阵列处理机 20
1.3.2 向量处理机 23
1.3.3 共享存储多处理机 25
1.3.4 分布存储多计算机 26
1.3.5 共享分布存储多处理机 28
1.4 当代并行计算机体系结构 32
1.4.1 并行计算机结构模型 32
1.4.2 并行计算机访存模型 36
1.4.3 并行计算机存储层次及其一致性问题 40
1.5 并行计算机的应用基础 42
1.5.1 并行计算模型 42
1.5.2 并行程序设计模型 50
1.5.3 同步 54
1.5.4 通信 58
1.5.5 并行化技术与程序调试 64
1.6 国产曙光系列并行机系统介绍 70
1.6.1 全对称共享存储多处理机系统:曙光1号 71
1.6.2 大规模并行处理系统:曙光-1000 75
1.6.3 超级并行计算机系统:曙光-2000 78
1.7 小结 83
1.7.1 当今并行机体系结构研究的几个主要问题 83
1.7.2 并行计算机中的若干新技术 86
习题 89
参考文献 94
第二章 性能评测 96
2.1 引言 97
2.1.1 什么是并行机的基本性能 97
2.1.2 为什么是研究并行机的性能评测 99
2.1.3 如何评测并行机的性能 100
2.2 机器级性能评测 101
2.2.1 CPU和存储器的某些基本性能指标 101
2.2.2 并行和通信开销 104
2.2.3 并行机的可用性与好用性 106
2.2.4 机器的成本、价格与性能/价格比 109
2.3 算法级性能评测 112
2.3.1 加速比性能定律 113
2.3.2 可扩放性评测标准 118
2.4 程序级性能评测 129
2.4.1 基准测试程序的分类 129
2.4.2 基本基准测试程序 131
2.4.3 并行基准测试程序 133
2.4.4 商用基准测试程序 135
2.4.5 SPEC测试程序 136
2.5 如何提高高性能 137
2.5.1 任务划分 138
2.5.2 通信分析 140
2.5.3 任务组合 140
2.5.4 处理器映射 141
2.5.5 任务的分配与调度 142
2.6 小结 146
习题 147
参考文献 148
第三章 互连网络 150
3.1 引言 151
3.1.1 系统互连 151
3.1.2 网络部件 152
3.1.3 网络的性能指标 154
3.2 静态互连网络 155
3.2.1 典型的互连网络 155
3.2.2 静态互连网络综合比较 158
3.3 动态互连网络 159
3.3.1 多处理机总线 159
3.3.2 交叉开关 161
3.3.3 多级互连网络 163
3.3.4 动态互连网络比较 165
3.4 机群中的互连技术 167
3.4.1 Myrinet 167
3.4.2 HiPPI和超级HiPPI 169
3.4.3 光纤通道和FDDI环 172
3.4.4 异步传输模式ATM 175
3.4.5 可扩展一致性接口SCI 181
3.4.6 以太网 186
3.5 选路与死锁 188
3.5.1 信包传输方式 188
3.5.2 选路算法 190
3.5.3 死锁避免 194
3.6 流量控制 197
3.6.1 链路层流量控制 197
3.6.2 端到端流量控制 200
3.7 交换开关的设计 201
3.7.1 端口 201
3.7.2 内部数据路径 202
3.7.3 通道缓冲区 203
3.7.4 输出调度 205
3.8 实例研究 206
3.9 小结 208
习题 209
参考文献 212
第四章 对称多处理机系统 214
4.1 引言 215
4.1.1 SMP的特点 215
4.1.1 多处理机中的扩展存储层次结构 216
4.2 高速缓存一致性和顺序一致性模型 218
4.2.1 高速缓存一致性问题 218
4.2.2 高速缓存一致的存储系统 220
4.2.3 总线侦听实现高速缓存一致性 221
4.2.4 顺序一致性模型 224
4.3 侦听高速缓存一致性协仪 228
4.3.1 侦听协议的类型 228
4.3.2 三态写回无效(MSI)协议 229
4.3.3 四态写回无效(MESI)协议 231
4.3.4 四态写回更新(Dragon)协议 233
4.4 基本高速缓存一致性协议的实现 235
4.4.1 正确性要求 236
4.4.2 基本实现 237
4.5 多级高速缓存 243
4.5.1 维护包含性 244
4.5.2 层次高速缓存一致性的传播 246
4.6 分事务总线 246
4.6.1 基本设计 247
4.6.2 支持多线高速缓存 250
4.7 同步问题 252
4.7.1 基本问题 252
4.7.2 互斥操作 253
4.7.3 点到点事件同步 257
4.7.4 全局事件同步 258
4.8 实例分析:SGI Challenge 260
4.8.1 SGI处理器和主存子系统 261
4.8.2 SGI I/O子系统 262
4.9 小结 263
习题 264
参考文献 265
第五章 大规模并行处理机系统 267
5.1 MPP技术概论 268
5.1.1 MPP特性和问题 270
5.1.2 MPP系统概述 273
5.2 实例分析1:Cray T3E的体系结构 276
5.2.1 T3E的体系结构 277
5.2.2 T3E的系统软件 279
5.3 新一代ASCI/MPP系统 280
5.3.1 ASCI可扩放设计策略 280
5.3.2 硬件和软件要求 281
5.3.3 定约的ASCI/MPP平台 283
5.4 实例分析2:Intel/Sandia ASCI Option Red 284
5.4.1 Option Red的体系结构 284
5.4.2 Option Red的系统软件 287
5.5 三个典型的MPP系统的运行性能评估 289
5.6 小结 291
习题 293
参考文献 294
第六章 机群系统 296
6.1 引言 297
6.1.1 基本概念 297
6.1.2 体系结构 299
6.2 设计要点 300
6.2.1 可用性 301
6.2.2 单一系统映象 306
6.2.3 Solaris MC中的单一系统映像 309
6.3.1 研究动机 313
6.3 作业管理 313
6.3.2 作业管理系统 314
6.3.3 研究现状 316
6.3.4 负载共享程序 318
6.4 并行文件系统 324
6.4.1 数据的物理分布 324
6.4.2 缓存 329
6.4.3 数据预取 332
6.4.4 I/O接口 334
6.5 实例分析 338
6.5.1 Berkeley NOW 338
6.5.2 IBM SP2系统 344
6.6 小结 351
习题 352
参考文献 353
第七章 分布式共享存储系统 356
7.1 引言 357
7.1.1 并行计算机的存储系统组织 357
7.1.2 常见的共享存储系统 359
7.2 可扩放的高速缓存一致性协议 363
7.2.1 高速缓存一致性 363
7.2.2 基于目录的高速缓存一致性协议 365
7.3 放松的存储一致性模型 370
7.3.1 目录协议中访存事件次序的实现 371
7.3.2 弱存储一致性模型 374
7.3.3 存储一致性模型的框架模型 378
7.4.1 Stanford的DASH多计算机(CC-NUMA结构) 380
7.3.4 高速缓存一致性协议和存储一致性模型的关系 380
7.4 硬件DSM实例研究 380
7.4.2 Kendall Square Research的KSR1(COMA结构) 385
7.5 共享虚拟存储系统SVM 388
7.5.1 SVM系统中的关键技术 389
7.5.2 实例研究:JIAJIA共享虚拟存储系统 394
7.6 小结 403
习题 405
参考文献 409
第八章 并行机中的通信与延迟 413
8.1 引言 414
8.1.1 延迟的基本概念 415
8.1.2 延迟容忍技术的基本要求和收益上限 419
8.1.3 消息传递模型下的各种延迟容忍技术 420
8.2 延迟避免 421
8.2.1 采用放松的一致性模型 422
8.2.2 大块数据传输 423
8.3 延迟容忍 427
8.3.1 预通信 427
8.3.2 多线程 435
8.4 延迟减少 447
8.4.1 用户级通信技术 447
8.4.2 主动消息实现技术 450
8.5 小结 455
习题 455
参考文献 458
专业术语中英对照及索引 461