图书介绍
Intel Parallel Studio环境下的并行程序设计PDF|Epub|txt|kindle电子书版本网盘下载
![Intel Parallel Studio环境下的并行程序设计](https://www.shukui.net/cover/41/31004243.jpg)
- (美)布莱尔查普尔,(美)斯托克斯著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302309765
- 出版时间:2013
- 标注页数:429页
- 文件大小:83MB
- 文件页数:447页
- 主题词:并行程序-程序设计
PDF下载
下载说明
Intel Parallel Studio环境下的并行程序设计PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1篇 并行简介3
第1章 并行现状3
1.1并行时代的到来3
1.1.1功率密度的飙升3
1.1.2多核和众核计算的出现4
1.2六大挑战5
1.2.1遗留代码6
1.2.2工具6
1.2.3教育培训6
1.2.4众核计算的顾虑7
1.2.5可维护性7
1.2.6投入产出7
1.3并行与编程者7
1.3.1并行的类型8
1.3.2 Intel的并行模型8
1.3.3选择正确的并行构造10
1.3.4并行编程错误13
1.3.5加速比和可扩展性16
1.3.6并行与实时系统19
1.4小结20
第2章 Parallel Studio XE概览21
2.1 Parallel Studio XE的优势21
2.2 Parallel Studio XE组成21
2.3 Intel Parallel Studio XE22
2.4 Intel Parallel Advisor23
2.4.1 Advisor工作流程23
2.5 Intel Parallel Composer XE26
2.5.1 Intel C/C++++优化编译器26
2.5.2 OpenMP31
2.5.3 Intel的线程构造块32
2.5.4 Intel的集成性能原语33
2.5.5 Intel的Parallel Debugger Extension35
2.5.6 Intel Debugger36
2.5.7数学核心库MKL36
2.6 VTune Amplifiier XE38
2.6.1热点分析38
2.6.2并发性分析39
2.6.3锁和空闲分析39
2.6.4反汇编源码视图40
2.7 Parallel Inspector XE40
2.7.1预定义分析类型40
2.7.2错误与警告41
2.8静态安全性分析42
2.9各种使用Parallel Studio XE的方法43
2.10小结43
第3章 Parallel Studio XE快速上手44
3.1四步骤方法44
3.2例子1:使用Cilk Plus45
3.2.1找一个合适的串行程序45
3.2.2运行串行程序47
3.2.3步骤1:分析串行程序49
3.2.4步骤2:用Cilk Plus实现并行性52
3.2.5步骤3:调试及错误检查53
3.2.6步骤4:对Cilk Plus程序调优59
3.3例子2:使用OpenMP61
3.3.1步骤1:分析串行程序61
3.3.2步骤2:使用OpenMP实现并行性62
3.3.3步骤3:调试与错误检查63
3.3.4步骤4: OpenMP程序的调优64
3.4小结71
第2篇 Parallel Studio XE教程75
第4章 生成优质的代码75
4.1引言75
4.2应用程序样例76
4.3代码优化的七步骤77
4.3.1使用编译器的报告77
4.3.2步骤1:不使用优化技术构建应用程序78
4.3.3步骤2:使用通用优化80
4.3.4步骤3:使用处理器相关的优化83
4.3.5步骤4:增加过程间优化93
4.3.6步骤5:性能测评指导的优化96
4.3.7步骤6:自动向量化的调优100
4.4更多关于自动向量化的内容102
4.4.1构建可以在多种CPU上运行的应用程序102
4.4.2其他插入向量化的方法103
4.5源代码108
4.6小结113
第5章 编写安全的代码114
5.1一个简单的安全缺陷例子114
5.2了解静态安全分析117
5.2.1虚警118
5.2.2静态安全分析流程118
5.2.3实施一次静态安全分析119
5.3构建的明细126
5.3.1用注入方式创建构建明细文件126
5.4在QA环境中使用静态安全分析129
5.4.1回归测试130
5.4.2度量跟踪130
5.5源代码132
5.6小结134
第6章 在何处并行化135
6.1性能测评的不同方法135
6.2示例应用程序136
6.3使用Intel编译器进行热点分析138
6.3.1性能测评步骤138
6.3.2一个具体的例子139
6.3.3性能测评引起的开销142
6.4使用auto-parallelizer进行热点分析143
6.4.1测评步骤143
6.4.2一个具体的例子144
6.4.3自动并行化编程指南146
6.5使用Amplifiier XE进行热点分析149
6.5.1进行默认分析149
6.5.2找到适合并行化的循环149
6.5.3大型或运行时间长的应用程序151
6.6源代码153
6.7小结157
第7章 实现并行化158
7.1 C还是C+++,这是个问题159
7.2一个简单的方法159
7.3 lambda函数之美160
7.4循环并行化161
7.4.1 for循环161
7.4.2嵌套for循环164
7.4.3归约for循环166
7.4.4 while循环167
7.5代码段和函数并行化169
7.5.1串行版本170
7.5.2 Cilk Plus171
7.5.3 OpenMP172
7.5.4 TBB173
7.6递归函数并行化173
7.6.1串行版本174
7.6.2 Cilk Plus175
7.6.3 OpenMP175
7.6.4 TBB176
7.7流水应用程序并行化177
7.7.1并行流水模式177
7.7.2串行版本179
7.7.3 OpenMP180
7.7.4 TBB181
7.8链表并行化183
7.8.1链表的串行遍历184
7.8.2链表的并行遍历184
7.9源代码186
7.10小结190
第8章 检查错误191
8.1 Parallel Inspector XE分析的类型191
8.2检测线程错误192
8.2.1线程问题的类型193
8.2.2一个包含死锁的例子193
8.3检测死锁194
8.4检测数据竞争197
8.4.1运行线程化的程序197
8.4.2第一次分析结果198
8.4.3控制报告的详细程度200
8.5消除数据竞争205
8.5.1使用Cilk Plus205
8.5.2使用OpenMP208
8.5.3使用TBB208
8.6检测内存错误210
8.6.1内存错误的类型210
8.6.2一个内存分析的例子211
8.7创建自定义分析216
8.8源代码217
8.9小结220
第9章 并行程序的调优222
9.1简介222
9.2定义基准223
9.2.1确保一致性223
9.2.2度量性能的提升223
9.2.3使用Amplifiier XE命令行测出基准223
9.3识别并发热点225
9.3.1线程的并发度和CPU使用率225
9.3.2识别代码中的热点226
9.4分析时间轴228
9.4.1问题回答228
9.4.2修复临界区热点229
9.5分析算法231
9.6进一步分析和调优233
9.6.1使用其他视图236
9.6.2使用锁和等待分析237
9.6.3其他分析类型238
9.7使用Intel Software Autotuning Tool239
9.8源代码240
9.9小结243
第10章 Parallel Advisor设计指导244
10.1使用Parallel Advisor244
10.1.1理解Advisor的工作流程245
10.1.2寻找文档246
10.1.3从NQueens例子程序开始246
10.2位置审查248
10.2.1运行审查分析248
10.2.2位置审查分析是如何工作的251
10.3标注代码252
10.3.1部位(Site)的标注252
10.3.2锁的标注254
10.3.3添加标注254
10.4检测合适度256
10.4.1执行合适度分析257
10.4.2合适度分析是如何工作的260
10.5检查正确性261
10.5.1运行正确性分析261
10.5.2正确性分析的局限性267
10.5.3正确性分析是如何工作的267
10.6替换标注269
10.6.1 Summary Report270
10.6.2普通的映射方法270
10.7小结273
第11章 并行程序的调试274
11.1 Intel Debugger简介274
11.2使用Intel调试器来检测数据竞争276
11.2.1编译串行程序276
11.2.2添加并行化277
11.2.3观察结果279
11.2.4检测数据竞争280
11.2.5修复数据竞争287
11.3关于过滤器的更多内容294
11.4运行时检查:查看应用程序状态295
11.4.1使用OpenMP任务窗口来检查一个并行域的变量296
11.4.2使用OpenMP生成树窗口来查看并行代码的行为297
11.5小结300
第12章 基于事件的VTune Amplifiier XE分析301
12.1测试一个应用的健壮性301
12.1.1导致高CPI的原因302
12.1.2只用CPI就足够测量健壮性吗302
12.1.3进行全系统的分析303
12.2进行一次热点分析304
12.2.1热点分析类型305
12.3进行一次General Exploration分析310
12.3.1快速注解栏312
12.4修复硬件问题314
12.4.1减少缓存未命中315
12.4.2使用更多高效指令317
12.4.3使用Intel编译器318
12.5使用Amplifiier XE的其他工具319
12.5.1使用预定义分析类型320
12.5.2使用视图320
12.5.3使用API321
12.6应用程序实例325
12.7小结329
第3篇 案例分析333
第13章 世界上第一个数独“Thirty-Niner”333
13.1挑战数独优化333
13.1.1所面临挑战的性质334
13.1.2顶层设计334
13.1.3使用SSE内置函数优化求解器335
13.1.4对生成器进行并行化337
13.1.5结果338
13.2动手实例:优化数独生成器339
13.2.1关于代码339
13.2.2求解器340
13.2.3生成器344
13.3小结350
第14章 通往并行编程殿堂的九条建议351
14.1挑战:模拟恒星形成351
14.1.1恒星的形成352
14.2动手练习352
14.2.1性能调优353
14.3应用程序的启发性353
14.3.1查找热点354
14.3.2使用一个基于树的N-物体模拟356
14.3.3使用哈希八叉树358
14.4架构调优359
14.5添加并行化362
14.5.1识别出热点和找出调用顺序362
14.5.2实现并行化363
14.5.3检测数据竞争和其他潜在的问题364
14.5.4负载均衡365
14.5.5执行结果366
14.6小结367
第15章CERN对撞机的并行轨迹拟合368
15.1学习案例368
15.2一个高能物理实验的过程368
15.2.1轨迹重构阶段369
15.3什么是ArBB374
15.4并行化轨迹拟合代码376
15.4.1添加数组构建块到已存的代码之中376
15.4.2代码重构377
15.4.3结果380
15.5动手练习项目385
15.5.1练习385
15.5.2项目385
15.5.3编译并运行串行版本385
15.5.4并行化轨迹拟合代码389
15.6小结405
第16章 遗留代码的并行化406
16.1 Dhrystone基准简介406
16.1.1代码的结构407
16.1.2全局和共享变量407
16.2动手练习项目408
16.2.1编译项目408
16.2.2在Dhrystone循环中增加Amplifiier XE API来增加时间戳410
16.2.3查看结果411
16.3并行化基准的C版本414
16.3.1方式一:同步共享变量的访问414
16.3.2方式二:复制全局变量417
16.4并行化C+++版本的基准420
16.4.1方式三:将应用程序封装到一个C++++类中420
16.4.2方式四:使用Cilk Plus Holder424
16.5结果总览428
16.5.1性能428
16.5.2修改工作428
16.6小结429