并行算法设计与性能优化

并行算法设计与性能优化 刘文志著

算法 高并发 性能 优化
浏览人数:337
读者: ...
  《高性能计算技术丛书:并行算法设计与性能优化》是“并行计算与性能优化”系列的第1本,主要讲解了并行计算的核心理论、算法设计和实践,以及代码的性能优化,第2本和第3本则涵盖了并行编程方法与优化实践、科学计算与企业级应用的并行优化等重要主题,这些内容被许多开发人员视为“不传之秘”。本书作者是国内的并行计算专家,曾任英伟达并行计算工程师和百度在线高级研发工程师,在该领域的经验和修为极为深厚,他毫不吝啬地将自己多年的积累呈现在这3本书中,得到了百度深度学习研究院“杰出科学家”吴韧的高度评价和强烈推荐。   《高性能计算技术丛书:并行算法设计与性能优化》结合大量示例和伪代码,详细介绍了单核代码的性能优化和向量化技术,在现代多核处理器上如何设计并行算法,以及基于GPU和移动处理器(ARM)的代码性能优化与并行化。   《高性能计算技术丛书:并行算法设计与性能优化》12章,逻辑上分为四大部分:   并行计算理论基础   主要介绍并行现状、与并行计算紧密相关的现代处理器的技术与特点,算法与程序性能的度量和分析的新旧标准及实用工具,以及代码依赖关系的分析和去除处理。   代码优化   首先从系统、应用、算法、函数、循环、语句和指令7大维度讲解了常见的串行代码优化手段,然后讲解了如何通过多种方式将现有的串行代码向量化和并行化,以提高效率和利用率。   并行算法设计考量   主要讲解了如何设计优良的并行算法以及将并行算法映射到具体硬件上,涵盖常见的并行编程环境、并行算法设计方法、并行算法的缺陷、编程模式实践、一般准则,等等。   遗留代码的并行化   主要讲解了如何找出软件的计算热点,如何合理地选择部分并行或者整体并行,然后将实现后的代码嵌入原软件,以提高企业现有代码的利用率,并以实例加以说明。
前言   
第1章 绪论   
1.1 并行和向量化的作用   
1.2 为什么要并行或向量化   
1.3 为什么向量化或并行难   
1.4 并行的替代方法   
1.5 进程、线程与处理器   
1.6 并行硬件平台   
1.7 向量化和多核技术不是万能的   
1.8 本章小结   
第2章 现代处理器特性   
2.1 指令级并行   
2.2 向量化并行   
2.3 线程级并行   
2.4 缓存   
2.5 虚拟存储器和TLB   
2.6 NUMA技术   
2.7 本章小结   
第3章 算法性能和程序性能的度量与分析   
3.1 算法分析的性能度量标准   
3.2 程序和指令的性能度量标准   
3.3 程序性能优化的度量标准   
3.4 程序性能分析实用工具   
3.5 本章小结   
第4章 串行代码性能优化   
4.1 系统级别   
4.2 应用级别   
4.3 算法级别   
4.4 函数级别   
4.5 循环级别   
4.6 语句级别   
4.7 指令级别   
4.8 本章小结   
第5章 依赖分析   
5.1 指令级依赖   
5.2 循环级依赖   
5.3 寄存器重命名   
5.4 本章小结   
第6章 并行编程模型及环境   
6.1 并行编程模型   
6.2 常见并行编程环境   
6.3 本章小结   
第7章 并行算法设计方法   
7.1 划分   
7.2 通信   
7.3 结果归并   
7.4 负载均衡   
7.5 本章小结   
第8章 并行算法缺陷   
8.1 启动结束时间   
8.2 负载均衡   
8.3 竞写   
8.4 锁   
8.5 饿死   
8.6 伪共享   
8.7 原子操作   
8.8 存储器栅栏   
8.9 缓存一致性   
8.10 顺序一致性   
8.11 volatile同步错误   
8.12 本章小结   
第9章 并行编程模式实践   
9.1 map模式   
9.2 reduce模式   
9.3 结合map和reduce模式   
9.4 scan模式   
9.5 zip/unzip 模式   
9.6 流水线模式   
9.7 本章小结   
第10章 如何并行遗留代码   
10.1 找出软件的计算热点   
10.2 判断是否并行化热点   
10.3 设计算法并实现   
10.4 将实现后的代码嵌入原软件   
10.5 示例:如何并行化word2vec   
10.6 本章小结   
第11章 超级并行   
11.1 超级并行方式编程   
11.2 矩阵乘法   
11.3 本章小结   
第12章 并行算法设计的一般准则   
12.1 并行算法设计14准则   
12.2 本章小结   
附录A 整型数据与浮点数据   
作者简介
评论