Il'*_*nin 3 c++ parallel-processing asynchronous stl tbb
我有一个函数需要使用不同的数据参数运行两次。此功能需要很长时间才能运行,并且会执行繁重的计算工作。
我如何做到这一点,使用哪种 TBB 机制?或者甚至不是TBB,如果我可以用STL做到这一点,请给我一个例子。
更新:
例如,我有一个函数,它将图像作为参数并对其进行一些处理:
int Compute(cv::Mat I)
{
/* computations */
return 0;
}
void callf(cv::Mat I1, cv::Mat I2)
{
// make call of this functions parallel
Compute(I1);
Compute(I2);
}
Run Code Online (Sandbox Code Playgroud)
您可以使用tbb::task_group或tbb::parallel_invoke结合 lambda 函数,如下所示:
void callf(cv::Mat I1, cv::Mat I2)
{
// make call of this functions parallel
tbb::parallel_invoke(
[&]{ Compute(I1); },
[&]{ Compute(I2); }
);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
426 次 |
| 最近记录: |