我已经在OpenMP中定义了这种减少:
std::vector<FindAffineShapeArgs> v;
#pragma omp declare reduction(mergeFindAffineShapeArgs : std::vector<FindAffineShapeArgs> : omp_out.insert(omp_out.end(), omp_in.begin(), omp_in.end()))
#pragma omp parallel for collapse(2) schedule(dynamic,1) reduction(mergeFindAffineShapeArgs : findAffineShapeArgs)
for(int i=0; i<n; i++){
v.push_back(//something);
}
简而言之,缩减操作会将v
的每个本地版本附加到全局版本。
我以前从未使用过TBB,但我已经阅读了this,this和this教程,但我甚至都不明白甚至可以在TBB中使用。
有人可以帮我这个吗?