TBB 学习笔记
#include <tbb/task_scheduler_init.h>
#include <tbb/blocked_range.h>
#include <tbb/parallel_for.h>
#include <iostream> class ApplyFoo
{ private:
float *const my_a;
public:
void operator()(const tbb::blocked_range<size_t>&r)const
{
float *a=my_a;
for(int i=r.begin();i!=r.end();++i)
{
printf("gevar = %f\n",a[i]);
}
}
ApplyFoo(float a[]):
my_a(a)
{
}
};
void parallelApplyFoo(float a[],size_t n)
{
tbb::parallel_for ( tbb::blocked_range<size_t> (,n),ApplyFoo(a) ,tbb::auto_partitioner());
}
int main()
{
//tbb::task_scheduler_init init;
float a[]={,,,,,,,,,};
parallelApplyFoo(a,);
return ;
}
修改简化版本:
#include <iostream>
#include <tbb/task_scheduler_init.h>
#include <tbb/blocked_range.h>
#include <tbb/parallel_for.h>
#include <vector> using namespace std;
using namespace tbb; #define THREAD_FUNCTION void operator()(const blocked_range<size_t> &r)const
#define THREAD_EXCUTED_FOR(N,CLASS)\
{\
parallel_for(blocked_range<size_t>(,N),CLASS,auto_partitioner());\
} class ApplyFoo
{
public:
ApplyFoo()
{
}
void setData(float *data)
{
my_a = data;
}
THREAD_FUNCTION
{
//cout << "going to thread\n";
float *a = my_a;
for(size_t i=r.begin();i!=r.end();++i)
{
//cout << "going to thread:"<<i<<endl;
a[i] = ;
}
}
private:
float * my_a;
}; int main() { long int size = ;
vector<float> b(size);
cout << "loop size " << b.size() << endl;
cout << "start threading\n";
ApplyFoo foo;
foo.setData(b.data());
THREAD_EXCUTED_FOR(size,foo);
cout << "thread executed end\n";
cout << b[] << endl;
return ;
}
TBB 学习笔记的更多相关文章
- ruby学习笔记(1)-puts,p,print的区别
ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
随机推荐
- SQL server 子查询、设置主键外键、变量及变量查询
一.子查询 子查询,又叫做嵌套查询. 将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询. 子查询有两种类型: 一种是只返回一个单值的子查询,这 ...
- Plugins
Plugins AdminLTE makes use of the following plugins. For documentation, updates or license informati ...
- Centos上Docker 使用dockerfile构建容器实现ssh
这几日在学习docker.遇到的问题数一年都数不完,网上大多数都是ubuntu的,百度或者谷歌的时候心好累.写写文档来帮助使用centos的docker爱好者们. docker基本操作这里就不介绍了 ...
- C++中嵌入Lua脚本环境搭建
第一步(环境准备工作): 工具: ●LuaForWindows_v5.1.4-46.exe傻瓜式安装. 作用:此工具可以在windows环境下编译运行Lua脚本程序.安装完成后会有两个图标:Lua和S ...
- html background 背景颜色美化 类似毛玻璃
制作高大上背景颜色 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Latex 页面样式
LATEX支持三种预定义的页眉/页脚(header/footer)样式,称为页面样式(pagestyle).如下命令: \pagestyle{style} 中的style参数确定了使用哪一种页面样式. ...
- Otsu algorithm
一.介绍 OTSU算法也称最大类间差法,有时也称之为大津算法,被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用.它是按图像的灰度特性,将 ...
- javaweb--HTTP状态码
HTTP状态码(HTTP Status Code) 一些常见的状态码为: 200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 所有状态解释:点击查看 1xx(临时响应 ...
- Math-基本功能
<script type="text/javascript"> /* *演示Math对象.该对象中的方法都是静态的.不需要new,直接Math调用即可 */ var n ...
- Ruby零星笔记
chomp:去掉字符串末尾的\n或\r chop:去掉字符串末尾的最后一个字符,不管是\n\r还是普通字符 to_s:转换成字符串 to_i:转换成数值 object.nil?:判断是否为空,空返回: ...