词条 | 并行计算-结构·算法·编程 |
释义 | 图书信息字数:570000千字版次:2 基本信息 书名:并行计算──结构·算法·编程(修订版) 原价:36.50元 作者:陈国良 编著 出版社:高等教育出版社 出版日期:2003-8-1 ISBN:9787040133073 字数:570000 页码:450 版次:2 装帧:平装 开本:16开 内容简介本套系列丛书中的《并行计算机体系结构》、《并行算法的设计与分析(修订版)》和《并行算法实践》构成了并行计算三部曲,而《并行计算——结构·算法·编程(修订版)》为三部曲之序曲。 《并行计算——结构·算法·编程(修订版)》以并行计算为主题,主要讨论了并行计算的硬件平台(并行计算机)、并行计算的理论基础(并行算法)和并行计算的软件支撑(并行程序设计),强调融并行计算机结构、并行算法设计和并行编程为一体,书中内容具有相当的广度。 《并行机体系结构》以当代可扩放并行计算机系统结构为主题,着重讨论对称多处理机、规模并行处理机、机群系统和分布共享存储多处理机系统的组成原理、结构特性、设计方法、性能分析以及相应系统实,书中内容强调了软件与硬件相结合。 《并行算法的设计与分析(修订版)》以并行计算模型为主线,系统深入地讨论了计算机科学中诸多常用的数值和非值计算机问题的并行算法设计和分析方法,同时也力图反映本学科的最新成就和发展趁势,书中内容具有相当的深度。 《并行算法实践》以并行算法编程实现为主题,详细介绍了并行程序设计的有关内容,以及典型的非数值并行算法和数值并行算法的MPI编程实现过程,书中内容体现了算法设计与实现相结合。 内容提要 本书是教育部“高等教育面向21世纪教学内容和课程体系改革计划”的研究成果,是面向21世纪课程教材和教育部理科计算机应用“九五”规划教材。 本书以并行计算为主题,主要讨论并行计算的硬件基础——当代并行计算机系统及其结构模型,并行计算的核心内容——并行算法设计与并行数值算法以及并行计算的软件支持——并行程序的设计原理与方法。本书强调融并行机结构、并行算法和并行编程为一体,着重讨论并行算法的设计方法和并行数值计算算法,力图反映本学科的最新成就和发展趋势。? 全书共十五章,分为四篇:第一篇包括并行计算机的系统结构模型,当代对称多处理机、大规模并行处理机、机群系统和并行计算的性能评测;第二篇包括并行算法的一般设计策略、基本设计技术和一般设计过程;第三篇包括矩阵运算、稠密与稀疏线性方程组的求解和快速傅里叶变换;第四篇包括并行程序设计基础、共享存储与分布存储系统 并行编程以及并行程序设计环境与工具。 从并行计算的角度,本书体系完整,内容丰富,取材新颖,可作为高等学校计算机及相关专 业的本科高年级学生和研究生的教学用书,也可供计算科学与工程Computational Science and Engineering)学科的研究生和科技人员阅读参考。 目录第一篇 并行计算硬件基础? 第一章 并行计算机系统及其结构模型 3 ? 1.1 并行计算 4 ? 1.1.1 并行计算与计算科学 4 ? 1.1.2 当代科学与工程问题的计算需求 4 ? 1.2 并行计算机系统互连 8 ? 1.2.1 系统互连 8 ? 1.2.2 静态互连网络 9 ? 1.2.3 动态互连网络 13 ? 1.2.4 标准互连网络 17 ? 1.3 并行计算机系统结构 22 ? 1.3.1 并行计算机结构模型 22 ? 1.3.2 并行计算机访存模型 26 ? *1.3.3 并行计算机存储组织 30 ? 1.4 小结和导读 34 ? 习题 35 ?? 第二章 当代并行计算机系统介绍 39 ? 2.1 共享存储多处理机系统 40 ? 2.1.1 对称多处理机smp结构特性 40 ? *2.1.2 cc-numa origin 2000超级服务器 41? . 2.2 分布存储多计算机系统 48 ? 2.2.1 大规模并行处理机mpp结构特性 49 ? *2.2.2 asci option red mpp系统 53 ? 2.3 机群系统 57 ? 2.3.1 大规模并行处理系统mpp机群sp2 58 ? 2.3.2 工作站机群cow 64 ? *2.3.3 berkeley的now计划 68 ? 2.4 小结和导读 73 ? 习题 75 ?? 第三章 并行计算性能评测 77 ? 3.1 并行计算机的一些基本性能指标 78 ? 3.1.1 cpu和存储器的某些基本性能指标 78 3.1.2 通信开销 80 ? 3.1.3 机器的成本、价格与性能/价格比 81 ?3.2 加速比性能定律 83 ? 3.2.1 amdahl定律 83 ? 3.2.2 gustafson定律 84 ? 3.2.3 sun和ni定律 86 ? 3.2.4 有关加速的讨论 87 ? 3.3 可扩放性评测标准 88 ? 3.3.1 并行计算的可扩放性 88 ? 3.3.2 等效率度量标准 89 ? 3.3.3 等速度度量标准 90 ? 3.3.4 平均延迟度量标准 92 ? 3.3.5 有关可扩放性标准的讨论 94 ? *3.4 基准测试程序 95 ? 3.4.1 基本的测试程序 95 ? 3.4.2 数学库测试程序 96 ? 3.4.3 并行测试程序 97 ? 3.5 小结和导读 98 ? 习题 99 ? 第二篇 并行算法的设计 第四章 并行算法的设计基础 103 ? *4.1 并行算法的基础知识 104 ? 4.1.1 并行算法的定义和分类 104 ? 4.1.2 并行算法的表达 105 ? 4.1.3 并行算法的复杂性度量 105 ? 4.1.4 并行算法中的同步与通信 107 ? 4.2 并行计算模型 108 ? 4.2.1 pram模型 109 ? 4.2.2 异步pram模型 110 ? 4.2.3 bsp模型 111 ? 4.2.4 logp模型 113 ? 4.2.5 对bsp和logp的评注 115 ? 4.3 小结和导读 117 ? 习题 118 ?? 第五章 并行算法的一般设计策略 123 5.1 串行算法的直接并行化 124 ? 5.1.1 设计策略描述 124 ? 5.1.2 快排序算法的并行化 124 ? 5.2 从问题描述开始设计并行算法 127 ? 5.2.1 串匹配算法 127 ? *5.2.2 kmp串行串匹配算法 128 ? 5.2.3 并行串匹配算法的设计思路 130 ? 5.3 借用已有算法求解新问题 131 ? 5.3.1 设计策略描述 131 ? 5.3.2 利用矩阵乘法求所有点对间最短路径 132 5.4 小结和导读 135 ? 习题 136 ?? 第六章 并行算法的基本设计技术 139 ? 6.1 划分设计技术 140 ? 6.1.1 均匀划分技术 140 ? 6.1.2 方根划分技术 141 ? 6.1.3 对数划分技术 142 ? 6.1.4 功能划分技术 143 ? 6.2 分治设计技术 144 ? 6.2.1 双调归并网络 145 ? 6.2.2 凸壳问题 146 ? 6.3 平衡树设计技术 149 ? 6.3.1 求取最大值 149 ? 6.3.2 计算前缀和 149 ? 6.4 倍增设计技术 151 ? 6.4.1 表序问题的计算 151 ? 6.4.2 求森林的根 152 ? 6.5 流水线设计技术 153 ? 6.5.1 一维心动阵列上的dft计算 154 ? 6.5.2 一维心动阵列上的卷积计算 155 ? 6.6 小结和导读 156 ? 习题 158 ?? 第七章 并行算法的一般设计过程 160 ? 7.1 pcam设计方法学 161 ? 7.2 划分 162 ? 7.2.1 域分解 162 ? 7.2.2 功能分解 163 ? 7.2.3 划分判据 163 ? 7.3 通信 164 ? 7.3.1 局部通信 164 ? 7.3.2 全局通信 166 ? 7.3.3 非结构化、动态和异步通信 167 ? 7.3.4 通信判据 167 ? 7.4 组合 167 ? 7.4.1 增加粒度 168 ? 7.4.2 保持灵活性和减少软件工程成本 170 ? 7.4.3 组合判据 171 ? 7.5 映射 171 ? 7.5.1 负载平衡算法 172 ? 7.5.2 任务调度算法 173 ? 7.5.3 映射判据 174 ? 7.6 小结和导读 174 ? 习题 175 第三篇 并行数值算法 第八章 基本通信操作 183 ? 8.1 选路方法与开关技术 184 ? 8.1.1 选路方法 184 ? 8.1.2 开关技术 186 ? 8.2 单一信包一到一传输 188 ? 8.3 一到多播送 188 ? 8.3.1 使用sf进行一到多播送 188 ? 8.3.2 使用ct进行一到多播送 190 ? 8.4 多到多播送 191 ? 8.4.1 使用sf进行多到多播送 192 ? 8.4.2 使用ct进行多到多播送 193 ? 8.5 小结和导读 195 ? 习题 197 ?? 第九章 稠密矩阵运算 201 ? 9.1 矩阵的划分 202 ? 9.1.1 带状划分 202 ? 9.1.2 棋盘划分 202 ? 9.2 矩阵转置 204 ? 9.2.1 棋盘划分的矩阵转置 204 ? 9.2.2 带状划分的矩阵转置 207 ? 9.3 矩阵-向量乘法 208 ? 9.3.1 带状划分的矩阵-向量乘法 208 ? 9.3.2 棋盘划分的矩阵-向量?乘法 210 ? 9.4 矩阵乘法 212 ? 9.4.1 简单并行分块乘法 212 ? 9.4.2 cannon乘法 214 ? 9.4.3 fox乘法 217 ? 9.4.4 dns乘法 217 ? 9.5 小结和导读 222 ? 习题 223 ?? 第十章 线性方程组的求解 226 ? 10.1 三角形方程组的求解 227 ? 10.1.1 基本术语 227 ? 10.1.2 上三角方程组的求解 228 ? 10.2 三对角方程组的求解 230 ? 10.2.1 三对角方程组直接?求解法 230 ? 10.2.2 三对角方程组奇偶归约?求解法 231 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 离散傅氏变换 261 ? *11.1.1 预备知识 261 ? 11.1.2 离散傅里叶变换 262 ? 11.1.3 离散傅里叶逆变换 263 ? 11.1.4 离散傅氏变换的蝶式计算 264 ? *11.2 快速傅氏变换串行算法 266 ? 11.2.1 串行fft迭代算法 266 ? 11.2.2 串行fft递归算法 267 ? 11.3 并行fft算法 270 ? 11.3.1 simd-mc2上fft算法 270 ? 11.3.2 simd-bf上fft算法 272 ? 11.3.3 simd-cc上fft算法 274 ? 11.3.4 mimd-dm上fft算法 275 ? 11.4 小结和导读 279 ? 习题 280 ? 第四篇 并行程序设计 第十二章 并行程序设计基础 285 ? 12.1 并行程序设计概述 286 ? 12.1.1 串行程序设计与并行程序设计 286 ? 12.1.2 并行程序设计环境与工具 287 ? 12.1.3 并行程序设计方法 288 ? 12.1.4 并行编程风范 290 ? *12.2 进程 291 ? 12.2.1 进程的基本概念 291 ? 12.2.2 进程的并行执行 294 ? 12.2.3 进程的相互作用 295 ? 12.3 线程 297 ? 12.3.1 线程的基本概念 297 ? 12.3.2 线程的管理 298 ? 12.3.3 线程的同步 299 ? *12.4 同步 299 ? 12.4.1 原子与互斥 300 ? 12.4.2 高级同步结构 300 ? 12.4.3 低级同步原语 302 ? 12.5 通信 303 ? 12.5.1 影响通信系统性能的因素 304 ? 12.5.2 低级通信支持 305 ? 12.5.3 tcp/ip通信协议组简介 307 ? 12.6 并行程序设计模型 310 ? 12.6.1 计算π样本程序 310 ? 12.6.2 隐式并行模型 311 ? 12.6.3 数据并行模型 313 ? 12.6.4 消息传递模型 314 ? 12.6.5 共享变量模型 315 ? 12.6.6 并行程序设计模型比较 317 ? 12.7 小结和导读 318 ? 习题 319 ?? 第十三章 共享存储系统并行编程 322 ? 13.1 基于共享变量的共享存储?并行编程 323 ?13.1.1 共享存储并行编程的?基本问题 323 ?13.1.2 共享存储编程环境 324 ? 13.2 早期共享存储并行编?程模型 324 ? 13.2.1 ansi x3h5共享存储模型 324 ? 13.2.2 posix线程模型 327 ? 13.3 openmp编程简介 328 ? 13.3.1 openmp概述 329 ? 13.3.2 openmp编程风格 329 ? 13.3.3 openmp编程要素 330 ? 13.3.4 openmp计算实例 339 ? 13.3.5 运行库例程与环境变量 341 ? 13.4 小结和导读 341 ? 习题 342 ? 附录 openmp运行库例程 345 ?? 第十四章 分布存储系统并行编程 348 14.1 基于消息传递的并行编程 349 ? 14.1.1 spmd并行程序 349 ? 14.1.2 mpmd并行程序 350 ? 14.2 mpi并行编程 351 ? 14.2.1 最基本的mpi 352 ? 14.2.2 群体通信 355 ? 14.2.3 通信体 357 ? 14.2.4 导出数据类型 358 ? 14.2.5 点到点通信 359 ? *14.3 pvm并行编程 364 ? 14.3.1 pvm概貌 365 ? 14.3.2 pvm消息传递库 365 ? 14.4 基于数据并行的并行编程 368 ? 14.4.1 数据并行模型的特点 368 ? 14.4.2 数据并行编程的基本问题 369 ? 14.5 hpf并行编程 370 ? 14.5.1 hpf的语言特点 370 ? 14.5.2 hpf的数据并行机制 371 ? 14.5.3 hpf使用中的若干问题 375 ? 14.6 小结和导读 378 ? 习题 379 附录一 mpi的函数的c语言说明 384 附录二 mpi的函数的fortran语言说明 386 第十五章 并行程序设计环境与工具 389 *15.1 软件工具与环境 390 15.1.1 编码工具 390 15.1.2 软件工程工具 391 15.1.3 集成工具 391 15.1.4 将来的工具与环境 392 15.2 并行编译器 393 15.2.1 编译及其并行化 394 15.2.2 相关分析 396 15.2.3 代码优化 398 15.2.4 代码生成 403 15.3 并行程序调试 403 15.3.1 并行程序调试的方法与?步骤 404 15.3.2 并行程序的调试技术 406 15.3.3 并行程序的性能调试 407 15.4 并行程序性能分析 408 15.4.1 并行程序的性能预测 408 15.4.2 并行程序的性能监控 410 15.4.3 并行程序的性能可视化 411 15.5 图形化并行程序集成开发环境 413 15.5.1 并行程序的可视化设计环境与工具 413 15.5.2 图形应用开发环境grade的组成 414 15.5.3 grade中开发并行程序过程 414 15.6 小结和导读 416 习题 417 算法索引 420 表格索引 422 示范程序索引 423 参考文献 424 并行与分布计算web网址 434 专业术语中英对照及索引 440 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。