Guest User

Untitled

a guest
Dec 16th, 2017
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. #include <omp.h>
  2. #include <assert.h>
  3. #include <stdio.h>
  4.  
  5. void sum(){
  6. int x,y;
  7. x = y = 10000;
  8. int** A = new int*[x];
  9. for(int i = 0; i < x; ++i)
  10. A[i] = new int[y];
  11.  
  12. for(int i = 0; i < x; i++){
  13. for(int j = 0; j < y; j++){
  14. A[i][j] = 1;
  15. }
  16. }
  17. long long suma = 0;
  18. double start,stop;
  19. start = omp_get_wtime();
  20. #pragma omp parallel
  21. {
  22. int j, sumal;
  23. #pragma omp for
  24. for(int i = 0; i < x; i++){
  25. for(j = 0; j < y; j++){
  26. sumal += A[i][j];
  27. }
  28. }
  29. #pragma omp atomic
  30. suma += sumal;
  31. }
  32. stop = omp_get_wtime();
  33. assert(suma==100000000ll);
  34. printf("Elapsed time: %lf", stop - start);
  35.  
  36. for(int i = 0; i < x; ++i)
  37. delete [] A[i];
  38. delete [] A;
  39. }
  40.  
  41. int main(){
  42. sum();
  43. return 0;
  44. }
Add Comment
Please, Sign In to add comment