读书频道 > 网站 > 网页设计 > C#并行编程高级教程:精通.NET 4 Parallel Extension
1.6.4 尽量减少临界区
12-07-08    叶孤城
收藏    我要投稿   
本书旨在帮助有经验的C#开发人员能够利用.NET Framework 4中引入的Parallel Extensions,将现代微处理器中的多核处理能力转换为应用程序的性能。无论您是刚刚开始从老的多线程模型开始转换,还是已经有过一些...立即去当当网订购
Amdahl法则和Gustafson法则都意识到,串行工作是并行算法整体性能的敌人。在两个并行部分之间需要顺序执行的串行时间段称为临界区(critical section)。图1-16标出了用于分析Gustafson法则的一个示意图中的4个临界区。



 
 在对任务进行并行化时,为了获得最佳性能,最重要的目标之一是要最小化这些临界区。大部分情况下,都不可能在两个并行部分之间避免运行串行代码,因为总需要启动并行作业并收集结果。然而,对临界区的代码进行优化,并且移除不必要的临界区甚至比并行代码的正确调优还要重要。
 
当您面对一个具有太多临界区的执行计划的时候,请不要忘记Amdahl法则。如果不能减少这些临界区,那么可以尝试找到一些可以与临界区并行运行的任务。例如,可以在临界区运行的时候并行运行一个任务预取数据供下一段并行算法使用,这样可以增强这种方案的整体性能。重要的是要考虑现代多核硬件能够提供的能力,而不是仅仅考虑只有一个单独的执行单元的情况
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站