Advertisement
neron476

парюпрог.сигма_1

Oct 16th, 2014
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <omp.h>
  3. #include <stdlib.h>
  4. #define n 1024*1024*500
  5.  
  6. double funk (double a)
  7. {
  8. double res = (a/n + 1.0/(2.0*n))*(a/n + 1.0/(2.0*n))/n ;
  9. return res;
  10. }
  11.  
  12. void main()
  13. {
  14. double mas[100];
  15. double res = 0;
  16. #pragma omp parallel
  17. {
  18. int id = omp_get_thread_num();
  19. int num = omp_get_num_threads();
  20. int part = n / num;
  21. #pragma omp parallel for
  22. for( int i = id*part; i < (id+1)*part; ++i)
  23. {
  24. mas[id] += funk(i);
  25. }
  26. }
  27. for (int i = 0; i< 100; i++)
  28. {
  29. res += mas[i];
  30. }
  31. /*for (int i = 0; i < n; i++)
  32. {
  33. res += funk(i);
  34. }*/
  35. printf("%f\n", res);
  36.  
  37. }
  38. ///////////////////////////////////////////
  39.  
  40. #pragma omp parallel reduction (+ : thing)
  41. {
  42.  
  43. #pragma omp for
  44. for( int i = 0; i < n; ++i)
  45. {
  46. thing += funk(i);
  47. }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement