标题：释放多核潜能
图书信息
  书 名: 释放多核潜能——英特尔Parallel Studio并行开发指南
作　者：英特尔亚太研发有限公司 北京并行科技公司
出版社： 清华大学出版社
出版时间： 2010年9月1日
ISBN: 9787302235033
开本： 16开
定价: 39.80元
页数：287
内容简介
《释放多核潜能:英特尔Parallel Studio并行开发指南》采用工程理论、工具详解和实际案例分析相结合的方式，全面介绍了英特尔Parallel Studio工具集的使用。全书分三部分：基础部分（第1、2章）介绍了多核架构、并行编程的关键理论，Parallel Studio的特点以及一些简单案例；中级部分（第3～12章）详述了Parallel Studio各个组件的使用，是《释放多核潜能:英特尔Parallel Studio并行开发指南》的重点；提高部分（第13章）选取了来自英特尔线程挑战赛的4个算例和1个商业软件并行优化案例，提供了从工程实际角度解决并行问题的视角。
《释放多核潜能:英特尔Parallel Studio并行开发指南》适合所有对并行开发技术感兴趣的人员，包括具备一定编程经验的程序员、调试人员，计算密集型行业的高性能计算架构师、性能优化分析师，并行开发的研究人员，对英特尔Parallel Studio感兴趣的技术决策者等。此外，《释放多核潜能:英特尔Parallel Studio并行开发指南》也可作为高等院校计算机专业并行开发相关课程的培训及社会实践参考用书。
编辑推荐
多核时代，从串行到并行，你的编程思想和开发技术必须升级！
由英特尔、并行科技的技术专家共同编写，兼具理论和实践
国内第一本Windows并行开发利器——英特尔Parallel Studio工具详解应运而生！
作者简介
并行科技，北京并行科技有限公司（以下简称并行科技），是一家专注于高性能计算软件与技术服务的高新技术企业，与英特尔等软硬件厂商有着密切的合作伙伴关系，主要客户包括科研院所、能源、气象、制造、金融、互联网等计算密集型用户。在程序并行化、优化领域，并行科技拥有自主知识产权的Paramon、Paraview专业工具，积累了从搜集应用特征、定位性能瓶颈到分级优化的系统方法，被誉为“性能专家”。同时，并行科技作为英特尔软件代理商，也为用户提供卓越的英特尔软件技术支持、培训等。
英特尔高性能计算支持团队，英特尔高性能计算支持团队，专注于多核平台和服务器集群的并行应用优化，负责为国内高性能计算和互联网数据中心用户，提供应用性能优化、代码并行、应用特征分析、开发工具培训以及并行解决方案建议和评估等工程支持，在石油勘探、制造业、气候气象、生命科学和互联网搜索引擎等大规模并行应用领域积累了丰富的经验。
适用对象
本书适合所有对并行开发技术感兴趣的人员，包括具备一定编程经验的程序员、调试人员；计算密集型行业的高性能计算架构师、性能优化分析师；并行开发的研究人员；对英特尔Parallel Studio感兴趣的技术决策者等。此外，本书也可作为高等院校计算机专业并行开发相关课程的培训及社会实践参考用书。
专业书评
“当它向我正确指出占用时间最长的源代码行时，我非常高兴。修改之后，应用程序的速度几乎提高了10倍。”
一位匿名beta版测试人员这样描述英特尔Parallel Amplifier
“英特尔Parallel Studio中新的分析和评测工具，使得开发新的Envivio 4Caster系列代码转换器变得更快更有效。尤其是通过使用英特尔Parallel Inspector和英特尔Parallel Amplifier，提高了代码的可靠性及其在多核多线程环境下的性能，从而缩短了总体开发周期。在合格性检查阶段，由于安全性提高，减少了紊乱代码的数量，错误跟踪也变得更容易。英特尔Parallel Studio全面优化了我们的软件产品，并缩短了上市周期。”
Eric Rosier 工程副总裁 Envivio公司
“英特尔Parallel Inspector和英特尔Parallel Amplifier极大地简化了查找热点和内存泄露的任务，整体性能提升两倍，同时也消除了过去几处未发现的内存泄露，我们非常满意。”
Vlad Romashko 软件开发经理 OpenCascade S.A.S
“使用英特尔Parallel Studio能帮助我们对游戏进行性能分析，找到热点，并能定位内存错误和线程错误。Parallel Studio与IDE完美整合，方便易用，使我们的开发效率和开发质量大幅度提高，降低了风险和成本。”
徐鸿 开发主管 第九城市信息技术有限公司
“处理器从单核到多核的变迁，使得软件的并行或者并发成为必然。‘工欲善其事，必先利其器’，并行程序的调试和优化尤其需要出色的开发工具。英特尔Parallel Studio方便、高效，在传统的高性能计算领域已经发挥了巨大的作用，而对每一个有志于进行并行软件开发的程序员来说，它都应该是首选的开发工具。”
姚继锋 原上海超级计算中心首席架构师
现中科嘉速（北京）并行软件有限公司总经理
图书目录
第1章 并行开发理论基础
1.1 并行相关概念
1.1.1 并发与并行、并行度
1.1.2 粒度
1.1.3 加速比及其定律
1.1.4 可扩展性与并行效率
1.1.5 负载均衡
1.1.6 吞吐量与延迟
1.1.7 热点与瓶颈
1.2 多核并行
1.2.1 多核软硬件现实
1.2.2 多核架构
1.2.3 多核并行手段
1.2.4 多核并行设计方法
1.2.5 多核多线程系统
1.2.6 多核多线程同步
1.2.7 多核多线程实现的问题
1.3 小结
第2章 英特尔Parallel Studio基础
2.1 英特尔Parallel Studio介绍
2.1.1 英特尔 Parallel Studio背景
2.1.2 英特尔 Parallel Studio的组成
2.1.3 英特尔 Parallel Studio的特色
2.1.4 英特尔 Parallel Studio的使用者
2.2 英特尔Parallel Studio快速上手
2.2.1 英特尔 Parallel Studio的下载安装
2.2.2 选择案例
2.2.3 实践动手第一步：采用Parallel Studio运行串行程序
2.2.4 实践动手第二步：选用合适的实现对代码并行化
2.2.5 实践动手第三步：定位错误
2.2.6 实践动手第四步：性能优化
2.3 小结
第3章 英特尔Parallel Composer详解
3.1 Composer概述
3.2 英特尔C/C++编译器
3.2.1 自动并行和OpenMP并行
3.2.2 过程间优化
3.2.3 档案导引优化
3.2.4 编译器向量化
3.3 英特尔并行调试器
3.3.1 英特尔并行调试器概述
3.3.2 线程数据共享侦测
3.3.3 可重入函数调用侦测
3.3.4 SSE寄存器窗口
3.3.5 OpenMP多线程调试
3.3.6 并行区域的串行执行
3.4 英特尔TBB线程构建模块
3.4.1 英特尔TBB概述
3.4.2 功能模块分类与介绍
3.4.3 编译和运行TBB多线程程序
3.5 英特尔IPP性能基元
3.5.1 英特尔IPP概述
3.5.2 主要函数及其功能
3.5.3 编译和运行
3.6 小结
第4章 并行化方法
4.1 基本概念
4.1.1 Amdahl定律
4.1.2 进程与线程
4.2 并行化方法
4.3 并行化设计
4.3.1 任务划分
4.3.2 功能划分
4.3.3 并行化开发中的一些思考
4.4 案例分析：用蒙特卡罗方法计算π值
4.5 小结
第5章 英特尔Parallel Composer案例分析
5.1 案例5-1：Composer的使用——向量化和自动并行化
5.2 案例5-2：并行调试器的使用
5.3 案例5-3：通过TBB进行字符串查找
5.4 案例5-4：IPP压缩和解压缩案例介绍
5.5 小结
第6章 英特尔Parallel Inspector详解
6.1 Inspector概述
6.2 启动Inspectort
6.2.1 工作流程
6.2.2 启动
6.3 配置查找错误的类型和粒度
6.3.1 基于线程的相关错误及粒度
6.3.2 基于内存的相关错误及粒度
6.4 定位和解决发现的错误
6.4.1 检查错误
6.4.2 查看和分析错误
6.5 小结
第7章 软件纠错方法
7.1 基本概念
7.1.1 软件查错或纠错
7.1.2 白盒测试
7.1.3 黑盒测试
7.2 并行软件的纠错
7.3 线程并行的常见错误
7.3.1 线程间死锁
7.3.2 线程间竞争
7.3.3 内存泄露
7.4 小结
第8章 并行软件纠错案例
8.1 案例8-1：线程间相互作用导致的死锁问题
8.2 案例8-2：线程竞争
8.3 案例8-3：内存泄露
8.4 小结
第9章 英特尔Parallel Amplifier详解
9.1 Amplifier概述
9.1.1 如何开始Amplifier
9.1.2 如何使用符号信息
9.1.3 环境和对象
9.2 Amplifier的几个概念
9.3 Amplifier的分析运行
9.3.1 分析运行的几个选项
9.3.2 选择分析模式
9.3.3 如何选择分析模式
9.3.4 如何在命令行下运行分析模式
9.3.5 热点：分析程序哪里耗时
9.3.6 并行度：展现并行程序的另外一个特点
9.3.7 锁和等待：分析程序在哪里等待
9.3.8 选择数据采集的时段
9.4 Amplifier中浏览性能数据结果
9.4.1 总览
9.4.2 在Bottom-up和Top-down中切换
9.4.3 选择和管理栈类型
9.4.4 选择颜色方案
9.4.5 按照不同类型划分组
9.4.6 在命令行模式下查看性能数据
9.5 Amplifier解释性能数据结果
9.5.1 总览
9.5.2 解释热点分析结果
9.5.3 解释并行度分析结果
9.5.4 解释锁和等待分析结果
9.6 Amplifier中的源代码
9.7 Amplifier中对比性能数据结果
9.8 Amplifier中管理结果文件
9.9 小结
第10章 性能优化方法
10.1 性能优化概述
10.1.1 性能和性能优化是计算机领域不变的主题
10.1.2 性能优化的定义
10.2 性能优化通用方法
10.2.1 性能优化的顺序
10.2.2 系统级别的性能优化
10.2.3 应用级别的性能优化
10.2.4 微架构级别的性能优化
10.2.5 性能优化工作循环
10.2.6 性能优化循环的常见问题
10.3 并行应用性能优化方法
10.3.1 概述
10.3.2 减少关键路径上的时间
10.3.3 检查是否选择最优的并行方法
10.3.4 检查是否选择合适的层级开始并行
10.3.5 Amdahl定律的检查：减少串行部分的比例
10.3.6 检查程序的负载均衡问题
10.3.7 检查程序的粒度问题
10.3.8 采用合适的线程库
10.3.9 检查同步性能问题
10.3.10 检查硬件导致的扩展性问题
10.4 小结
第11章 性能优化案例
11.1 IO并行：系统级优化案例
11.2 锁的实现：锁优化案例
11.3 同步与负载均衡：生产消费类型的优化案例
11.4 优化临界区：WinThread循环计算型优化案例
11.5 负载均衡与归约：OpenMP循环计算型优化案例
11.6 线程数，桶数与锁：Hash表与TBB优化案例
11.7 选择合适的层级并行：任务与数据并行优化案例
11.8 避免硬件性能瓶颈：内存与高速缓存优化案例
11.9 算法选择：排序优化与TBB案例
11.10 内存操作TBB优化案例
11.11 小结
第12章 英特尔Parallel Advisor详解
12.1 Advisor基础
12.1.1 Advisor总览
12.1.2 如何开始Advisor
12.2 Advisor工作流程
12.3 Annotations
12.4 Advisor 工具
12.4.1 Survey
12.4.2 Suitability
12.4.3 Correctness
12.5 使用案例
12.5.1 SpMV并行化
12.5.2 DGEMM并行化
12.6 小结
第13章 总体系统化案例
13.1 数独
13.1.1 串行算法
13.1.2 并行优化
13.1.3 小结
13.2 最短路径
13.2.1 串行算法
13.2.2 并行优化
13.2.3 小结
13.3 基数排序
13.3.1 串行算法
13.3.2 并行优化
13.3.3 小结
13.4 骑士巡游
13.4.1 串行算法
13.4.2 并行优化
13.4.3 小结
13.5 商业软件Paraview
13.5.1 问题描述
13.5.2 并行优化
13.5.3 小结
附录A 英文术语表