并行算法设计与性能优化

并行算法设计与性能优化
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2015-06
版次: 1
ISBN: 9787111501022
定价: 59.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 202页
字数: 200千字
正文语种: 简体中文
109人买过
  •   《高性能计算技术丛书:并行算法设计与性能优化》是“并行计算与性能优化”系列的第1本,主要讲解了并行计算的核心理论、算法设计和实践,以及代码的性能优化,第2本和第3本则涵盖了并行编程方法与优化实践、科学计算与企业级应用的并行优化等重要主题,这些内容被许多开发人员视为“不传之秘”。本书作者是国内的并行计算专家,曾任英伟达并行计算工程师和百度在线高级研发工程师,在该领域的经验和修为极为深厚,他毫不吝啬地将自己多年的积累呈现在这3本书中,得到了百度深度学习研究院“杰出科学家”吴韧的高度评价和强烈推荐。  《高性能计算技术丛书:并行算法设计与性能优化》结合大量示例和伪代码,详细介绍了单核代码的性能优化和向量化技术,在现代多核处理器上如何设计并行算法,以及基于GPU和移动处理器(ARM)的代码性能优化与并行化。  《高性能计算技术丛书:并行算法设计与性能优化》12章,逻辑上分为四大部分:  并行计算理论基础  主要介绍并行现状、与并行计算紧密相关的现代处理器的技术与特点,算法与程序性能的度量和分析的新旧标准及实用工具,以及代码依赖关系的分析和去除处理。  代码优化  首先从系统、应用、算法、函数、循环、语句和指令7大维度讲解了常见的串行代码优化手段,然后讲解了如何通过多种方式将现有的串行代码向量化和并行化,以提高效率和利用率。  并行算法设计考量  主要讲解了如何设计优良的并行算法以及将并行算法映射到具体硬件上,涵盖常见的并行编程环境、并行算法设计方法、并行算法的缺陷、编程模式实践、一般准则,等等。  遗留代码的并行化  主要讲解了如何找出软件的计算热点,如何合理地选择部分并行或者整体并行,然后将实现后的代码嵌入原软件,以提高企业现有代码的利用率,并以实例加以说明。   刘文志,花名风辰,毕业于科学院研究生院,闻名于并行计算江湖,尤善异构并行计算(X86、ARM、GPU、APU、PHI)和大规模集群计算相关技术,有7年相关经验,涉及图像处理、计算机视觉、数据挖掘和石油勘探。曾任英伟达并行计算工程师(协助建立英伟达北京CUDA团队)、百度在线高级研发工程师(协助建立百度深度学习实验室异构计算团队)。 前言
    第1章绪论
    1.1并行和向量化的作用
    1.2为什么要并行或向量化
    1.3为什么向量化或并行难
    1.4并行的替代方法
    1.5进程、线程与处理器
    1.6并行硬件平台
    1.7向量化和多核技术不是万能的
    1.8本章小结

    第2章现代处理器特性
    2.1指令级并行
    2.1.1指令流水线
    2.1.2乱序执行
    2.1.3指令多发射
    2.1.4分支预测
    2.1.5VLIW
    2.2向量化并行
    2.2.1SIMD
    2.2.2SIMT
    2.3线程级并行
    2.3.1内核线程和用户线程
    2.3.2多线程编程库
    2.3.3多核上多线程并行要注意的问题
    2.3.4多线程程序在多核和单核上运行的不同
    2.4缓存
    2.4.1缓存层次结构
    2.4.2缓存一致性
    2.4.3缓冲不命中
    2.4.4写缓存
    2.4.5越过缓存
    2.4.6硬件预取
    2.4.7缓存结构
    2.4.8映射策略
    2.5虚拟存储器和TLB
    2.6NUMA技术
    2.7本章小结

    第3章算法性能和程序性能的度量与分析
    3.1算法分析的性能度量标准
    3.1.1时间复杂度与空间复杂度
    3.1.2实现复杂度
    3.2程序和指令的性能度量标准
    3.3程序性能优化的度量标准
    3.3.1加速比与并行效率
    3.3.2Amdahl定律和Gustafson定律
    3.4程序性能分析实用工具
    3.5本章小结

    第4章串行代码性能优化
    4.1系统级别
    4.2应用级别
    4.3算法级别
    4.4函数级别
    4.4.1函数调用参数
    4.4.2内联小函数
    4.5循环级别
    4.5.1循环展开
    4.5.2循环累积
    4.5.3循环合并
    4.5.4循环拆分
    4.6语句级别
    4.6.1减少内存读写
    4.6.2选用尽量小的数据类型
    4.6.3结构体对齐
    4.6.4表达式移除
    4.6.5分支优化
    4.6.6优化交换性能
    4.7指令级别
    4.8本章小结

    第5章依赖分析
    5.1指令级依赖
    5.1.1结构化依赖
    5.1.2数据依赖
    5.1.3控制依赖
    5.2循环级依赖
    5.2.1循环数据依赖
    5.2.2循环控制依赖
    5.3寄存器重命名
    5.4本章小结

    第6章并行编程模型及环境
    6.1并行编程模型
    6.1.1指令级并行
    6.1.2向量化并行
    6.1.3易并行
    6.1.4任务并行
    6.1.5数据并行
    6.1.6循环并行化
    6.1.7流水线并行
    6.1.8区域分解并行
    6.1.9隐式和显式并行化
    6.1.10SPMD
    6.1.11共享存储器并行
    6.1.12分布式存储器并行
    6.2常见并行编程环境
    6.2.1MPI
    6.2.2OpenMP
    6.2.3fork/pthread
    6.2.4CUDA
    6.2.5OpenCL
    6.2.6OpenACC
    6.2.7NEON内置函数
    6.2.8SSE/AVX内置函数
    6.3本章小结

    第7章并行算法设计方法
    7.1划分
    7.1.1分而治之
    7.1.2划分原则
    7.1.3常见划分方法
    7.1.4并行性和局部性
    7.2通信
    7.2.1操作的原子性
    7.2.2结果的可见性
    7.2.3顺序一致性
    7.2.4函数的可重入与线程安全
    7.2.5volatile关键字
    7.2.6锁
    7.2.7临界区
    7.2.8原子操作
    7.2.9栅栏
    7.3结果归并
    7.4负载均衡
    7.4.1静态负载均衡
    7.4.2动态负载均衡
    7.4.3动态负载均衡算法的一般步骤
    7.5本章小结

    第8章并行算法缺陷
    8.1启动结束时间
    8.2负载均衡
    8.3竞写
    8.4锁
    8.4.1死锁
    8.4.2活锁
    8.5饿死
    8.6伪共享
    8.7原子操作
    8.8存储器栅栏
    8.9缓存一致性
    8.10顺序一致性
    8.11volatile同步错误
    8.12本章小结

    第9章并行编程模式实践
    9.1map模式
    9.2reduce模式
    9.3结合map和reduce模式
    9.4scan模式
    9.5zip/unzip模式
    9.6流水线模式
    9.7本章小结

    第10章如何并行遗留代码
    10.1找出软件的计算热点
    10.2判断是否并行化热点
    10.3设计算法并实现
    10.3.1选择何种工具进行向量化或并行化
    10.3.2重构热点代码
    10.3.3依据硬件实现算法
    10.4将实现后的代码嵌入原软件
    10.4.1混合编译
    10.4.2动态链接库
    10.5示例:如何并行化word2vec
    10.6本章小结

    第11章超级并行
    11.1超级并行方式编程
    11.1.1进程+线程
    11.1.2进程+GPU线程
    11.1.3线程+GPU线程
    11.1.4线程+向量指令
    11.1.5进程+线程+向量指令
    11.1.6进程+线程+GPU线程
    11.2矩阵乘法
    11.2.1多机CPU矩阵乘法
    11.2.2单机多GPU矩阵乘法
    11.2.3多机多GPU矩阵乘法
    11.3本章小结

    第12章并行算法设计的一般准则
    12.1并行算法设计14准则
    12.2本章小结
    附录A整型数据与浮点数据
  • 内容简介:
      《高性能计算技术丛书:并行算法设计与性能优化》是“并行计算与性能优化”系列的第1本,主要讲解了并行计算的核心理论、算法设计和实践,以及代码的性能优化,第2本和第3本则涵盖了并行编程方法与优化实践、科学计算与企业级应用的并行优化等重要主题,这些内容被许多开发人员视为“不传之秘”。本书作者是国内的并行计算专家,曾任英伟达并行计算工程师和百度在线高级研发工程师,在该领域的经验和修为极为深厚,他毫不吝啬地将自己多年的积累呈现在这3本书中,得到了百度深度学习研究院“杰出科学家”吴韧的高度评价和强烈推荐。  《高性能计算技术丛书:并行算法设计与性能优化》结合大量示例和伪代码,详细介绍了单核代码的性能优化和向量化技术,在现代多核处理器上如何设计并行算法,以及基于GPU和移动处理器(ARM)的代码性能优化与并行化。  《高性能计算技术丛书:并行算法设计与性能优化》12章,逻辑上分为四大部分:  并行计算理论基础  主要介绍并行现状、与并行计算紧密相关的现代处理器的技术与特点,算法与程序性能的度量和分析的新旧标准及实用工具,以及代码依赖关系的分析和去除处理。  代码优化  首先从系统、应用、算法、函数、循环、语句和指令7大维度讲解了常见的串行代码优化手段,然后讲解了如何通过多种方式将现有的串行代码向量化和并行化,以提高效率和利用率。  并行算法设计考量  主要讲解了如何设计优良的并行算法以及将并行算法映射到具体硬件上,涵盖常见的并行编程环境、并行算法设计方法、并行算法的缺陷、编程模式实践、一般准则,等等。  遗留代码的并行化  主要讲解了如何找出软件的计算热点,如何合理地选择部分并行或者整体并行,然后将实现后的代码嵌入原软件,以提高企业现有代码的利用率,并以实例加以说明。
  • 作者简介:
      刘文志,花名风辰,毕业于科学院研究生院,闻名于并行计算江湖,尤善异构并行计算(X86、ARM、GPU、APU、PHI)和大规模集群计算相关技术,有7年相关经验,涉及图像处理、计算机视觉、数据挖掘和石油勘探。曾任英伟达并行计算工程师(协助建立英伟达北京CUDA团队)、百度在线高级研发工程师(协助建立百度深度学习实验室异构计算团队)。
  • 目录:
    前言
    第1章绪论
    1.1并行和向量化的作用
    1.2为什么要并行或向量化
    1.3为什么向量化或并行难
    1.4并行的替代方法
    1.5进程、线程与处理器
    1.6并行硬件平台
    1.7向量化和多核技术不是万能的
    1.8本章小结

    第2章现代处理器特性
    2.1指令级并行
    2.1.1指令流水线
    2.1.2乱序执行
    2.1.3指令多发射
    2.1.4分支预测
    2.1.5VLIW
    2.2向量化并行
    2.2.1SIMD
    2.2.2SIMT
    2.3线程级并行
    2.3.1内核线程和用户线程
    2.3.2多线程编程库
    2.3.3多核上多线程并行要注意的问题
    2.3.4多线程程序在多核和单核上运行的不同
    2.4缓存
    2.4.1缓存层次结构
    2.4.2缓存一致性
    2.4.3缓冲不命中
    2.4.4写缓存
    2.4.5越过缓存
    2.4.6硬件预取
    2.4.7缓存结构
    2.4.8映射策略
    2.5虚拟存储器和TLB
    2.6NUMA技术
    2.7本章小结

    第3章算法性能和程序性能的度量与分析
    3.1算法分析的性能度量标准
    3.1.1时间复杂度与空间复杂度
    3.1.2实现复杂度
    3.2程序和指令的性能度量标准
    3.3程序性能优化的度量标准
    3.3.1加速比与并行效率
    3.3.2Amdahl定律和Gustafson定律
    3.4程序性能分析实用工具
    3.5本章小结

    第4章串行代码性能优化
    4.1系统级别
    4.2应用级别
    4.3算法级别
    4.4函数级别
    4.4.1函数调用参数
    4.4.2内联小函数
    4.5循环级别
    4.5.1循环展开
    4.5.2循环累积
    4.5.3循环合并
    4.5.4循环拆分
    4.6语句级别
    4.6.1减少内存读写
    4.6.2选用尽量小的数据类型
    4.6.3结构体对齐
    4.6.4表达式移除
    4.6.5分支优化
    4.6.6优化交换性能
    4.7指令级别
    4.8本章小结

    第5章依赖分析
    5.1指令级依赖
    5.1.1结构化依赖
    5.1.2数据依赖
    5.1.3控制依赖
    5.2循环级依赖
    5.2.1循环数据依赖
    5.2.2循环控制依赖
    5.3寄存器重命名
    5.4本章小结

    第6章并行编程模型及环境
    6.1并行编程模型
    6.1.1指令级并行
    6.1.2向量化并行
    6.1.3易并行
    6.1.4任务并行
    6.1.5数据并行
    6.1.6循环并行化
    6.1.7流水线并行
    6.1.8区域分解并行
    6.1.9隐式和显式并行化
    6.1.10SPMD
    6.1.11共享存储器并行
    6.1.12分布式存储器并行
    6.2常见并行编程环境
    6.2.1MPI
    6.2.2OpenMP
    6.2.3fork/pthread
    6.2.4CUDA
    6.2.5OpenCL
    6.2.6OpenACC
    6.2.7NEON内置函数
    6.2.8SSE/AVX内置函数
    6.3本章小结

    第7章并行算法设计方法
    7.1划分
    7.1.1分而治之
    7.1.2划分原则
    7.1.3常见划分方法
    7.1.4并行性和局部性
    7.2通信
    7.2.1操作的原子性
    7.2.2结果的可见性
    7.2.3顺序一致性
    7.2.4函数的可重入与线程安全
    7.2.5volatile关键字
    7.2.6锁
    7.2.7临界区
    7.2.8原子操作
    7.2.9栅栏
    7.3结果归并
    7.4负载均衡
    7.4.1静态负载均衡
    7.4.2动态负载均衡
    7.4.3动态负载均衡算法的一般步骤
    7.5本章小结

    第8章并行算法缺陷
    8.1启动结束时间
    8.2负载均衡
    8.3竞写
    8.4锁
    8.4.1死锁
    8.4.2活锁
    8.5饿死
    8.6伪共享
    8.7原子操作
    8.8存储器栅栏
    8.9缓存一致性
    8.10顺序一致性
    8.11volatile同步错误
    8.12本章小结

    第9章并行编程模式实践
    9.1map模式
    9.2reduce模式
    9.3结合map和reduce模式
    9.4scan模式
    9.5zip/unzip模式
    9.6流水线模式
    9.7本章小结

    第10章如何并行遗留代码
    10.1找出软件的计算热点
    10.2判断是否并行化热点
    10.3设计算法并实现
    10.3.1选择何种工具进行向量化或并行化
    10.3.2重构热点代码
    10.3.3依据硬件实现算法
    10.4将实现后的代码嵌入原软件
    10.4.1混合编译
    10.4.2动态链接库
    10.5示例:如何并行化word2vec
    10.6本章小结

    第11章超级并行
    11.1超级并行方式编程
    11.1.1进程+线程
    11.1.2进程+GPU线程
    11.1.3线程+GPU线程
    11.1.4线程+向量指令
    11.1.5进程+线程+向量指令
    11.1.6进程+线程+GPU线程
    11.2矩阵乘法
    11.2.1多机CPU矩阵乘法
    11.2.2单机多GPU矩阵乘法
    11.2.3多机多GPU矩阵乘法
    11.3本章小结

    第12章并行算法设计的一般准则
    12.1并行算法设计14准则
    12.2本章小结
    附录A整型数据与浮点数据
查看详情
系列丛书 / 更多
并行算法设计与性能优化
CUDA C编程权威指南
程润伟(John Cheng);马克斯·格罗斯曼(Max Grossman);泰·麦克切尔(Ty McKercher)
并行算法设计与性能优化
科学计算与企业级应用的并行优化
刘文志 著
并行算法设计与性能优化
高性能计算技术丛书:并行编程方法与优化实践
刘文志 著
并行算法设计与性能优化
并行计算:模型与算法
张云泉、袁良 著
并行算法设计与性能优化
高性能计算的问题解决之道:Linux态势感知方法、实用工具及实践技巧
[美]伊戈尔·卢布希斯(Igor Ljubuncic) 著;张文力 译
并行算法设计与性能优化
CUDA高性能并行计算
苏统华 译者;杜安·斯托尔蒂(Duane Storti);梅特·尤尔托卢(Mete Yurtoglu)
并行算法设计与性能优化
OpenACC并行编程实战
何沧平 著
并行算法设计与性能优化
OpenCL异构并行编程实战
[美]雷蒙德·泰(Raymond Tay) 著;张立浩 译
并行算法设计与性能优化
多核与GPU编程:工具、方法及实践
张云泉、贾海鹏、李士刚、袁良 译
并行算法设计与性能优化
OpenCL异构并行计算:原理、机制与优化实践
刘文志、陈轶、吴长江 著
并行算法设计与性能优化
异构处理器OpenCL编程导论
邓仰东、朱茂华 著
相关图书 / 更多
并行算法设计与性能优化
并行程序设计:概念与实践
[德]贝蒂尔·施密特(Bertil Schmidt) 著;张常有 、吴长茂、解庆春 译
并行算法设计与性能优化
并行编程
张杨
并行算法设计与性能优化
并行计算导论/人工智能与大数据技术丛书
雷向东、雷振阳、龙军 著
并行算法设计与性能优化
并行离群数据挖掘及应用
李俊丽 著
并行算法设计与性能优化
并行数据挖掘及性能优化:关联规则与数据相关性分析
荀亚玲 著
并行算法设计与性能优化
并行编程实战——基于C#8和.NETCore3
[印]沙克蒂·坦沃 著;马琳琳 译
并行算法设计与性能优化
并行计算与高性能计算
尤莉安娜·萨莫拉(Yuliana Zamora)著 殷海英 译;[美]罗伯特·罗比(Robert Robey)
并行算法设计与性能优化
并行化河流数学模型研发及应用
李健、霍军军 著
并行算法设计与性能优化
并行多核体系结构基础
[美]汤孟岩(Yan Solihin)
并行算法设计与性能优化
并行计算机体系结构(第2版)
陈国良
并行算法设计与性能优化
并行书系 雕光刻影 皮影雕刻巨匠汪天稳 传承传统文化 匠人精神在中国
张欣 著
并行算法设计与性能优化
并行编程原理与程序设计
何兵寿;宋鹏;刘颖