计算机科学丛书 高性能科学与工程计算 作者:(德)海格,(德)韦雷因 著;张云泉,袁良,贾海鹏 等译出版时间:2014年版丛编项: 计算机科学丛书内容简介 《计算机科学丛书:高性能科学与工程计算》从工程实践的角度介绍了高性能计算的相关知识。主要内容包括现代处理器的体系结构、为读者理解当前体系结构和代码中的性能潜力和局限提供了坚实的理论基础。接下来讨论了高性能计算中的关键问题,包括串行优化、并行、OpenMP、MPI、混合程序设计技术。作者根据自身的研究也提出了一些前沿问题的解决方案,如编写有效的C++代码、GPU编程等。目录Introduction to High Performance Computing for Scientists and Engineers出版者的话译者序序前言缩略词第1章 当代处理器1.1 存储程序的计算机体系结构1.2 基于高速缓存的通用微处理器体系结构1.2.1 性能指标和基准测试1.2.2 晶体管:摩尔定律1.2.3 流水线1.2.4 超标量1.2.5 SIMD1.3 存储层次1.3.1 高速缓存1.3.2 高速缓存映射1.3.3 预取1.4 多核处理器1.5 多线程处理器1.6 向量处理器1.6.1 设计原理1.6.2 最高性能估计1.6.3 程序设计习题第2章 串行代码基本优化技术2.1 标量剖析2.1.1 基于函数和代码行的程序剖析2.1.2 硬件性能计数器2.1.3 手工代码插入2.2 优化常识2.2.1 少做工作2.2.2 避免耗时运算2.2.3 缩减工作集2.3 小方法,大改进2.3.1 消除常用子表达式2.3.2 避免分支2.3.3 使用SIMD指令集2.4 编译器作用2.4.1 通用优化选项2.4.2 内联2.4.3 别名2.4.4 计算准确性2.4.5 寄存器优化2.4.6 利用编译日志2.5 C++优化2.5.1 临时变量2.5.2 动态内存管理2.5.3 循环与迭代器习题第3章 数据访存优化3.1 平衡分析与lightspeed评估3.1.1 基于带宽的性能建模3.1.2 STREAM 基准测试3.2 存储顺序3.3 案例分析:Jacobi算法3.4 案例分析:稠密矩阵转置3.5 算法分类和访存优化3.5.1 O(N)/O(N)3.5.2 O(N2)/O(N2)3.5.3 O(N3)/O(N2)3.6 案例分析:稀疏矩阵向量乘3.6.1 稀疏矩阵的存储机制3.6.2 JDS sMVM优化习题第4章 并行计算机4.1 并行计算模式分类4.2 共享存储计算机4.2.1 cache一致性4.2.2 UMA4.2.3 ccNUMA4.3 分布式存储计算机4.4 混合型系统4.5 网络4.5.1 网络的基本性能特征4.5.2 总线4.5.3 交换网络和胖树网络4.5.4 Mesh 网络4.5.5 混合网络习题第5章 并行性基础5.1 为什么并行化5.2 并行性5.2.1 数据并行性5.2.2 功能并行性5.3 并行扩展性5.3.1 限制并行执行的因素5.3.2 可扩展性指标5.3.3 简单可扩展性定律5.3.4 并行效率5.3.5 串行性能与强可扩展性5.3.6 改进的性能模型5.3.7 选择正确的扩展性基准5.3.8 案例分析:低速处理器计算机能否变得更快5.3.9 负载不均衡习题第6章 使用OpenMP进行共享存储并行编程6.1 OpenMP简介6.1.1 并行执行6.1.2 数据作用域6.1.3 循环的OpenMP工作共享6.1.4 同步6.1.5 归约6.1.6 循环调度6.1.7 任务6.1.8 其他方面6.2 案例分析:OpenMP并行实现Jacobi算法6.3 高级OpenMP:波前并行化习题第7章 高效OpenMP编程7.1 OpenMP程序性能分析7.2 性能缺陷7.2.1 减轻Open MP共享区开销7.2.2 决定短循环的OpenMP开销7.2.3 串行化7.2.4 伪共享7.3 案例分析:并行稀疏矩阵向量乘习题第8章 ccNUMA体系结构的局部性优化8.1 ccNUMA的局部访问8.1.1 首次访问方式分配页面8.1.2 通过其他方式的局部性访问8.2 案例分析:稀疏MVM的ccNUMA优化8.3 页面布局缺陷8.3.1 非NUMA友好的OpenMP调度8.3.2 文件系统高速缓存8.4 C++中的ccNUMA问题8.4.1 对象数组8.4.2 标准模板库习题第9章 使用MPI进行分布式存储并行内存编程9.1 消息传递9.2 MPI简介9.2.1 一个简单例子9.2.2 消息和点对点通信9.2.3 集合通信9.2.4 非阻塞点对点通信9.2.5 虚拟拓扑9.3 实例:Jacobi解法器的MPI并行9.3.1 MPI实现9.3.2 性能特征习题第10章 高效MPI编程10.1 MPI性能工具10.2 通信参数10.3 同步、串行化和竞争10.3.1 隐式串行化和同步10.3.2 竞争10.4 降低通信开销10.4.1 最优化区域分解10.4.2 聚合消息10.4.3 非阻塞与异步通信10.4.4 集合通信10.5 理解节点内点对点通信习题第11章 MPI与OpenMP混合编程11.1 基本MPI/OpenMP混合编程模型11.1.1 向量模式实现11.1.2 任务模式实现11.1.3 案例分析:混合Jacobi解法器11.2 MPI线程交互分类11.3 混合分解及映射11.3.1 每个节点一个MPI进程11.3.2 每个插槽一个MPI进程11.3.3 每个插槽多个MPI进程11.4 混合编程的优势和劣势11.4.1 改善的收敛速度11.4.2 共享高速缓存中的数据重用11.4.3 利用额外级别的并行性11.4.4 重叠MPI通信和计算11.4.5 减少MPI开销11.4.6 多级别开销11.4.7 向量模式下批量同步通信附录A 多核环境中的拓扑和亲缘性A.1 拓扑A.2 线程和进程分布A.2.1 外部亲缘性工具A.2.2 程序控制亲缘性A.3 非页面首次访问分配策略附录B 习题解答参考文献 上一篇: 计算机实验工程图形学习题集 下 [林大钧 编著] 2014年版 下一篇: 高等学校数据库技术课程系列教材 数据库技术及应用:原理+SQL Server+VB.NET 第2版 [袁科萍,杨