閱讀878 返回首頁    go 小米 go 小米6


OpenMP並行計算PI的值

用VS新建一個工程後,首先要右鍵項目,屬性--C/C++--語言,,在右邊的對話框中OpenMP支持選擇是;

程序代碼為:

#include<stdio.h>

#include<time.h>

#include<omp.h>

 

static long num_steps = 100000;

double step,pi;

void main()

{

    clock_t t1=clock();

    int i;

    double x,sum = 0.0;

    step = 1.0/(double)num_steps;

#pragma omp parallel for reduction(+:sum)

    for(i = 0;i<num_steps;i++)

    {

        x = (i+0.5)*step;

        sum = sum + 4.0/(1.0+x*x);

        printf("%d",omp_get_thread_num());

    }

    pi = step *sum;

    clock_t t2 =clock();

    printf("pi=%f,用時:%d\n",pi,t2-t1);

}

 上述代碼使用了規約rduction(op:list);這樣每個線程會有一個私有的list,當所有線程的list計算完成之後,每個線程的私有list值將被op規約為一個list值。

最後更新:2017-04-02 16:47:37

  上一篇:go Android創建和刪除桌麵快捷方式
  下一篇:go 《iPhone與iPad開發實戰—iOS經典應用剖析》連載八