🔔
资源失效请点击失效反馈,本平台所有资源均免费提供,无任何盈利性质!

设计模式:.NET并行编程_NET教程

资源名称:设计模式:.NET并行编程 内容简介: 《设计模式:.NET并行编程》结合大量的项目实践,介绍了与并行编程相关的概念、方法和应用。《设计模式:.NET并行编程》共7章:第1章主要介绍并行编程的基本概念与并行计算的基础理论,第2章主要介绍并行循环的知识,第3章介绍并行任务处理,第4章阐述并行合并计算的机理,第5章介绍future模式,第6章在前文的基础上深入探讨动态并行任务机制,第7章介绍并行编程的流水线机制。 《设计模式:.NET并行编程》适用于在.NET Framework上编写托管代码的程序员,包括在Visual C#、Visual Basic以及Visual F#上编写代码的程序员。《设计模式:.NET并行编程》不假定读者具有并行编程技术的预备知识。不过,读者需要熟悉C#的特征,如委托、lambda表达式、泛型以及语言集成查询(LINQ)表达式等。读者还至少应该对进程和线程的概念有基本的了解。 编辑推荐:CPU计量器体现了一些问题。例如,某个内核的使用率为100%,而其他内核都是空闲的。或者你的应用程序是计算密集型的(即要占用大量CPU资源),但你只使用了多核系统的一部分计算能力。如何解决这些问题呢?简而言之,答案就是并行编程。像所有程序员一样,你可能熟谙编写顺序代码之道,但你会发现现在它不再满足你的性能要求了。要想有效地使用系统的CPU资源,必须把应用程序分割成块,这样应用程序就可以在同一时间运行。这说起来容易做起来难。并行编程被誉为专家领域,它难以重现软件缺陷。每个程序员似乎都有一些关于并行编程的趣事,可能由于某个神秘的错误,程序并没有像预期那样运行。在你编写并行程序时,这些故事应该能帮助你正视面临的问题和困难。幸运的是,微软给大家带来了帮助。.NETFramework4引入了一种新的编程模型,大大简化了并行工作。其后台是复杂算法的支持库,在多核架构中动态分配计算。此外,VisualStudi02010开发系统还包含调试和分析工具,以支持新的并行编程模型。而另一个帮助来源则是成熟的设计模式。本书借助任务并行库(TPL)和并行语言集成查询(PLINQ),介绍了最重要和最常用的并行编程模型,并给出了这些模型的可执行代码示例。 资源目录: 第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 并行foreach循环2.1.3 并行linq(plinq)2.1.4 预期2.2 示例2.2.1 信贷审查的顺序版本示例2.2.2 使用parallel.foreach的信贷审查示例2.2.3 plinq信贷审查示例2.2.4 性能比较2.3 变化形式2.3.1 尽早中断循环2.3.2 外部循环取消2.3.3 异常处理2.3.4 小循环体的特殊处理2.3.5 控制并行度2.3.6 在循环体中使用局部任务状态2.3.7 对并行循环使用自定义的任务调度程序2.4 反模式2.4.1 步长不为一2.4.2 隐藏的循环体依赖2.4.3 少量迭代的小循环体2.4.4 处理器的超额申请和申请不足2.4.5 混合parallel类和plinq2.4.6 输入枚举中的重复2.5 设计说明2.5.1 自适应分区2.5.2 自适应并发2.5.3 支持嵌套循环和服务器应用程序2.6 相关模式2.7 练习2.8 扩展阅读 第3章 并行任务3.1 基础知识3.2 示例3.3 变化形式3.3.1 取消任务3.3.2 处理异常3.3.3 等待第一个任务完成3.3.4 推测执行3.3.5 使用自定义的调度方式创建任务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.6.1 线程池3.6.2 分散管理的调度技术3.6.3 workstealing策略3.6.4 全局队列中的顶层任务3.6.5 局部队列中的子任务3.6.6 子任务的内联执行3.6.7 线程注入3.6.8 绕过线程池3.7 练习3.8 扩展阅读 第4章 并行合并计算4.1 基础知识4.2 示例4.3 变化形式4.3.1 使用并行循环进行合并计算4.3.2 使用范围分割器进行合并计算4.3.3 使用带有范围选择的plinq合并计算4.4 设计说明4.5 相关的模式4.6 练习4.7 扩展阅读 第5章 future模式5.1 基础知识5.1.1 future5.1.2 延续任务5.2 示例:adatum金融仪表板5.2.1 业务对象5.2.2 分析引擎5.2.3 视图和视图模型5.3 变化形式5.3.1 取消future和延续任务5.3.2 拥有多个先行任务的情况5.3.3 使用.net异步调用和future5.3.4 消除瓶颈5.3.5 运行时修改图5.4 设计说明5.4.1 分解成future和延续任务5.4.2 函数式风格5.5 相关的模式5.5.1 流水线模式5.5.2 主/从(master/worker)模式5.5.3 动态任务并行模式5.5.4 离散事件模式5.6 练习5.7 扩展阅读 第6章 动态任务并行6.1 基础6.2 示例6.3 变化形式6.3.1 while-not-empty并行6.3.2 任务链与父子任务6.4 设计说明6.5 练习6.6 扩展阅读 第7章 流水线7.1 基础7.2 示例7.2.1 顺序图像处理7.2.2 图像流水线7.2.3 运行特性7.3 变化形式7.3.1 取消流水线7.3.2 处理流水线异常7.3.3 利用多个生产者实现负载平衡7.3.4 流水线和流7.3.5 异步流水线7.4 反模式7.4.1 线程饥饿7.4.2 阻塞集合无穷等待7.4.3 忘记getconsumingenumerable()方法7.4.4 采用其他生产者/消费者集合7.5 设计说明7.6 相关模式7.7 练习7.8 扩展阅读附录a 改写面向对象模式附录b 调试和分析并行应用程序附录c 技术概览术语表参考文献 资源截图:

浏览次数: 35
下载次数: 0
资源类型: 百度云
溯源渠道: 陌佑
资源描述:

资源名称:设计模式:.NET并行编程 内容简介: 《设计模式:.NET并行编程》结合大量的项目实践,介绍了与并行编程相关的概念、方法和应用。《设计模式:.NET并行编程》共7章:第1章主要介绍并行编程的基本概念与并行计算的基础理论,第2章主要介绍并行循环的知识,第3章介绍并行任务处理,第4章阐述并行合并计算的机理,第5章介绍future模式,第6章在前文的基础上深入探讨动态并行任务机制,第7章介绍并行编程的流水线机制。 《设计模式:.NET并行编程》适用于在.NET Framework上编写托管代码的程序员,包括在Visual C#、Visual Basic以及Visual F#上编写代码的程序员。《设计模式:.NET并行编程》不假定读者具有并行编程技术的预备知识。不过,读者需要熟悉C#的特征,如委托、lambda表达式、泛型以及语言集成查询(LINQ)表达式等。读者还至少应该对进程和线程的概念有基本的了解。 编辑推荐:CPU计量器体现了一些问题。例如,某个内核的使用率为100%,而其他内核都是空闲的。或者你的应用程序是计算密集型的(即要占用大量CPU资源),但你只使用了多核系统的一部分计算能力。如何解决这些问题呢?简而言之,答案就是并行编程。像所有程序员一样,你可能熟谙编写顺序代码之道,但你会发现现在它不再满足你的性能要求了。要想有效地使用系统的CPU资源,必须把应用程序分割成块,这样应用程序就可以在同一时间运行。这说起来容易做起来难。并行编程被誉为专家领域,它难以重现软件缺陷。每个程序员似乎都有一些关于并行编程的趣事,可能由于某个神秘的错误,程序并没有像预期那样运行。在你编写并行程序时,这些故事应该能帮助你正视面临的问题和困难。幸运的是,微软给大家带来了帮助。.NETFramework4引入了一种新的编程模型,大大简化了并行工作。其后台是复杂算法的支持库,在多核架构中动态分配计算。此外,VisualStudi02010开发系统还包含调试和分析工具,以支持新的并行编程模型。而另一个帮助来源则是成熟的设计模式。本书借助任务并行库(TPL)和并行语言集成查询(PLINQ),介绍了最重要和最常用的并行编程模型,并给出了这些模型的可执行代码示例。 资源目录: 第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 并行foreach循环2.1.3 并行linq(plinq)2.1.4 预期2.2 示例2.2.1 信贷审查的顺序版本示例2.2.2 使用parallel.foreach的信贷审查示例2.2.3 plinq信贷审查示例2.2.4 性能比较2.3 变化形式2.3.1 尽早中断循环2.3.2 外部循环取消2.3.3 异常处理2.3.4 小循环体的特殊处理2.3.5 控制并行度2.3.6 在循环体中使用局部任务状态2.3.7 对并行循环使用自定义的任务调度程序2.4 反模式2.4.1 步长不为一2.4.2 隐藏的循环体依赖2.4.3 少量迭代的小循环体2.4.4 处理器的超额申请和申请不足2.4.5 混合parallel类和plinq2.4.6 输入枚举中的重复2.5 设计说明2.5.1 自适应分区2.5.2 自适应并发2.5.3 支持嵌套循环和服务器应用程序2.6 相关模式2.7 练习2.8 扩展阅读 第3章 并行任务3.1 基础知识3.2 示例3.3 变化形式3.3.1 取消任务3.3.2 处理异常3.3.3 等待第一个任务完成3.3.4 推测执行3.3.5 使用自定义的调度方式创建任务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.6.1 线程池3.6.2 分散管理的调度技术3.6.3 workstealing策略3.6.4 全局队列中的顶层任务3.6.5 局部队列中的子任务3.6.6 子任务的内联执行3.6.7 线程注入3.6.8 绕过线程池3.7 练习3.8 扩展阅读 第4章 并行合并计算4.1 基础知识4.2 示例4.3 变化形式4.3.1 使用并行循环进行合并计算4.3.2 使用范围分割器进行合并计算4.3.3 使用带有范围选择的plinq合并计算4.4 设计说明4.5 相关的模式4.6 练习4.7 扩展阅读 第5章 future模式5.1 基础知识5.1.1 future5.1.2 延续任务5.2 示例:adatum金融仪表板5.2.1 业务对象5.2.2 分析引擎5.2.3 视图和视图模型5.3 变化形式5.3.1 取消future和延续任务5.3.2 拥有多个先行任务的情况5.3.3 使用.net异步调用和future5.3.4 消除瓶颈5.3.5 运行时修改图5.4 设计说明5.4.1 分解成future和延续任务5.4.2 函数式风格5.5 相关的模式5.5.1 流水线模式5.5.2 主/从(master/worker)模式5.5.3 动态任务并行模式5.5.4 离散事件模式5.6 练习5.7 扩展阅读 第6章 动态任务并行6.1 基础6.2 示例6.3 变化形式6.3.1 while-not-empty并行6.3.2 任务链与父子任务6.4 设计说明6.5 练习6.6 扩展阅读 第7章 流水线7.1 基础7.2 示例7.2.1 顺序图像处理7.2.2 图像流水线7.2.3 运行特性7.3 变化形式7.3.1 取消流水线7.3.2 处理流水线异常7.3.3 利用多个生产者实现负载平衡7.3.4 流水线和流7.3.5 异步流水线7.4 反模式7.4.1 线程饥饿7.4.2 阻塞集合无穷等待7.4.3 忘记getconsumingenumerable()方法7.4.4 采用其他生产者/消费者集合7.5 设计说明7.6 相关模式7.7 练习7.8 扩展阅读附录a 改写面向对象模式附录b 调试和分析并行应用程序附录c 技术概览术语表参考文献 资源截图:

更新时间: 一年前
资源地址:
百度云
  • 点击获取
  • 分享

历史检测记录