读书人

使用OPENMP后这个结果不是小弟我想的

发布时间: 2012-03-06 20:47:55 作者: rapoo

使用OPENMP后,这个结果不是我想的
#include "iostream"
#include <omp.h>
#include <math.h>
using namespace std;
int main(int argc,char *argv[])
{
#pragma omp parallel
{
#pragma omp for
for( int i=0;i<10;i++)
{
printf("i=%d,ThreadID=%d,CPU=%d\n",i,omp_get_thread_num(),omp_get_num_procs());
}
}

printf("finished.\n");
return 0;
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
结果是
i=0,ThreadID=0,CPU=2
i=0,ThreadID=0,CPU=2
i=5,ThreadID=1,CPU=2
i=1,ThreadID=0,CPU=2
i=6,ThreadID=1,CPU=2
i=2,ThreadID=0,CPU=2
i=7,ThreadID=1,CPU=2
i=3,ThreadID=0,CPU=2
i=8,ThreadID=1,CPU=2
i=4,ThreadID=0,CPU=2
i=9,ThreadID=1,CPU=2
finished.
Press any key to continue

为什么i=0执行了2次?求解释

[解决办法]
#pragma omp parallel for private(i)试试

读书人网 >软件开发

热点推荐