logo
分类于: 其它 编程语言

简介

Visual C++并行编程实战

Visual C++并行编程实战 0.0分

资源最后更新于 2020-11-20 02:30:55

作者:9787111388067

译者:凌杰

出版社:机械工业出版社

出版日期:2012-01

ISBN:9787111388067

文件格式: pdf

标签: C++ 并行编程 并行编程 设计模式 程序设计 VC++ 进阶 软件开发 设计模式

简介· · · · · ·

本书通过基于Microsoft Visual C++系统开发的并行模式库(PPL)和异步代理库的代码示例,系统阐述了在并行编程领域流行的6大模式,为并行领域的项目开发提供一套优秀的解决方案架构。本书倾向于设计思维,强调实践,引导读者更多地从设计的角度进入并行编程领域,而把并行中的细节问题交给可靠的设计模式和程序库。书中提供了大量极具启发性的、可供扩展的C++代码。本书是进入并行编程领域的最佳选择之一。

本书共7章。第1章阐释了开发者在开发并行程序时所面临的问题,并由此引出本书的主要内容。第2~3章从仅依靠控制流来完成相关操作方面介绍了并行循环和并行任务。第4~5章从在控制流和数据流的共同协作下完成并行化操作方面介绍了并行聚合和待定计算。第6~7章从更高阶的应用方面介绍了动态任务并行化和管道问题。同时本书还提供了更多关于并行应用的知识,包括任务调度器与...

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

目录回到顶部↑《visual c++并行编程实战》
译者序
推荐序一
推荐序二
前言 1
致谢 7
第1章 引言 9
1.1 潜在并行化的重要意义 10
1.2 分解、协调、可扩展性共享 11
1.2.1 理解任务 12
1.2.2 协调任务 13
1.2.3 可扩展性数据共享 13
1.2.4 设计方法 14
1.3 选择正确的设计模式 15
1.4 关于术语 16
1.5 并行的局限 16
1.6 一些建议 18
1.7 练习题 19
1.8 更多资源 19
第2章 并行循环 21
.2.1 基本用法 22
2.1.1 并行版的for循环 22
2.1.2 parallel_for_each 23
2.1.3 期望为何 24
2.2 实例示范 26
2.2.1 串行版的credit review 26
2.2.2 parallel_for_each版的credit review 27
2.2.3 性能对比 27
2.3 模式变体 28
2.3.1 提前退出循环 28
2.3.2 异常处理 29
2.3.3 小型循环体的特殊处理 29
2.3.4 并行度控制 30
2.4 反面模式 31
2.4.1 隐性循环体依赖 31
2.4.2 少量迭代的小循环体 31
2.4.3 重复输入性枚举 32
2.4.4 基于协同性阻塞的交叉调度 32
2.5 相关模式 32
2.6 练习题 32
2.7 补充阅读 33
第3章 并行任务 35
3.1 基本用法 36
3.2 实例示范 38
3.3 模式变体 39
3.3.1 基于协同性阻塞的任务协调 40
3.3.2 取消一个任务组 42
3.3.3 异常处理 44
3.3.4 预测性执行 44
3.4 反面模式 46
3.4.1 闭包中的变量捕获 46
3.4.2 计划外的取消状态传递 47
3.4.3 同步化成本 48
3.5 设计注意事项 48
3.5.1 任务组调用约定 48
3.5.2 任务与线程 48
3.5.3 如何调度任务 49
3.5.4 结构化任务组及任务处理 49
3.5.5 轻量级任务 50
3.6 练习题 50
3.7 补充阅读 50
第4章 并行聚合 53
4.1 基本用法 54
4.2 实例示范 57
4.3 模式变体 63
4.3.1 基于小型循环体的考虑 63
4.3.2 combinable对象的其他用处 63
4.4 设计注意事项 63
4.5 相关模式 65
4.6 练习题 65
4.7 补充阅读 66
第5章 future 69
5.1 基本用法 71
5.2 实例示范:adatum金融仪表盘 73
5.2.1 业务对象 74
5.2.2 分析引擎 75
5.3 模式变体 78
5.3.1 取消future对象 78
5.3.2 消除瓶颈 78
5.3.3 在运行时修改任务图 79
5.4 设计注意事项 79
5.4.1 分解到future对象中去 79
5.4.2 函数式风格 79
5.5 相关模式 80
5.5.1 管道模式 80
5.5.2 master/worker模式 80
5.5.3 动态任务并行化模式 80
5.5.4 离散事件模式 80
5.6 练习题 81
第6章 动态任务并行化 83
6.1 基本用法 83
6.2 实例示范 84
6.3 模式变体 87
6.3.1 非空while循环体的并行化 87
6.3.2 在挂起等待环境中添加任务 89
6.4 练习题 90
6.5 补充阅读 90
第7章 管道 93
7.1 消息块类型概述 94
7.2 基本用法 94
7.3 实例示范 101
7.3.1 串行化的图形处理 101
7.3.2 图形管道 102
7.3.3 性能特征 104
7.4 模式变体 106
7.4.1 异步管道 106
7.4.2 管道中的取消操作 109
7.4.3 管道中的异常处理 110
7.4.4 多生产者作用下的负载平衡 111
7.4.5 管道与流的关系 114
7.5 反面模式 114
7.5.1 在管道各阶段之间进行大量的数据拷贝 114
7.5.2 管道阶段中的工作量过小 114
7.5.3 在消息传递时忘记使用隔离技术 114
7.5.4 无限期的等待 114
7.5.5 无限制的队列增长 115
7.5.6 更多信息 115
7.6 设计注意事项 115
7.7 关联模式 116
7.8 练习题 116
7.9 补充阅读 116
附录a 任务调度器与资源管理器 117
附录b 并行应用程序的调试与分析 139
附录c 技术总览 153
术语表 157