【发布时间】:2015-09-03 12:34:43
【问题描述】:
我有以下需要正确并行化的 c++ 代码。
vector<vector<int> > particle_list(ncell,vector<int> (0, 0));
#pragma omp parallel num_thread(24)
{
vector<vector<int> > particle_part(ncell,vector<int> (0, 0));
int icell;
#pragma omp num_thread(24) for
for (int i=0; i<ntotal; i++)
{
icell=cellno[i];
particle_part[icell].push_back(i) ;
}
***#pragma omp master
particle_list[ncell].insert(particle_list[ncell].end(),...
particle_part[ncell].begin(), particle_part[ncell].end());***
}
*** 中包含的代码是我不确定的。我想做的是如下。 我有一个私有变量particle_part(一个二维向量),它由每个线程(在它自己的副本中)并行填充。工作完成后,我希望将“particle_part”的每个副本中的内容组合成一个单一的particle_list 变量。
【问题讨论】:
标签: c++ multithreading algorithm parallel-processing openmp