新書推薦:
《
阿勒泰的春天
》
售價:HK$
50.4
《
如见你
》
售價:HK$
51.3
《
人格阴影 全新修订版,更正旧版多处问题。国际分析心理学协会(IAAP)主席力作
》
售價:HK$
67.0
《
560种野菜野果鉴别与食用手册
》
售價:HK$
67.1
《
中国官僚政治研究(一部洞悉中国政治制度演变的经典之作)
》
售價:HK$
62.7
《
锂电储能产品设计及案例详解
》
售價:HK$
110.9
《
首辅养成手册(全三册)(张晚意、任敏主演古装剧《锦绣安宁》原著小说)
》
售價:HK$
121.0
《
清洁
》
售價:HK$
65.0
|
內容簡介: |
海格、韦雷因著的《高性能科学与工程计算》主 要面向科学家、研究者和工程师,采取一种循序渐进 的方式介绍高性能计算的基础知识,即使不熟悉计算 科学的读者也非常容易理解。本书主要覆盖了当代处 理器体系结构基础知识、各种基本的程序串行优化策 略和基本并行模式。此外,在并行编程模型方面,还 包括基于OpenMP的共享并行和基于MPI的分布式并行 编程,并包含大量Fortran代码实例,方便读者学习 理解。总之,本书以一种独特的视角介绍高性能计算 知识,适合各应用领域的专家和学生研读。
|
關於作者: |
GeorgHager是一位理论物理学家,拥有Greifswald大学计算物理博士学位。他从1995年致力于高性能计算研究,现在是ErlangenRegionalComputingCenterRRZE高性能计算组的高级科学家。最近研究兴趣包括现代微处理器的体系结构优化、处理器和系统级的性能建模以及异构系统优化。他的日常工作涉及高性能计算的全方位用户支持,例如讲座、报告、培训、代码并行化、代码分析和优化以及新型计算机体系结构和工具的评估。
GerhardWellein拥有Bayreuth大学固体物理博士学位,现在是Erlangen大学计算机系教授。他是ErlangerRegionalComputingCenterRRZE高性能计算组的主任,有十余年的高性能计算教学经验,其教学对象包括计算科学和工程编程领域的学生和科学家。他的研究兴趣包括大规模稀疏特征值问题求解、新奇并行化方法、性能建模以及体系结构优化方法。
|
目錄:
|
出版者的话
译者序
序
前言
缩略词
第1章 当代处理器
1.1 存储程序的计算机体系结构
1.2 基于高速缓存的通用微处理器体系结构
1.2.1 性能指标和基准测试
1.2.2 晶体管:摩尔定律
1.2.3 流水线
1.2.4 超标量
1.2.5
1.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 ON
3.5.2 ON2
3.5.3 ON3
3.6 案例分析:稀疏矩阵向量乘
3.6.1 稀疏矩阵的存储机制
3.6.2 JDS sMVM优化
习题
第4章 并行计算机
4.1 并行计算模式分类
4.2 共享存储计算机
4.2.1 cache一致性
4.2.2
4.2.3 c
4.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 基本MPIOpenMP混合编程模型
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 习题解答
参考文献
|
|