高性能并行珠玑:多核和众核编程方法

高性能并行珠玑:多核和众核编程方法
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2017-11
版次: 1
ISBN: 9787111580805
定价: 119.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 378页
15人买过
  • 本书由Intel的技术专家撰写,系统地讲解在IntelXeon处理器和IntelXeonPhi协处理器上进行并行处理和编程的方法和技术,展示了更好地利用Intel处理器或其他多核处理器的系统计算潜力的有效方法。全书包括大量来自多个行业和不同领域的并行编程例子。每章既详细讲述所采用的编程技术,同时展示了其在IntelXeonPhi协处理器和多核处理器上的高性能结果。几十个新的例子和案例显示的“成功经验”不但展现了这些强大系统的主要特征,而且展示出如何在这些异构系统上保持并行化。 James Reinders,英特尔软件总监,首席技术布道师。参与多个旨在加强并行编程在工业界应用的工程研究和教育项目。他对多个项目做出了贡献,包括世界上首例 Teraflop 级超级计算机(ASCI Red)和世界上首例 Teraflop 级微处理器(Intel Xeon Phi协处理器)。 

    Jim Jeffers,英特尔MIC(集成众核)架构专家和首席工程师,对至强融核协处理器有着较为深入与全面的研究。 High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches 
    出版者的话 
    译者序 
    推荐序 
    前 言 
    作者简介 
    第1章 引言 1 
    1.1 学习成功经验 1 
    1.2 代码现代化 1 
    1.3 并发算法现代化 1 
    1.4 向量化和数据局部性现代化 2 
    1.5 理解功耗使用 2 
    1.6 ISPC和OpenCL 2 
    1.7 Intel Xeon Phi协处理器特性 2 
    1.8 众核和新异构系统 2 
    1.9 书名中没有Xeon Phi与新异构架构编程 3 
    1.10 众核的未来 3 
    1.11 下载 3 
    1.12 更多信息 4 
    第2章从正确到正确&高效:Godunov 
    格式的Hydro2D案例学习 5 
    2.1 现代计算机上的科学计算 5 
    2.1.1 现代计算环境 6 
    2.1.2 CEA的Hydro2D 6 
    2.2 冲击流体动力学的一种数值方法 7 
    2.2.1 欧拉方程 7 
    2.2.2 Godunov方法 7 
    2.2.3 哪里需要优化 9 
    2.3 现代计算机架构的特征 9 
    2.3.1 面向性能的架构 9 
    2.3.2 编程工具和运行时 10 
    2.3.3 计算环境 11 
    2.4 通向高性能的路 11 
    2.4.1 运行Hydro2D 11 
    2.4.2 Hydro2D的结构 12 
    2.4.3 优化 15 
    2.4.4 内存使用 16 
    2.4.5 线程级并行 17 
    2.4.6 算术效率和指令级并行 24 
    2.4.7 数据级并行 26 
    2.5 总结 32 
    2.5.1 协处理器与处理器 32 
    2.5.2 水涨船高 32 
    2.5.3 性能策略 33 
    2.6 更多信息 34 
    第3章HBM上的SIMD与并发优化 36 
    3.1应用程序:HIROMB-BOOS-MODEL 36 
    3.2 关键应用:DMI 36 
    3.3 HBM执行配置文件 37 
    3.4 HBM优化综述 38 
    3.5 数据结构:准确定位位置 38 
    3.6 HBM上的线程并行 41 
    3.7 数据并行:SIMD向量化 45 
    3.7.1 零散的可优化部分 46 
    3.7.2 过早抽象是万恶之源 48 
    3.8 结果 50 
    3.9 详情分析 51 
    3.10 处理器与协处理器可扩展性对比 52 
    3.11 CONTIGUOUS属性 53 
    3.12 总结 54 
    3.13 参考文献 54 
    3.14 更多信息 55 
    第4章 流体动力学方程优化 56 
    4.1 开始 56 
    4.2 1.0版本:基础版本 57 
    4.3 2.0版本:线程盒 59 
    4.4 3.0版本:栈内存 63 
    4.5 4.0版本:分块 63 
    4.6 5.0版本:向量化 64 
    4.7Intel Xeon Phi协处理器上的运行结果 68 
    4.8 总结 69 
    4.9 更多信息 70 
    第5章 分阶段准同步栅栏 71 
    5.1 如何改善代码 74 
    5.2 如何进一步改善代码 74 
    5.3 超线程方阵 74 
    5.4关于该方案哪些地方不是最优的 75 
    5.5 超线程方阵编码 76 
    5.5.1如何确定内核间兄弟线程和内核内HT线程 77 
    5.5.2 超线程方阵手动分区方法 77 
    5.5.3 吸取教训 79 
    5.6 回到工作 80 
    5.7 数据对齐 81 
    5.7.1 尽可能使用对齐的数据 81 
    5.7.2 冗余未必是件坏事 81 
    5.8 深入讨论分阶段准同步栅栏 84 
    5.9 如何节省时间 86 
    5.10 几个留给读者的优化思考 90 
    5.11类似Xeon Phi协处理器的Xeon主机性能优化 91 
    5.12 总结 92 
    5.13 更多信息 92 
    第6章 故障树表达式并行求解 93 
    6.1 动机和背景 93 
    6.1.1 表达式 93 
    6.1.2 表达式选择:故障树 93 
    6.1.3 程序实例中的故障树:基本模拟 93 
    6.2 实例实现 94 
    6.3 其他因素 101 
    6.4 总结 101 
    6.5 更多信息 101 
    第7章 深度学习的数值优化 102 
    7.1 拟合目标函数 102 
    7.2 目标函数与主成分分析 105 
    7.3 软件及样例数据 106 
    7.4 训练数据 109 
    7.5 运行时间 109 
    7.6 扩展结果 111 
    7.7 总结 111 
    7.8 更多信息 112 
    第8章 优化聚集/分散模式 113 
    8.1 聚集/分散在Intel架构下的说明 114 
    8.2 聚集/分散模式在分子动力学中的应用 115 
    8.3 优化聚集/分散模式 117 
    8.3.1 提高时间和空间的局部性 117 
    8.3.2 选择一种适当的数据布局:AoS与SoA 118 
    8.3.3 AoS和SoA之间的动态转换 119 
    8.3.4 分摊聚集/分散和转换的开销 122 
    8.4 总结 123 
    8.5 更多信息 123 
    第9章N体问题直接法的众核实现 125 
    9.1 N体模拟 125 
    9.2 初始解决方案 125 
    9.3 理论极限 126 
    9.4 降低开销和对齐数据 128 
    9.5 优化存储层次 131 
    9.6 改进分块 133 
    9.7 主机端的优化 135 
    9.8 总结 136 
    9.9 更多信息 136 
    第10章 N体方法 137 
    10.1 快速N体方法和直接N体内核 137 
    10.2 N体方法的应用 138 
    10.3 直接N体代码 138 
    10.4 性能结果 141 
    10.5 总结 142 
    10.6 更多信息 142 
    第11章 使用OpenMP 4.0实现动态负载均衡 144 
    11.1 最大化硬件利用率 144 
    11.2 N体内核 146 
    11.3 卸载版本 149 
    11.4 第一个处理器与协处理器协作版本 150 
    11.5 多协处理器版本 152 
    11.6 更多信息 155 
    第12章 并发内核卸载 156 
    12.1 设定上下文 156 
    12.1.1 粒子动力学 156 
    12.1.2 本章结构 157 
    12.2 协处理器上的并发内核 158 
    12.2.1 协处理器设备划分和线程关联 158 
    12.2.2 并发数据传输 163 
    12.3 在PD中使用并发内核卸载进行作用力计算 166 
    12.3.1 使用牛顿第三定律并行评估作用力 166 
    12.3.2 实现作用力并发计算 167 
    12.3.3 性能评估:之前与之后 171 
    12.4 总结
  • 内容简介:
    本书由Intel的技术专家撰写,系统地讲解在IntelXeon处理器和IntelXeonPhi协处理器上进行并行处理和编程的方法和技术,展示了更好地利用Intel处理器或其他多核处理器的系统计算潜力的有效方法。全书包括大量来自多个行业和不同领域的并行编程例子。每章既详细讲述所采用的编程技术,同时展示了其在IntelXeonPhi协处理器和多核处理器上的高性能结果。几十个新的例子和案例显示的“成功经验”不但展现了这些强大系统的主要特征,而且展示出如何在这些异构系统上保持并行化。
  • 作者简介:
    James Reinders,英特尔软件总监,首席技术布道师。参与多个旨在加强并行编程在工业界应用的工程研究和教育项目。他对多个项目做出了贡献,包括世界上首例 Teraflop 级超级计算机(ASCI Red)和世界上首例 Teraflop 级微处理器(Intel Xeon Phi协处理器)。 

    Jim Jeffers,英特尔MIC(集成众核)架构专家和首席工程师,对至强融核协处理器有着较为深入与全面的研究。
  • 目录:
    High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches 
    出版者的话 
    译者序 
    推荐序 
    前 言 
    作者简介 
    第1章 引言 1 
    1.1 学习成功经验 1 
    1.2 代码现代化 1 
    1.3 并发算法现代化 1 
    1.4 向量化和数据局部性现代化 2 
    1.5 理解功耗使用 2 
    1.6 ISPC和OpenCL 2 
    1.7 Intel Xeon Phi协处理器特性 2 
    1.8 众核和新异构系统 2 
    1.9 书名中没有Xeon Phi与新异构架构编程 3 
    1.10 众核的未来 3 
    1.11 下载 3 
    1.12 更多信息 4 
    第2章从正确到正确&高效:Godunov 
    格式的Hydro2D案例学习 5 
    2.1 现代计算机上的科学计算 5 
    2.1.1 现代计算环境 6 
    2.1.2 CEA的Hydro2D 6 
    2.2 冲击流体动力学的一种数值方法 7 
    2.2.1 欧拉方程 7 
    2.2.2 Godunov方法 7 
    2.2.3 哪里需要优化 9 
    2.3 现代计算机架构的特征 9 
    2.3.1 面向性能的架构 9 
    2.3.2 编程工具和运行时 10 
    2.3.3 计算环境 11 
    2.4 通向高性能的路 11 
    2.4.1 运行Hydro2D 11 
    2.4.2 Hydro2D的结构 12 
    2.4.3 优化 15 
    2.4.4 内存使用 16 
    2.4.5 线程级并行 17 
    2.4.6 算术效率和指令级并行 24 
    2.4.7 数据级并行 26 
    2.5 总结 32 
    2.5.1 协处理器与处理器 32 
    2.5.2 水涨船高 32 
    2.5.3 性能策略 33 
    2.6 更多信息 34 
    第3章HBM上的SIMD与并发优化 36 
    3.1应用程序:HIROMB-BOOS-MODEL 36 
    3.2 关键应用:DMI 36 
    3.3 HBM执行配置文件 37 
    3.4 HBM优化综述 38 
    3.5 数据结构:准确定位位置 38 
    3.6 HBM上的线程并行 41 
    3.7 数据并行:SIMD向量化 45 
    3.7.1 零散的可优化部分 46 
    3.7.2 过早抽象是万恶之源 48 
    3.8 结果 50 
    3.9 详情分析 51 
    3.10 处理器与协处理器可扩展性对比 52 
    3.11 CONTIGUOUS属性 53 
    3.12 总结 54 
    3.13 参考文献 54 
    3.14 更多信息 55 
    第4章 流体动力学方程优化 56 
    4.1 开始 56 
    4.2 1.0版本:基础版本 57 
    4.3 2.0版本:线程盒 59 
    4.4 3.0版本:栈内存 63 
    4.5 4.0版本:分块 63 
    4.6 5.0版本:向量化 64 
    4.7Intel Xeon Phi协处理器上的运行结果 68 
    4.8 总结 69 
    4.9 更多信息 70 
    第5章 分阶段准同步栅栏 71 
    5.1 如何改善代码 74 
    5.2 如何进一步改善代码 74 
    5.3 超线程方阵 74 
    5.4关于该方案哪些地方不是最优的 75 
    5.5 超线程方阵编码 76 
    5.5.1如何确定内核间兄弟线程和内核内HT线程 77 
    5.5.2 超线程方阵手动分区方法 77 
    5.5.3 吸取教训 79 
    5.6 回到工作 80 
    5.7 数据对齐 81 
    5.7.1 尽可能使用对齐的数据 81 
    5.7.2 冗余未必是件坏事 81 
    5.8 深入讨论分阶段准同步栅栏 84 
    5.9 如何节省时间 86 
    5.10 几个留给读者的优化思考 90 
    5.11类似Xeon Phi协处理器的Xeon主机性能优化 91 
    5.12 总结 92 
    5.13 更多信息 92 
    第6章 故障树表达式并行求解 93 
    6.1 动机和背景 93 
    6.1.1 表达式 93 
    6.1.2 表达式选择:故障树 93 
    6.1.3 程序实例中的故障树:基本模拟 93 
    6.2 实例实现 94 
    6.3 其他因素 101 
    6.4 总结 101 
    6.5 更多信息 101 
    第7章 深度学习的数值优化 102 
    7.1 拟合目标函数 102 
    7.2 目标函数与主成分分析 105 
    7.3 软件及样例数据 106 
    7.4 训练数据 109 
    7.5 运行时间 109 
    7.6 扩展结果 111 
    7.7 总结 111 
    7.8 更多信息 112 
    第8章 优化聚集/分散模式 113 
    8.1 聚集/分散在Intel架构下的说明 114 
    8.2 聚集/分散模式在分子动力学中的应用 115 
    8.3 优化聚集/分散模式 117 
    8.3.1 提高时间和空间的局部性 117 
    8.3.2 选择一种适当的数据布局:AoS与SoA 118 
    8.3.3 AoS和SoA之间的动态转换 119 
    8.3.4 分摊聚集/分散和转换的开销 122 
    8.4 总结 123 
    8.5 更多信息 123 
    第9章N体问题直接法的众核实现 125 
    9.1 N体模拟 125 
    9.2 初始解决方案 125 
    9.3 理论极限 126 
    9.4 降低开销和对齐数据 128 
    9.5 优化存储层次 131 
    9.6 改进分块 133 
    9.7 主机端的优化 135 
    9.8 总结 136 
    9.9 更多信息 136 
    第10章 N体方法 137 
    10.1 快速N体方法和直接N体内核 137 
    10.2 N体方法的应用 138 
    10.3 直接N体代码 138 
    10.4 性能结果 141 
    10.5 总结 142 
    10.6 更多信息 142 
    第11章 使用OpenMP 4.0实现动态负载均衡 144 
    11.1 最大化硬件利用率 144 
    11.2 N体内核 146 
    11.3 卸载版本 149 
    11.4 第一个处理器与协处理器协作版本 150 
    11.5 多协处理器版本 152 
    11.6 更多信息 155 
    第12章 并发内核卸载 156 
    12.1 设定上下文 156 
    12.1.1 粒子动力学 156 
    12.1.2 本章结构 157 
    12.2 协处理器上的并发内核 158 
    12.2.1 协处理器设备划分和线程关联 158 
    12.2.2 并发数据传输 163 
    12.3 在PD中使用并发内核卸载进行作用力计算 166 
    12.3.1 使用牛顿第三定律并行评估作用力 166 
    12.3.2 实现作用力并发计算 167 
    12.3.3 性能评估:之前与之后 171 
    12.4 总结
查看详情
12
系列丛书 / 更多
高性能并行珠玑:多核和众核编程方法
Java编程思想(第4版)
[美]Bruce Eckel 著;陈昊鹏 译
高性能并行珠玑:多核和众核编程方法
数据挖掘:概念与技术(原书第3版)
[美]Jiawei、[美]Micheling、[美]Jian Pei 著;范明、孟小峰 译
高性能并行珠玑:多核和众核编程方法
算法导论(原书第3版)
[美]Thomas、[美]Charles、[美]Ronald、[美]Clifford Stein 著;殷建平、徐云、王刚 译
高性能并行珠玑:多核和众核编程方法
数据结构与算法分析:Java语言描述
[美]马克·艾伦·维斯 著;陈越 译
高性能并行珠玑:多核和众核编程方法
C程序设计语言(第二版)
[美]Brian(布莱恩·克尼汉)、[美]Dennis M.Ritchie(丹尼斯·里奇) 著;徐宝文、李志 译
高性能并行珠玑:多核和众核编程方法
C程序设计语言(第2版·新版) 习题解答
吉米拜尔 著;杨涛 译;[美]汤朵
高性能并行珠玑:多核和众核编程方法
计算机科学丛书·云计算:概念、技术与架构
[美]Thomas、[英]Zaigham、[巴西]Ricardo Puttini 著;龚奕利、贺莲、胡创 译
高性能并行珠玑:多核和众核编程方法
数据库系统概念:(原书第6版)
[美]Abraham、Henry、S.Sudarshan 著;杨冬青、李红燕、唐世渭 译
高性能并行珠玑:多核和众核编程方法
深入理解计算机系统(原书第3版)
[美]兰德尔 E.布莱恩特(Randal E.·Bryant) 著;龚奕利、贺莲 译
高性能并行珠玑:多核和众核编程方法
编译原理:原理、技术与工具
[美]阿霍 著;赵建华 译
高性能并行珠玑:多核和众核编程方法
计算机科学导论:原书第3版
[美]Behrouz Forouzan 著;刘艺 译
高性能并行珠玑:多核和众核编程方法
软件工程:实践者的研究方法(原书第8版 本科教学版)
[美]罗杰 S. 普莱斯曼 著;郑人杰、马素霞 译
相关图书 / 更多
高性能并行珠玑:多核和众核编程方法
高性能架构——多级网关与多级缓存实践
李晨翔(@风间影月
高性能并行珠玑:多核和众核编程方法
高性能波束形成声源识别方法
褚志刚;杨洋
高性能并行珠玑:多核和众核编程方法
高性能银基电接触材料
林智杰
高性能并行珠玑:多核和众核编程方法
高性能储能器件电解质
作者
高性能并行珠玑:多核和众核编程方法
高性能精量排种理论与技术
王金武;唐汉
高性能并行珠玑:多核和众核编程方法
高性能路由器微体系结构设计
李存禄;董德尊
高性能并行珠玑:多核和众核编程方法
高性能Linux网络编程核心技术揭秘
朱文伟 李建英
高性能并行珠玑:多核和众核编程方法
高性能磷酸锰铁锂电池材料——制备、表征与应用
梁广川 主编;王丽 副主编;张克强
高性能并行珠玑:多核和众核编程方法
高性能铝钪合金(精)/有色金属理论与技术前沿丛书
潘清林;尹志民;聂东红;刘竝;邓英
高性能并行珠玑:多核和众核编程方法
高性能钛铝合金热处理工艺及应用
张可人 著
高性能并行珠玑:多核和众核编程方法
高性能并行运行时系统:设计与实现 [美]迈克尔·克莱姆
[美]迈克尔·克莱姆;[美]吉姆·考尼
高性能并行珠玑:多核和众核编程方法
高性能复合纤维材料混凝土结构设计与施工
江世永;周建庭;飞渭;李炳宏