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

关于openmp的入门程序,大仙们帮忙啊该如何解决

2012-02-04 
关于openmp的入门程序,大仙们帮忙啊C/C++ codestatic long num_steps 10000double stepdouble pivoid

关于openmp的入门程序,大仙们帮忙啊

C/C++ code
static long num_steps = 10000;double step;double pi;void main(){    int i;    double x,sum = 0.0;        step = 1.0/(double) num_steps;#pragma omp parallel     {#pragma omp for  reduction(+:pi)        for (i=0;i<num_steps;i++)        {            x = (i+0.5)*step;            sum = sum + 4.0/(1.0 +x*x);        }        pi = step * sum;            }    cout <<pi<<endl;}

输出结果是2.48922。我想把pi设为 private(pi)这样会报错。我这个归约错在哪里?

[解决办法]
改成这样 #pragma omp for reduction(+:sum)

被归约的变量搞错了

热点排行