Parallel processing OpenMP,用于在数组中比较值的简单循环+;柜台

Parallel processing OpenMP,用于在数组中比较值的简单循环+;柜台,parallel-processing,openmp,Parallel Processing,Openmp,所以,我有这段代码,我现在真的不知道为什么它不能正常工作 #pragma omp parallel for for (i = 0; i < N; i++) { if (visible[i] > visible[i-1]) counter++; } 返回正确的值,但时间大约为90毫秒。有什么建议吗?我不确定它最终会导致任何加速,但你需要声明减少(+:counter)以使你的代码在没有原子指令的情况下有效。我实际上重新设计了我的算法,但还是要感谢:) #pragma omp

所以,我有这段代码,我现在真的不知道为什么它不能正常工作

#pragma omp parallel for 
for (i = 0; i < N; i++)
{
    if (visible[i] > visible[i-1]) counter++;
}

返回正确的值,但时间大约为90毫秒。有什么建议吗?

我不确定它最终会导致任何加速,但你需要声明
减少(+:counter)
以使你的代码在没有
原子指令的情况下有效。我实际上重新设计了我的算法,但还是要感谢:)
#pragma omp atomic
counter++;