Mat*_*Mav 0 parallel-processing for-loop openmp
我有简单的程序:
int index;
unsigned int count = 0;
#pragma omp parallel for
for (index = 0; index < 10000; index++)
{
count++;
}
Run Code Online (Sandbox Code Playgroud)
问题是我认为count应该等于10000.但是它通常在5000左右.大约10%它等于10000.
这里发生了什么?
小智 5
正如评论中所建议的那样,您需要减少指令:
int index;
unsigned int count = 0;
#pragma omp parallel for reduction(+:count)
for (index = 0; index < 10000; index++)
{
count++;
}
Run Code Online (Sandbox Code Playgroud)