问题描述
1。如何将第一个函数转换为与任务并行工作试图做到这一点,但我不知道我是否在正确地工作,请有人帮助我,我将不胜感激
template<typename F>
void matrix_sweep(int width,int height,const F& f)
{
for (int i = 0; i < height; ++i)
{
for (int j = 0; j < width; ++j)
{
f(i,j);
}
}
}
template<typename F>
void parallel_matrix_sweep(int width,const F& f)
{
struct invoke : public tbb::task;
{
tbb::task* invoke::execute();
{
tbb::task* barrier = new (allocate_continuation())tbb::empty_task();
barrier->set_ref_count(1);
tbb::task_list tl;
tl.push_back(*new(barrier->allocate_child())run<F>(f));
spawn(tl);
}
invoke(const F& f) : f(f),{} const F& f;
};
}
tbb::tick_count t2 = tbb::tick_count::Now();
cout << data.back().back() << endl;
cout << "Time: " << (t2 - t1).seconds() << endl;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)