如何解决转换第一个函数以并行处理任务
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 举报,一经查实,本站将立刻删除。