Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.58 KB | None | 0 0
  1. void lab4(int k)
  2. {
  3. int num_threads=k;
  4.  static long num_steps=100000000;
  5.  double sum,pi,x,step;
  6. float start=omp_get_wtime();
  7. omp_set_num_threads(num_threads);
  8. pi=0.0;
  9.  #pragma omp parallel
  10. {
  11.  
  12.  int i;
  13. int tid;
  14. tid=omp_get_thread_num();
  15. double x;
  16.  double sum=0.0;
  17.  step=1.0/(double)num_steps;
  18.    for(i=tid;i<num_steps;i=i+num_threads)
  19.     {
  20.      x=(i+0.5)*step;
  21.      sum=sum+4.0/(1+x*x);
  22.     }
  23.  
  24. #pragma omp critical
  25. {
  26.  pi=pi+sum*step;
  27. }
  28. }
  29. float end=omp_get_wtime();
  30.         float secs=end-start;
  31.         printf("pi=%f time=%f threads=%d\n",pi,secs,num_threads);
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement