目 錄
譯者序
序
前言
致教師/讀者
第一篇 可擴展性和機群化
第1章 可擴展計算機平臺和模型 2
1.1 計算機體系結構演變 3
1.1.1 計算機代 3
1.1.2 可擴展計算機體系結構 3
1.1.3 計算機系統(tǒng)體系結構發(fā)展的
趨勢 5
1.2 可擴展性范圍 6
1.2.1 資源可擴展性 6
1.2.2 應用可擴展性 7
1.2.3 技術可擴展性 7
1.3 并行計算機模型 8
1.3.1 語義屬性 9
1.3.2 性能屬性 11
1.3.3 抽象機模型 12
1.3.4 物理機模型 16
1.4 機群化的基本概念 19
1.4.1 機群特征 19
1.4.2 體系結構的比較 20
1.4.3 機群的優(yōu)越性和難點 21
1.5 可擴展設計原理 23
1.5.1 獨立原理 24
1.5.2 平衡設計原理 25
1.5.3 可擴展性設計 28
1.6 參考文獻注釋和習題 30
第2章 并行編程基礎 33
2.1 并行編程綜述 33
2.1.1 并行編程緣何艱難 33
2.1.2 并行編程環(huán)境 35
2.1.3 并行編程方法 36
2.2 進程. 任務和線程 38
2.2.1 抽象進程的定義 38
2.2.2 執(zhí)行方式 40
2.2.3 地址空間 40
2.2.4 進程現(xiàn)場 42
2.2.5 進程描述符 42
2.2.6 進程控制 43
2.2.7 進程的變異 45
2.3 并行性問題 46
2.3.1 進程中的同構性 46
2.3.2 靜態(tài)和動態(tài)并行性 48
2.3.3 進程編組 48
2.3.4 分配問題 49
2.4 交互/通信問題 50
2.4.1 交互操作 50
2.4.2 交互方式 52
2.4.3 交互模式 53
2.4.4 合作和競爭交互 54
2.5 并行程序中的語義問題 55
2.5.1 程序的終止 55
2.5.2 程序的確定性 55
2.6 參考文獻注釋和習題 56
第3章 性能指標和基準程序 59
3.1 系統(tǒng)和應用的基準程序 59
3.1.1 微基準程序 60
3.1.2 并行計算的基準程序 62
3.1.3 商業(yè)和TPC基準程序 64
3.1.4 SPEC基準程序系列 65
3.2 性能與成本 66
3.2.1 執(zhí)行時間和吞吐率 67
3.2.2 利用率和成本有效性 68
3.3 基本性能指標 70
3.3.1 工作負載和速度指標 70
3.3.2 防止對順序性能誤解的說明 72
3.4 并行計算機性能 73
3.4.1 計算特征 73
3.4.2 并行性和交互開銷 75
3.4.3 開銷定量化 76
3.5 并行程序性能 82
3.5.1 性能指標 82
3.5.2 基準程序中的可用并行性 85
3.6 可擴展性和加速比分析 86
3.6.1 Amdahl定律:固定問題規(guī)模 87
3.6.2 Gustafson定律:固定時間 88
3.6.3 Sun和Ni定律:存儲器受限 90
3.6.4 等性能模型 93
3.7 參考文獻注釋和習題 95
第二篇 使 能 技 術
第4章 微處理器構件 100
4.1 系統(tǒng)發(fā)展趨向 100
4.1.1 硬體進展 100
4.1.2 軟件進展 102
4.1.3 應用進展 103
4.2 處理器設計原理 105
4.2.1 指令流水線基理 105
4.2.2 從CISC到RISC及進一步延伸 108
4.2.3 體系結構性能的增強方法 111
4.3 微處理器體系結構系列 112
4.3.1 主要的體系結構系列 112
4.3.2 超標量和超流水處理器 113
4.3.3 嵌入式微處理器 116
4.4 微處理器的實例研究 117
4.4.1 Digital的Alpha 21164微處理器 117
4.4.2 Intel高能奔騰處理器 120
4.5 后RISC, 多媒體和VLIW 124
4.5.1 后RISC處理器特征 124
4.5.2 多媒體擴展 126
4.5.3 VLIW體系結構 129
4.6 微處理器的未來 130
4.6.1 硬件發(fā)展趨向和物理極限 130
4.6.2 未來的工作負載和挑戰(zhàn) 131
4.6.3 未來微處理器的體系結構 132
4.7 參考文獻注釋和習題 134
第5章 分布式存儲器和時延容忍 137
5.1 層次存儲器技術 137
5.1.1 存儲部件特性 137
5.1.2 存儲器層次性質 139
5.1.3 存儲器容量的規(guī)劃 141
5.2 高速緩存一致性協(xié)議 142
5.2.1 高速緩存一致性問題 143
5.2.2 監(jiān)聽一致性協(xié)議 144
5.2.3 MESI監(jiān)聽協(xié)議 145
5.3 共享存儲器一致性 148
5.3.1 存儲器事件排序 148
5.3.2 存儲器一致性模型 150
5.3.3 非嚴格的存儲器模型 151
5.4 分布式高速緩存/主存體系結構 153
5.4.1 NORMA. NUMA. COMA
和DSM模型 153
5.4.2 基于目錄的一致性協(xié)議 158
5.4.3 斯坦福Dash多處理機 159
5.4.4 Dash中基于目錄的協(xié)議 161
5.5 時延容忍技術 163
5.5.1 時延的避免. 減小和隱藏 163
5.5.2 分布式一致性高速緩存 164
5.5.3 數據預取策略 165
5.5.4 非嚴格的存儲器一致性的效果 167
5.6 多線程時延隱藏 167
5.6.1 多線程處理機模型 167
5.6.2 現(xiàn)場切換策略 169
5.6.3 組合時延隱藏機制 172
5.7 參考文獻注釋和習題 173
第6章 系統(tǒng)互連和千兆位網絡 178
6.1 互連網絡基礎 178
6.1.1 互連環(huán)境 178
6.1.2 網絡部件 180
6.1.3 網絡特征 181
6.1.4 網絡性能指標 182
6.2 網絡拓樸結構和性質 183
6.2.1 拓撲結構和功能性質 183
6.2.2 路由方案和功能 184
6.2.3 網絡拓撲結構 187
6.3 總線. 縱橫交叉開關和多級開關 191
6.3.1 多處理機總線 191
6.3.2 縱橫交叉開關 193
6.3.3 多級互連網絡 195
6.3.4 開關互連比較 197
6.4 千兆位網絡技術 199
6.4.1 光纖通道和FDDI環(huán) 199
6.4.2 快速以太網和千兆位以太網 201
6.4.3 構造SAN/LAN的Myrinet網 203
6.4.4 HiPPI和超級HiPPI 204
6.5 ATM交換器和網絡 207
6.5.1 ATM技術 207
6.5.2 ATM網絡接口 208
6.5.3 ATM四層體系結構 209
6.5.4 ATM互連網連接性能 211
6.6 可擴展的一致性接口 212
6.6.1 SCI互連 213
6.6.2 實現(xiàn)問題 214
6.6.3 SCI一致性協(xié)議 216
6.7 網絡技術比較 217
6.7.1 標準網絡及其發(fā)展前景 217
6.7.2 網絡性能和應用 218
6.8 參考文獻注釋和習題 219
第7章 線程化. 同步和通信 223
7.1 軟件多線程化 223
7.1.1 線程概念 224
7.1.2 線程管理 225
7.1.3 線程同步 226
7.2 同步機制 227
7.2.1 原子性和互斥 227
7.2.2 高級同步結構 230
7.2.3 低級同步原語 234
7.2.4 快速鎖機制 237
7.3 TCP/IP通信協(xié)議組 239
7.3.1 TCP/IP協(xié)議組的特性 239
7.3.2 UDP. TCP和IP 241
7.3.3 Sockets接口 244
7.4 快速和有效通信 245
7.4.1 通信中的關鍵問題 246
7.4.2 LogP通信模型 250
7.4.3 低級通信支持 251
7.4.4 通信算法 257
7.5 參考文獻注釋和習題 259
第三篇 系統(tǒng)體系結構
第8章 對稱多處理機和CC-NUMA
多處理機 264
8.1 SMP和CC-NUMA技術 264
8.1.1 多處理機體系結構 264
8.1.2 商品化SMP服務器 268
8.1.3 英特爾SHV服務器電路板 269
8.2 SUN Ultra Enterprise 10000系統(tǒng) 270
8.2.1 Ultra-E10000系統(tǒng) 271
8.2.2 系統(tǒng)電路板的結構 272
8.2.3 可擴展性和可用性支持 273
8.2.4 動態(tài)域和性能 274
8.3 HP/Convex Exemplar X-Class 275
8.3.1 Exemplar X系統(tǒng)的體系結構 275
8.3.2 Exemplar軟件環(huán)境 277
8.4 Sequent NUMA-Q 2000 278
8.4.1 NUMA-Q 2000的體系結構 278
8.4.2 NUMA-Q的軟件環(huán)境 281
8.4.3 NUMA-Q的性能 282
8.5 SGI/Cray Origin 2000超級服務器 284
8.5.1 Origin 2000系列的設計目標 284
8.5.2 Origin 2000的體系結構 285
8.5.3 Cellular IRIX環(huán)境 290
8.5.4 Origin 2000的性能 293
8.6 CC-NUMA 體系結構的比較 294
8.7 參考文獻注釋和習題 296
第9章 機群化和可用性支持 298
9.1 構造機群的挑戰(zhàn)性 298
9.1.1 機群的分類 298
9.1.2 機群的體系結構 299
9.1.3 機群設計要考慮的問題 300
9.2 對機群可用性的支持 302
9.2.1 可用性概念 302
9.2.2 可用性技術 304
9.2.3 檢查點和故障恢復 308
9.3 對單一系統(tǒng)映像的支持 311
9.3.1 單一系統(tǒng)映像層 311
9.3.2 單一入口和單一文件層次 312
9.3.3 單一I/O. 網絡化和存儲空間 316
9.4 Solaris MC中的單一系統(tǒng)映像 317
9.4.1 全局文件系統(tǒng) 318
9.4.2 全局進程管理 318
9.4.3 單一I/O系統(tǒng)映像 319
9.5 機群的作業(yè)管理 320
9.5.1 作業(yè)管理系統(tǒng) 320
9.5.2 作業(yè)管理系統(tǒng)綜述 324
9.5.3 負載共享工具(LSF) 326
9.6 參考文獻注釋和習題 331
第10章 服務器和工作站機群 334
10.1 機群產品和研究項目 334
10.1.1 支持機群產品的潮流 334
10.1.2 SMP服務器機群 336
10.1.3 機群研究項目 336
10.2 面向NT機群的微軟Wolfpack 338
10.2.1 微軟Wolfpack配置 338
10.2.2 熱備份多服務器機群 339
10.2.3 主動可用性機群 339
10.2.4 容錯多服務器機群 341
10.3 IBM SP系統(tǒng) 341
10.3.1 設計目標和策略 341
10.3.2 SP2系統(tǒng)的體系結構 343
10.3.3 I/O和網絡互連 345
10.3.4 SP系統(tǒng)軟件 347
10.3.5 SP2及其前景 349
10.4 Digital TruCluster 350
10.4.1 Trucluster體系結構 350
10.4.2 存儲器通道互連 352
10.4.3 TruCluster編程 354
10.4.4 TruCluster系統(tǒng)軟件 356
10.5 Berkeley NOW研究項目 356
10.5.1 適合快速通信的主動消息 357
10.5.2 適合于全局資源管理的GLUnix 360
10.5.3 xFS無服務器網絡文件系統(tǒng) 361
10.6 TreadMarks:用軟件實現(xiàn)的
DSM機群 366
10.6.1 邊界條件 366
10.6.2 DSM中的用戶接口 367
10.6.3 實現(xiàn)問題 368
10.7 參考文獻注釋和習題 369
第11章 MPP的體系結構和性能 371
11.1 MPP技術概論 371
11.1.1 MPP特性和要點 371
11.1.2 MPP系統(tǒng)概述 373
11.2 Cray T3E系統(tǒng) 374
11.2.1 T3E的體系結構 374
11.2.2 T3E的系統(tǒng)軟件 376
11.3 新一代ASCI/MPP系統(tǒng) 376
11.3.1 ASCI可擴展設計策略 377
11.3.2 硬件和軟件需求 378
11.3.3 定約的ASCI/MPP平臺 379
11.4 Intel/Sandia ASCI Option Red 380
11.4.1 Option Red的體系結構 380
11.4.2 Option Red的系統(tǒng)軟件 382
11.5 并行NAS基準程序測試結果 384
11.5.1 NAS并行基準測試程序 384
11.5.2 超步結構和顆粒度 385
11.5.3 主存. I/O和通信 386
11.6 MPI和STAP基準程序測試結果 387
11.6.1 MPI性能測試 388
11.6.2 MPI時延和總計(聚集)帶寬 389
11.6.3 MPP的STAP基準程序測試
評估 391
11.6.4 MPP體系結構的含義 394
11.7 參考文獻注釋和習題 396
第四篇 并 行 編 程
第12章 并行范例和編程模型 399
12.1 范例和可編程性 400
12.1.1 算法范例 400
12.1.2 可編程性問題 402
12.1.3 并行編程舉例 402
12.2 并行編程模型 405
12.2.1 蘊式并行性 405
12.2.2 顯式并行模型 407
12.2.3 四種模型的比較 410
12.2.4 其他并行編程模型 412
12.3 共享存儲器編程 413
12.3.1 ANSI X3H5共享存儲器模型 413
12.3.2 POSIX線程模型 416
12.3.3 OpenMP標準 417
12.3.4 SGI Power C模型 420
12.3.5 C//: 一種結構化的并行C語言 422
12.4 參考文獻注釋和習題 426
第13章 消息傳遞編程 429
13.1 消息傳遞范例 429
13.1.1 消息傳遞庫 429
13.1.2 消息傳遞方式 430
13.2 消息傳遞接口 432
13.2.1 MPI消息 434
13.2.2 MPI中的消息信封 439
13.2.3 點對點通信 443
13.2.4 集合MPI通信 445
13.2.5 MPI-2擴展 448
13.3 并行虛擬機 450
13.3.1 虛擬機結構 451
13.3.2 PVM中的進程管理 453
13.3.3 用PVM進行通信 455
13.4 參考文獻注釋和習題 458
第14章 數據并行編程 462
14.1 數據并行模型 462
14.2 Fortran 90方法 462
14.2.1 并行數組操作 463
14.2.2 Fortran 90中的本征函數 464
14.3 高性能Fortran 466
14.3.1 對數據并行性的支持 466
14.3.2 HPF中的數據映射 468
14.3.3 對Fortran 90和HPF的總結 472
14.4 其他的數據并行方法 474
14.4.1 Fortran 95和Fortran 2001 475
14.4.2 PC++和Nesl方法 477
14.5 參考文獻注釋和習題 480
參考文獻 482
Web地址表 510