TBB之parallel_do
来源:互联网 发布:小苍男装淘宝店 编辑:程序博客网 时间:2024/05/13 12:28
对于一些循环,迭代空间的结束是未知的,或者循环体在循环结束之前可能增加更多的迭代,你能使用模板类tbb::parallel_do处理这2种情况。
链表是迭代空间未知的例子,在并行编程中,通常使用动态数组代替链表是更好的,因为访问链表的条目本质是串行的,但是如果你被限制使用链表,条目能被安全并行处理,处理每个条目花费至少几千个指令,你能使用parallel_do增加一些并行度。
例如,考虑下面的串行代码:
void SerialApplyFooToList( const std::list<Item>& list ) { for( std::list<Item>::const_iterator i=list.begin() i!=list.end();++i ) Foo(*i);}
如果Foo花费至少几千个指令周期运行,那么你能使用parallel_do来提速,为了这么做,你需要定义一个带const标识的operator()对象:
class ApplyFoo {public: void operator()( Item& item ) const { Foo(item); }};
SerialApplyFooToList的并行格式如下:
void ParallelApplyFooToList( const std::list<Item>& list ) { parallel_do( list.begin(), list.end(), ApplyFoo() );}
0 0
- TBB之parallel_do
- TBB基础之parallel_for
- TBB基础之parallel_for
- TBB基础之parallel_for
- TBB之parallel_for
- TBB之parallel_reduce
- TBB之pipeline
- TBB之concurrent_hash_map
- TBB之concurrent_vector
- TBB之Atomic
- TBB之Timing
- TBB之task
- TBB之Exceptions and Cancellation
- TBB基础之初始化&amp;终止
- tbb基础之parallel_for用法详解
- TBB基础之parallel_for求数组平均数
- tbb基础之parallel_reduce用法详解
- TBB基础之初始化&amp;终止
- Android 自定义控件:高仿微信、QQ侧滑删除、分享效果
- 抢红包神器免费VIP开发版本
- CentOS系统使用openvpn搭建vpn服务器图文教程
- PH10全彩 LED屏 64*16 点阵显示4个汉字调试心得
- 获取Android控件的宽和高
- TBB之parallel_do
- opencv(6)
- ios NSLog不打印设置
- 关于使用NLPIR-ICTCLAS分词系统
- 获取谷歌日历日程数据
- Python 模块学习:os模块
- Hadoop 安装异常处理
- Android按返回键退出程序但不销毁,程序后台运行,同QQ退出处理方式
- Hdu 1247 Hat’s Words