OpenMP数据依赖在哪里?

时间:2015-03-31 14:38:38

标签: c++ multithreading parallel-processing dependencies openmp

我有两个向量,其中一个已填充数据,必须将其分配给第一个向量。但是使用OpenMp parallel for pragma with tusing lock给我带来了正确的输出,有时甚至是wroing输出。但我不确定为什么(我是OpenMP新手),我怎么能:

#pragma omp parallel for shared(vec1,vec2) firstprivate(params)
for(int i=0;i<params.a;i++)
{
  int offset= i*params.b; // is omp private?
    for(int j=0;i<params.b;j++)
    { //if I use omp_locks here it works correctly
       vec1[j]+=vec2[offset+j];
    }
}

0 个答案:

没有答案