首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

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

2012-03-06 
使用OPENMP后,这个结果不是我想的#include iostream#include omp.h#include math.husing namespace

使用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)试试

热点排行