资讯
安全
论坛
下载
读书
程序开发
数据库
系统
网络
电子书
微信学院
站长学院
QQ
手机软件
考试
安全
|
web开发
|
软件开发
|
移动开发
|
数据库
|
网络
|
系统
|
网站
|
考试认证
|
其他
|
读书频道
>
网站
>
网页设计
>
Visual C++并行编程实战:多核架构下分工与协作的设计模式
并行循环
12-08-13
叶孤城
收藏
我要投稿
本文所属图书 >
Visual C++并行编程实战:多核架构下分工与协作的设计模式
这本书所介绍的并行模式库(Parallel Patterns Library,PPL)实际上是一个模式化的C++模版库,而且作为Visual Studio 2010开发系统的一部分,它已经完全被内置到了这一版本的C++语言中。这意味着你可以像使...
立即去当当网订购
并行循环模式一般适用于执行一些具有独立性的迭代操作,例如遍历某集合(collection)中的元素或者执行一些限定次数的迭代。但前提是这些操作是彼此独立的,即循环步骤中不存在对本地内存或磁盘文件的共同写操作。
在语法方面,并行循环与我们所熟悉的for和for_each并无多大的区别,只不过它们在多核环境中往往会完成得更快而已。此外,另一个不同于串行循环的是,并行循环的执行顺序是不确定的,这意味着在并行条件下各步骤的操作通常会同步进行,有时候,甚至两个步骤的操作顺序会与它们在串行循环中的情况完全相反。这里唯一能保证的是:当循环完成时其中所有的步骤都会被执行到。
我们可以轻而易举地将一个串行循环(sequential loop)改为并行循环(parallel loop)。但是,你可千万不能就此认为简单就不会出错。毕竟,判断循环步骤之间是否具有独立性是一件非常困难的事。这需要在具体的实践中不断地学习并总结经验。有时候,如果我们不幸在一个具有某种依赖关系的循环中误用了并行循环模式,很可能就会导致某些不可预测的行为,程序有可能会就此停止响应,有时甚至还会出现那种运行100万次才出现一次的诡异bug。总而言之,“独立性”是我们能否使用并行循环模式的关键,而这也是本章接下来要介绍的重点内容。
并行循环模式一般用于处理基于多组数据的独立性操作。同时,这也是数据并行化(data parallelism)技术的一个标准应用。
对于并行循环来说,决定它并行度的通常不是代码,而是运行时环境(run-time environment)。也就是说,它取决于运行时环境能同时调用多少内核来完成这些循环步骤。然而,无论我们有多少内核可用,循环都应该能够始终正确地运行。即使在单核处理器上,只要该循环的每次迭代操作所执行的工作量不是太小,它的性能就理应与相应的串行代码相差无几(也许只相差几个百分点);一旦有了多核处理器,性能就会立即得到改善。毕竟在多数情况下,性能与内核数之间还是会存在着一定的比例关系的
点击复制链接 与好友分享!
回本站首页
分享到:
更多
您对本文章有什么意见或着疑问吗?请到
论坛讨论
您的关注和建议是我们前行的参考和动力
上一篇:
1.3 功能
下一篇:
1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
112 |
2.6 总结
112 |
2.5 unordered container无序容器
112 |
2.4 emplace_back减少内存拷贝和移动
112 |
2.3 forward和完美转发
112 |
2.2 move语义
112 |
2.1.2 右值引用优化性能,避免深拷贝
112 |
2.1.1 &&的特性
112 |
2.1 右值引用
3.2.3 Bootstrap栅格系统
3.4.4 自适应显示/隐藏页面内容
3.3.1 固定式布局
2.1.1 下载Bootstrap
3.3.2 流式布局
3.4.6 响应式Bootstrap
3.4.2 设计响应式图片
3.2.4 响应式Bootstrap栅格系统
文章
下载
读书
·
Win2000下关闭无用端口
·
禁止非法用户登录综合设置 [win9x篇]
·
关上可恶的后门——消除NetBIOS隐患
·
网络入侵检测系统
·
潜伏在Windows默认设置中的陷井
·
调制解调器的不安全
·
构建Windows 2000服务器的安全防护林
·
SQL Server 2000的安全配置
·
Windows优化大师注册机源码
·
Aspcode动画教程
·
WIN 2000服务器防止ICMP数据包攻击教程
·
实现网络隐身的简单方法
·
手工进行克隆帐号
·
用W32DASM破解网页合并器的密码
·
注册表操作动画教程
·
冰河陷阱v1.2
·
黑客攻防技术宝典:Web实战篇(第2版)
·
超级网管员——网络安全
·
代码大全(第二版)
·
软件之道:软件开发争议问题剖析
·
CSS插件工具箱
·
CSS入门经典(第3版)
·
C#并行编程高级教程:精通.NET 4 Pa
·
CMMI+敏捷整合开发
关于我们
|
联系我们
|
广告服务
|
投资合作
|
版权申明
|
在线帮助
|
网站地图
|
作品发布
|
Vip技术培训
版权所有:
红黑联盟
--致力于做最好的IT技术学习网站