《并行计算 结构·算法·编程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:陈国良编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:1999
  • ISBN:7040077396
  • 页数:431 页
图书介绍:

第一篇 并行计算硬件基础 3

第一章 并行计算机系统及其结构模型 3

1.1 并行计算与高端并行计算机 3

1.1.1 并行计算与计算科学 3

1.1.2 当代科学与工程问题的计算需求 4

1.1.3 万亿次高端并行机 7

1.2 并行计算机系统互连 9

1.2.1 系统互连 9

1.2.2 表态互连网络 10

1.2.3 动态互连网络 13

1.2.4 宽带互连网络 17

1.3 并行计算机系统结构 21

1.3.1 并行计算机结构模型 21

1.3.2 并行计算机访存模型 25

1.3.3 并行计算机存储组织 29

1.4 小结和导读 33

习题 34

第二章 当代并行机系统:SMP、MPP和COW 38

2.1 对称多处理机SMP 38

2.1.1 SMP和CC-NUMA结构特性 38

2.1.2 SGL/Cray Origin 2000超级服务器 40

2.2 大规模并行机MPP 47

2.2.1 MPP结构特性 47

2.2.2 机群型大规模并行机SP2 51

2.3 工作站机群COW 57

2.3.1 COW的基本原理与技术 58

2.3.2 Berkeley的NOW计划 61

2.4 国产曙光毓并行机系统 67

2.4.1 全对称共享存储多处理机系统:曙光1号 68

2.4.2 大规模并行处理系统:曙光-1000 72

2.4.3 超级并行计算机系统:曙光-2000 75

2.5 小结和导读 80

习题 81

3.1.1 Amdahl定律 83

第三章 并行计算性能评测 83

3.1 加速比性能定律 83

3.1.2 Gustafson定律 85

3.1.3 Sun和Ni定律 85

3.1.4 有关加速的讨论 87

3.2 可扩放性评测标准 88

3.2.1 并行计算的可护放性 88

3.2.2 等效率度量标准 89

3.2.3 等速度度量标准 91

3.2.4 平均延迟度量标准 95

3.2.5 有关可扩放性标准的讨论 97

3.3 基准测试程序 99

3.3.1 基本测试程序 99

3.3.2 数学库测试程序 100

3.3.3 并行测试程序 101

3.4 小结和导读 102

习题 102

4.1.1 并行算法的定义和分类 107

4.1 并行算法的基础知识 107

第二篇 并行算法的设计 107

第四章 并行算法的设计基础 107

4.1.2 并行算法的表达 108

4.1.3 并行算法的复杂性度量 109

4.1.4 并行算法中的同步与通信 110

4.2 并行计算模型 112

4.2.1 PRAM模型 112

4.2.2 异步PRAM模型 113

4.2.3 BSP模型 114

4.2.4 logP模型 116

4.2.5 C3模型 118

4.2.6 对BSP和logP的评注 121

4.3 小结和导读 123

习题 124

5.1.1 设计方法描述 129

第五章 并行算法的一般设计方法 129

5.1 串行算法的直接并行化 129

5.1.2 快排序算法的并行化 130

5.2 从问题描述开始设计并行算法 132

5.2.1 串匹配算法 132

5.2.2 KMP串行串匹配算法 133

5.2.3 并行串区配算法的设计思路 136

5.3 借用已有算法求解新问题 137

5.3.1 设计方法描述 137

5.3.2 利用矩阵乘法求所有点对间最短路径 138

5.4 小结和导读 141

习题 141

第六章 并行算法的基本设计技术 144

6.1 划分设计技术 144

6.1.1 均匀划分技术 144

6.1.2 方根划分技术 146

6.1.3 对数划分技术 146

6.1.4 功能划分技术 148

6.2 分治设计技术 149

6.2.1 双调归并网络 149

6.2.2 凸壳问题 151

6.3 平衡树设计技术 153

6.3.1 求取最大值 153

6.3.2 计算前缀和 154

6.4 倍增设计技术 155

6.4.1 表序问题的计算 155

6.4.2 求森林的根 156

6.5 流水线设计技术 158

6.5.1 一维心动阵列上的DFT计算 158

6.5.2 一维心动阵列上的卷积计算 159

6.6 小结和导读 161

习题 162

第七章 并行算法的一般设计过程 164

7.1 PCAM设计方法学 164

7.2 划分 165

7.2.1 域分解 166

7.2.2 功能分解 166

7.2.3 划分判据 167

7.3 通信 167

7.3.1 局部通信 168

7.3.2 全局通信 169

7.3.3 非结构化、动态和异步通信 170

7.3.4 通信判据 170

7.4 组合 171

7.4.1 增加粒度 171

7.4.2 保持灵活性和减少软件工程成本 174

7.4.3 组合判据 174

7.5 映射 175

7.5.1 负载平衡算法 175

7.5.2 任务调度算法 177

7.5.3 映射判据 177

7.6 小结和导读 178

习题 179

第三篇 并行数值算法 185

第八章 基本通信操作 185

8.1 选路方法与开关技术 185

8.1.1 选路方法 185

8.1.2 开关技术 187

8.2 单一信包一到一传输 189

8.3 一到多播送 190

8.3.1 使用SF进行一到多播送 190

8.3.2 使用CF进行一到多播送 191

8.4 多到多播送 193

8.4.1 使用SF进行多到多播送 193

8.4.2 使用CT进行多到多播送 195

8.5 小结和导读 196

习题 198

9.1.1 带状划分 203

9.1 矩阵的划分 203

第九章 稠密矩阵运算 203

9.1.2 棋盘划分 204

9.2 矩阵转置 205

9.2.1 棋盘划分的矩阵转置 205

9.2.2 带状划分的矩阵转置 208

9.3 矩阵-向量乘法 209

9.3.1 带状划分的矩阵-向量乘法 210

9.3.2 棋盘划分的矩阵-向量乘法 211

9.4 矩阵乘法 213

9.4.1 简单并行分块乘法 214

9.4.2 Cannon乘法 215

9.4.3 Fox乘法 218

9.4.4 DNS乘法 218

9.5 小结和导读 223

习题 224

10.1.1 基本术语 227

10.1 三角形方程组的求解 227

第十章 线性方程组的求解 227

10.1.2 上三角方程组的求解 228

10.2 三对角方程组的求解 230

10.2.1 三对角方程组直接求解法 230

10.2.2 三对角方程组奇偶归约求解法 232

10.3 稠密线性方程组的求解 233

10.3.1 有回代的高斯消去法 233

10.3.2 无回代的高斯-约旦法 237

10.3.3 迭代求解的高斯-赛德尔法 239

10.4 稀疏线性方程组的求解 241

10.4.1 稀疏矩阵的存储方式 241

10.4.2 雅可比迭代法 243

10.4.3 高斯-赛德尔迭代法 247

10.4.4 超松弛迭代法 249

10.4.5 多重网格法 249

10.4.6 共轭梯度法 251

10.5 小结和导读 256

习题 257

第十一章 快速傅里叶变换 260

11.1 离散博氏变换 260

11.1.1 预备知识 260

11.1.2 离散傅里叶变换 261

11.1.3 离散傅里叶逆变换 263

11.1.4 离散傅氏变换的蝶式计算 263

11.2 快速傅氏变换串行算法 265

11.2.1 串行FFT迭代算法 265

11.2.2 串行FFT递归算法 267

11.3 并行FFT算法 269

11.3.1 SIMD-MC2上FFT算法 269

11.3.2 SIMD-BF上FFT算法 272

11.3.3 SIMD-CC上FFT算法 273

11.3.4 MIMD-DM上FFT算法 275

11.4 小结和导读 278

习题 279

第四篇 并行程序设计 283

第十二章 并行程序设计基础 283

12.1 并行程序设计概述 283

12.1.1 串行程序设计与并行程序设计 283

12.1.2 并行程序设计环境 285

12.1.3 并长程序设计方法 285

12.2 进程 287

12.2.1 进程和基本概念 287

12.2.2 进程的并行执行 290

12.2.3 进程的相互作用 291

12.3 线程 292

12.3.1 线程的基本要领 293

12.3.2 线程的管理 293

12.3.3 线程的同步 295

12.4 同步 295

12.4.1 原子与互斥 295

12.4.2 高级同步结构 296

12.4.3 低级同步原语 297

12.5 通信 299

12.5.1 影响通信系统性能的因素 300

12.5.2 低级通们支持 301

12.5.3 TCP/IP通信协议组简介 302

12.6 小结和导读 306

习题 306

第十三章 并行程序设计模型和共享存储系统编程 309

13.1 并行编程风范和样本程序 309

13.1.1 五种并行骗程风范 309

13.1.2 计算?样本程序 310

13.2 并行程序设计模型 312

13.2.1 隐式并行模型 312

13.2.2 数据并行模型 313

13.2.3 消息传递模型 314

13.2.4 共享变量模型 316

13.3 共享存储并行编程 318

13.3.1 ANSI X3H5共享存储模型 320

13.3.2 POSIX线程模型 322

13.3.3 Open MP标准 323

13.4 小结和导读 326

习题 327

第十四章 分布存储系统并行编程 332

14.1 基于消息传递的并行编程 332

14.1.1 SPMD并行编程 333

14.1.2 MPMD并行程序 334

14.2 MPI并行编程 335

14.2.1 最基本的MPI 336

14.2.2 群体通信 338

14.2.3 通信体 340

14.2.4 导出数据类型 342

14.2.5 点到点通信 343

14.3 PVM并行编程 348

14.3.1 PVM概貌 348

14.3.2 PVM消息传递库 349

14.4 基于数据并行的并行编程 352

14.4.1 数据并行模型的特点 352

14.4.2 数据并行编程的基本问题 352

14.5 HPF并行编程 353

14.5.1 HPF的语言特点 354

14.5.2 HPF的数据并行机制 354

14.5.3 HPF使用中的若干问题 359

14.6 小结和导读 361

习题 362

附录一 MPI的函数的C语言说明 366

附录二 MPI的函数的Fortran语言说明 368

第十五章 并行程序设计环境与工具 371

15.1 软件工具与环境 371

15.1.1 编码工具 371

15.1.2 软件工程工具 372

15.1.3 集成工具 372

15.1.4 将来的工具与环境 373

15.2 并行编译器 374

15.2.1 编译及其并行化 375

15.2.2 相关分析 377

15.2.3 代码优化 379

15.2.4 代码生成 384

15.3 并行程序调试和性能分析 384

15.3.1 并行程序的调试 384

15.3.2 并行程序的性能分析 387

15.3.3 并行程序的可视化设计环境与工具 389

15.4 小结和导读 390

习题 391

算法索引 394

表格索引 396

示范程序索引 398

参考文献 399

并行与分布计算Web网址 409

术语中-英对照及索引 415