图书介绍

高性能科学与工程计算pdf电子书版本下载

高性能科学与工程计算
  • (德)海格,(德)韦雷因著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111466529
  • 出版时间:2014
  • 标注页数:239页
  • 文件大小:51MB
  • 文件页数:257页
  • 主题词:工程计算

PDF下载


PDF云下载[VIP在线云解压服务,PC-移动端高速直接下载PDF格式文件,方便快捷!]
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

高性能科学与工程计算PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 当代处理器 1

1.1 存储程序的计算机体系结构 1

1.2 基于高速缓存的通用微处理器体系结构 2

1.2.1 性能指标和基准测试 2

1.2.2 晶体管:摩尔定律 5

1.2.3 流水线 6

1.2.4 超标量 10

1.2.5 SIMD 10

1.3 存储层次 11

1.3.1 高速缓存 11

1.3.2 高速缓存映射 13

1.3.3 预取 15

1.4 多核处理器 17

1.5 多线程处理器 19

1.6 向量处理器 20

1.6.1 设计原理 21

1.6.2 最高性能估计 22

1.6.3 程序设计 23

习题 25

第2章 串行代码基本优化技术 26

2.1 标量剖析 26

2.1.1 基于函数和代码行的程序剖析 26

2.1.2 硬件性能计数器 29

2.1.3 手工代码插入 32

2.2 优化常识 32

2.2.1 少做工作 32

2.2.2 避免耗时运算 32

2.2.3 缩减工作集 33

2.3 小方法,大改进 33

2.3.1 消除常用子表达式 33

2.3.2 避免分支 34

2.3.3 使用SIMD指令集 34

2.4 编译器作用 36

2.4.1 通用优化选项 37

2.4.2 内联 37

2.4.3 别名 37

2.4.4 计算准确性 38

2.4.5 寄存器优化 39

2.4.6 利用编译日志 39

2.5 C++优化 40

2.5.1 临时变量 40

2.5.2 动态内存管理 42

2.5.3 循环与迭代器 43

习题 43

第3章 数据访存优化 45

3.1 平衡分析与lightspeed评估 45

3.1.1 基于带宽的性能建模 45

3.1.2 STREAM基准测试 47

3.2 存储顺序 49

3.3 案例分析:Jacobi算法 50

3.4 案例分析:稠密矩阵转置 53

3.5 算法分类和访存优化 56

3.5.1 O(N)/O(N) 56

3.5.2 O(N2)/O(N2) 57

3.5.3 O(N3)/O(N2) 60

3.6 案例分析:稀疏矩阵向量乘 61

3.6.1 稀疏矩阵的存储机制 62

3.6.2 JDS sMVM优化 64

习题 66

第4章 并行计算机 68

4.1 并行计算模式分类 69

4.2 共享存储计算机 69

4.2.1 cache一致性 69

4.2.2 UMA 71

4.2.3 ccNUMA 71

4.3 分布式存储计算机 73

4.4 混合型系统 74

4.5 网络 75

4.5.1 网络的基本性能特征 75

4.5.2 总线 78

4.5.3 交换网络和胖树网络 79

4.5.4 Mesh网络 81

4.5.5 混合网络 82

习题 82

第5章 并行性基础 83

5.1 为什么并行化 83

5.2 并行性 83

5.2.1 数据并行性 84

5.2.2 功能并行性 86

5.3 并行扩展性 87

5.3.1 限制并行执行的因素 87

5.3.2 可扩展性指标 88

5.3.3 简单可扩展性定律 89

5.3.4 并行效率 90

5.3.5 串行性能与强可扩展性 91

5.3.6 改进的性能模型 92

5.3.7 选择正确的扩展性基准 94

5.3.8 案例分析:低速处理器计算机能否变得更快 95

5.3.9 负载不均衡 98

习题 101

第6章 使用OpenMP进行共享存储并行编程 103

6.1 OpenMP简介 103

6.1.1 并行执行 103

6.1.2 数据作用域 105

6.1.3 循环的OpenMP工作共享 106

6.1.4 同步 107

6.1.5 归约 108

6.1.6 循环调度 109

6.1.7 任务 110

6.1.8 其他方面 111

6.2 案例分析:OpenMP并行实现Jacobi算法 112

6.3 高级OpenMP:波前并行化 114

习题 116

第7章 高效OpenMP编程 119

7.1 OpenMP程序性能分析 119

7.2 性能缺陷 120

7.2.1 减轻Open MP共享区开销 121

7.2.2 决定短循环的OpenMP开销 126

7.2.3 串行化 128

7.2.4 伪共享 129

7.3 案例分析:并行稀疏矩阵向量乘 130

习题 133

第8章 ccNUMA体系结构的局部性优化 134

8.1 ccNUMA的局部访问 134

8.1.1 首次访问方式分配页面 135

8.1.2 通过其他方式的局部性访问 137

8.2 案例分析:稀疏MVM的ccNUMA优化 138

8.3 页面布局缺陷 139

8.3.1 非NUMA友好的OpenMP调度 139

8.3.2 文件系统高速缓存 140

8.4 C++中的ccNUMA问题 142

8.4.1 对象数组 142

8.4.2 标准模板库 144

习题 146

第9章 使用MPI进行分布式存储并行内存编程 147

9.1 消息传递 147

9.2 MPI简介 148

9.2.1 一个简单例子 148

9.2.2 消息和点对点通信 150

9.2.3 集合通信 154

9.2.4 非阻塞点对点通信 157

9.2.5 虚拟拓扑 160

9.3 实例:Jacobi解法器的MPI并行 162

9.3.1 MPI实现 162

9.3.2 性能特征 167

习题 170

第10章 高效MPI编程 171

10.1 MPI性能工具 171

10.2 通信参数 174

10.3 同步、串行化和竞争 174

10.3.1 隐式串行化和同步 174

10.3.2 竞争 176

10.4 降低通信开销 177

10.4.1 最优化区域分解 177

10.4.2 聚合消息 180

10.4.3 非阻塞与异步通信 181

10.4.4 集合通信 183

10.5 理解节点内点对点通信 184

习题 189

第11章 MPI与OpenMP混合编程 190

11.1 基本MPI/OpenMP混合编程模型 190

11.1.1 向量模式实现 191

11.1.2 任务模式实现 191

11.1.3 案例分析:混合Jacobi解法器 192

11.2 MPI线程交互分类 193

11.3 混合分解及映射 195

11.3.1 每个节点一个MPI进程 195

11.3.2 每个插槽一个MPI进程 196

11.3.3 每个插槽多个MPI进程 196

11.4 混合编程的优势和劣势 197

11.4.1 改善的收敛速度 197

11.4.2 共享高速缓存中的数据重用 197

11.4.3 利用额外级别的并行性 198

11.4.4 重叠MPI通信和计算 198

11.4.5 减少MPI开销 198

11.4.6 多级别开销 198

11.4.7 向量模式下批量同步通信 198

附录A 多核环境中的拓扑和亲缘性 199

A.1 拓扑 200

A.2 线程和进程分布 201

A.2.1 外部亲缘性工具 201

A.2.2 程序控制亲缘性 203

A.3 非页面首次访问分配策略 204

附录B 习题解答 206

参考文献 221

索引 232

精品推荐