新書推薦:
《
养育不好惹的小孩
》
售價:NT$
352.0
《
加加美高浩的手部绘画技法 II
》
售價:NT$
407.0
《
卡特里娜(“同一颗星球”丛书)
》
售價:NT$
398.0
《
伟大民族:从路易十五到拿破仑的法国史(方尖碑)
》
售價:NT$
857.0
《
古今“书画同源”论辨——中国书法与中国绘画的关系问题兼中国画笔墨研究
》
售價:NT$
602.0
《
《日本文学史序说》讲演录
》
售價:NT$
332.0
《
无尽的海洋:美国海事探险与大众文化(1815—1860)
》
售價:NT$
454.0
《
治盗之道:清代盗律的古今之辨
》
售價:NT$
556.0
|
內容簡介: |
在当前多核体系结构中,习惯于编写所有程序员熟悉的那种串行化代码显然已无法满足用户的性能需求,并行编程将是提升系统性能的最简单、最直接的途径。
并行编程一直被认为只有专家才能涉足的领域,同时也经常被视为一个雷区,其中隐藏着各种难以重现的、诡异的软件缺陷。幸运的是,并行模式库PPL和异步代理库的出现将我们引入了一种全新的并行编程模型,这大大地简化了编写并行程序的工作。当然,这一切要归功于一系列精致而复杂的算法,它们能够很好地适应多核体系结构中的动态分布式计算。
通过学习《Visual
C++并行编程实战多核构架下分工与协作的设计模式》作者坎贝尔、米勒介绍的设计模式,读者可以极大地改善应用程序在多核计算机上的性能。《Visual
C++并行编程实战多核构架下分工与协作的设计模式》介绍的这些模式不仅适用于现阶段的硬件环境,同时也方便日后扩展使用。
随着计算机并行架构的不断提升,应用程序的表现也会越来越好。
|
目錄:
|
译者序
推荐序一
推荐序二
前言
致谢
第1章 引言
1.1 潜在并行化的重要意义
1.2 分解、协调、可扩展性共享
1.2.1 理解任务
1.2.2 协调任务
1.2.3 可扩展性数据共享
1.2.4 设计方法
1.3 选择正确的设计模式
1.4 关于术语
1.5 并行的局限
1.6 一些建议
1.7 练习题
1.8 更多资源
第2章 并行循环
2.1 基本用法
2.1.1 并行版的for循环
2.1.2 parallel_for_each
2.1.3 期望为何
2.2 实例示范
2.2.1 串行版的Credit Review
2.2.2 parallel_for_each版的Credit Review
2.2.3 性能对比
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 相关模式
2.6 练习题
2.7 补充阅读
第3章 并行任务
3.1 基本用法
3.2 实例示范
3.3 模式变体
3.3.1 基于协同性阻塞的任务协调
3.3.2 取消一个任务组
3.3.3 异常处理
3.3.4 预测性执行
3.4 反面模式
3.4.1 闭包中的变量捕获
3.4.2 计划外的取消状态传递
3.4.3 同步化成本
3.5 设计注意事项
3.5.1 任务组调用约定
3.5.2 任务与线程
3.5.3 如何调度任务
3.5.4 结构化任务组及任务处理
3.5.5 轻量级任务
3.6 练习题
3.7 补充阅读
第4章 并行聚合
4.1 基本用法
4.2 实例示范
4.3 模式变体
4.3.1 基于小型循环体的考虑
4.3.2 Combinable对象的其他用处
4.4 设计注意事项
4.5 相关模式
4.6 练习题
4.7 补充阅读
第5章 Future
5.1 基本用法
5.2 实例示范:Adatum金融仪表盘
5.2.1 业务对象
5.2.2 分析引擎
5.3 模式变体
5.3.1 取消Future对象
5.3.2 消除瓶颈
5.3.3 在运行时修改任务图
5.4 设计注意事项
5.4.1 分解到future对象中去
5.4.2 函数式风格
5.5 相关模式
5.5.1 管道模式
5.5.2 MasterWorker模式
5.5.3 动态任务并行化模式
5.5.4 离散事件模式
5.6 练习题
第6章 动态任务并行化
6.1 基本用法
6.2 实例示范
6.3 模式变体
6.3.1 非空while循环体的并行化
6.3.2 在挂起等待环境中添加任务
6.4 练习题
6.5 补充阅读
第7章 管道
7.1 消息块类型概述
7.2 基本用法
7.3 实例示范
7.3.1 串行化的图形处理
7.3.2 图形管道
7.3.3 性能特征
7.4 模式变体
7.4.1 异步管道
7.4.2 管道中的取消操作
7.4.3 管道中的异常处理
7.4.4 多生产者作用下的负载平衡
7.4.5 管道与流的关系
7.5 反面模式
7.5.1 在管道各阶段之间进行大量的数据拷贝
7.5.2 管道阶段中的工作量过小
7.5.3 在消息传递时忘记使用隔离技术
7.5.4 无限期的等待
7.5.5 无限制的队列增长
7.5.6 更多信息
7.6 设计注意事项
7.7 关联模式
7.8 练习题
7.9 补充阅读
附录A 任务调度器与资源管理器
附录B 并行应用程序的调试与分析
附录C 技术总览
术语表
|
|