搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
高性能并行运行时系统:设计与实现
0.00     定价 ¥ 109.00
浙江图书馆
  • ISBN:
    9787111739494
  • 作      者:
    [美]迈克尔·克莱姆(Michael,Klemm),[美]吉姆·考尼(Jim,Cownie)
  • 译      者:
    郝萌,张伟哲,等
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2023-12-01
收藏
畅销推荐
作者简介
  Michael Klemm,一位高性能计算专家,他主要研究高性能计算应用程序、并行编程、编译器和运行时实现的性能调整以及编程语言的设计。
  
  Jim Cownie,ACM杰出工程师,曾任Intel高级首席工程师。他曾是LLVM中Open MP运行时的组件所有者。他喜欢滑雪。
  
  郝萌,哈尔滨工业大学博士、讲师,中国计算机学会高性能计算专业委员会执行委员,多年从事高性能计算、异构计算、并行优化等方面的研究和教学。主持国家自然科学基金青年基金、CCF-华为胡杨林基金等项目4项,参与国家重点研发计划、国家自然科学基金重点等项目3项,在TPDS、JPDC等期刊和会议发表论文10余篇,出版高性能计算领域译著2部。
  
  张伟哲,国家人才,哈尔滨工业大学教授、博士生导师。中国计算机学会嵌入式系统专委常委,中国计算机学会高性能计算专委、系统软件专委委员,IEEE高级会员,ACM高级会员,CCF杰出会员。长期从事高性能计算、网络空间安全、云计算和嵌入式计算等领域研究,发表高水平期刊和会议论文300余篇,出版著作3部,担任云计算领域期刊IEEE Transactions on Cloud Computing稻Future Generation Computer Systems的编委,曾获得黑龙江省科学技术奖科技进步二等奖2项。多年来从事并行计算相关的教学工作,主讲的《并行计算》课程入选教育部产学合作协同育人项目优秀项目案例、教育部一华为智能基座产教融合协同育人基地优秀课件。荣获教育部一华为智能基座"栋梁之师"、华为云与计算"先锋教师"等称号。
  
  何慧,哈尔滨工业大学教授、博士生导师,教育部学位中心评审专家。研究方向包括网络与信息安全、大数据安全、舆情分析、迁移学习及边缘计算等。共承担国家网络信息安全工程重点项目、国家自然科学基金、国家重点研发计划、863重点等其他省部委项目20余项。获得黑龙江省科技进步二等奖,黑龙江省高校科学技术一等奖。在TCC、TKDE、《软件学报》、《计算机学报》等国内外刊物与会议发表论文100余篇,授权发明专利20项,软件著作权5项,出版专著2部。
展开
目录
译者序

前言
术语表
第1章 绪论
1.1 本书结构
1.2 探索设计空间
1.2.1 作为库的并行
1.2.2 作为语言的并行
1.3 代码示例
1.4 机器配置

第2章 并行编程模型与概念
2.1 多进程与多线程
2.1.1 线程基础
2.1.2 线程亲和性
2.1.3 基于线程编程的Open MP API
2.1.4 工作分享
2.1.5 0penMP线程亲和性
2.2 基于任务的并行编程
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.5 总结

第3章 众核与多核计算机架构
3.1 执行机制
3.1.1 冯·诺依曼架构与按序执行
3.1.2 按序流水线执行
3.1.3 乱序执行
3.1.4 分支预测
3.1.5 超标量执行
3.1.6 同步多线程
3.1.7 单指令多数据
3.2 现代内存子系统
3.2.1 内存层次结构
3.2.2 内存模型与内存一致性
3.2.3 缓存
3.2.4 缓存一致性:概述
3.2.5 缓存一致性:MESl协议
3.2.6 性能影响
3.2.7 非统一内存架构
3.3 总结

第4章 编译器和运行时的交互
4.1 编译器基础
4.2 基于任务的并行模型的实现
4.2.1 lambda函数和闭包
4.2.2 TBB中的排队任务
4.3 并行编程语言的编译器
4.4 并行代码生成模式
4.4.1 并行域的代码生成
4.4.2 线程并行循环的代码生成
4.4.3 SIMD并行循环的代码生成
4.4.4 串行构造的代码生成
4.4.5 静态任务的代码生成
4.4.6 动态任务的代码生成
4.5 0penMP实现示例
4.5.1 GNU编译器套件
4.5.2 Intel编译器和LLVM编译器
4.6 总结

第5章 并行运行时基本机制
5.1 管理并行性
5.1.1 生成并行性
5.1.2 等待
5.2 并行性管理与硬件结构
5.2.1 检测硬件结构
5.2.2 线程固定
5.3 并行运行时系统中的内存管理
5.3.1 内存效率及缓存使用
5.3.2 单线程内存分配器
5.3.3 多线程内存分配器
5.3.4 并行运行时系统的专用内存分配器
5.3.5 线程本地存储
5.3.6 线程对象的数据布局
5.4 总结

寮6章 互斥和原子性
6.1 互斥问题
6.1.1 锁的硬件支持:原子指令
6.1.2 ABA问题
6.2 我们应该写锁代码吗
6.3 锁的类别
6.4 锁算法的特性
6.5 锁算法
6.5.1 测试并设置锁
6.5.2 测试及测试并设置锁
6.5.3 票锁
6.5.4 排队锁
6.6 实际代码性能
6.6.1 无争用锁开销
6.6.2 争用锁的吞吐量
6.6.3 性能总结
6.7 如何等待
6.8 事务同步
6.8.1 事务语义
6.8.2 MESI协议中的实现
6.8.3 事务指令
6.8.4 事务锁
6.8.5 互斥和预测的比较
6.9 其他串行操作
6.9.1 master和masked构造
6.9.2 single构造
6.10 原子操作
6.10.1 原子指令映射
6.10.2 最小值和最大值的原子实现
6.11总结
6.11.1 锁总结
6.11.2 原子操作总结

第7章 同步障和归约
7.1 同步障基本原理
7.2 同步障性能测量
7.2.1 同步障微基准程序
7.2.2 同步障性能模型
7.3 同步障组件
7.3.1 计数器和标志
7.3.2 广播
7.4 同步障算法分类
7.5 同步障算法
7.5.1 计数同步障
7.5.2 多对多同步障
7.5.3 蝶形/超立方体同步障
7.5.4 传播型同步障
7.5.5 树形签入同步障
7.6 归约
7.7 其他优化
7.8 总结

第8章 调度并行循环
8.1 调度目标
8.2 调度效率的理论极限
8.3 基本调度万法
8.3.1 静态循环调度
8.3.2 动态循环调度
8.4 映射为规范形式
8.5 编译器循环转换
8.6 循环调度单调性
8.7 静态循环调度实现
8.7.1 分块式循环调度
8.7.2 块循环式循环调度
8.8 动态循环调度实现
8.8.1 指导式调度
8.8.2 monotonic: dynamic
8.8.3 nonmonotonic: dynamic
8.9 循环调度评估
8.10 其他循环调度方案
8.10.1 使用历史信息
8.10.2 用户控制调度
8.11 总结

第9章 任务并行模型的运行时支持
9.1 任务描述符
9.2 任务池实现
9.2.1 单任务池
9.2.2 多任务池
9.3 任务同步
9.3.1 等待任务子集完成
9.3.2 等待直接子任务完成
9.3.3 任务依赖
9.4 任务调度
9.4.1 任务调度点
9.4.2 广度优先调度和深度优先调度
9.4.3 任务窃取
9.5 任务调度约束
9.5.1 栈调度
9.5.2 循环调度
9.6 其他任务主题
9.6.1 任务优先级
9.6.2 任务亲和性
9.7 总结

第10章 总结和感想
附录 技术缩略语
参考文献
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用浙江图书馆的读者帐号和密码进行登录

点击获取验证码
登录