关于OpenMP小程序测试结果的疑问
今天装上了intel C++ compiler 9.0编译器,并且编了个小的测试程序
#include <stdio.h>
#include "omp.h"
int main(int argc, char* argv[])
{
int i;
#pragma omp parallel for
for (i = 0; i < 10; i++ )
{
printf("i = %d\n", i);
}
return 0;
}
这个程序理想的打印结果应该是乱序的0到9数字,可我每次运行的时候,能输出正常的结果,但有时候又会出现重复输出两个数字的结果,比如
i = 0
i = 1
i = 2
i = 3
i = 3
i = 5
i = 4
i = 6
i = 7
i = 8
i = 9
Press any key to continue
i = 0
i = 0
i = 5
i = 6
i = 7
i = 1
i = 8
i = 2
i = 3
i = 9
i = 4
Press any key to continue
这是什么原因呢?