Facebook
From Beige Rhinoceros, 2 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 214
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3. #include<omp.h>
  4. #include <time.h>
  5.      
  6.  
  7.  
  8. float func(float x) {
  9.     return 1/(1+x*x);;
  10. }
  11. void Calka(int a, int b, int liczba_prostokatow, int liczba_watkow)
  12. {
  13. int i;
  14.      clock_t start , end;
  15.      double cpu_time_used;
  16.      start = clock();
  17.  
  18.    float  dx, calka, calkaTemp;
  19.     dx = (b-a)/(float)liczba_prostokatow;
  20.     calka = 0;
  21.  omp_set_num_threads(liczba_watkow);
  22. #pragma omp parallel private(calkaTemp)
  23. {
  24.     #pragma omp for
  25.         for (i=1; i<=liczba_prostokatow; i++) {
  26.         calkaTemp += func(a + i * dx);
  27.  
  28.     }
  29.  
  30.     #pragma omp critical
  31.     calka += calkaTemp;
  32.  }
  33.  
  34.         calka *= dx;
  35.  
  36. end = clock();
  37.      cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
  38.      printf("Wynik: %f   Czas: %fn", calka, cpu_time_used ) ;
  39.  
  40. }
  41.  
  42. int main()
  43. {
  44.  
  45.     int a ,b , n;
  46.     printf("Podaj an") ;
  47.     scanf("%d", &a);
  48.     printf("Podaj bn") ;
  49.     scanf("%d", &b);
  50.      printf("Podaj liczbe prostokatown") ;
  51.     scanf("%d", &n);
  52.  
  53. Calka(a, b, n, 1);
  54.  
  55.  
  56. Calka(a, b, n, 2);
  57. Calka(a, b, n, 4);
  58.  
  59.  
  60. }