Advertisement
Guest User

Untitled

a guest
Jan 21st, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2.     #include <stdlib.h>
  3.     #include <time.h>
  4.     #include <omp.h>
  5.      
  6.     using namespace std;
  7.      
  8.     int main(int argc, char* argv[])
  9.     {
  10.       int brNiti = atoi(argv[1]), i, j, k, dimenzijaMat = 2000;
  11.       cout << "Broj postavljenih niti: " << brNiti << endl;
  12.       double** matrica1 = new double*[dimenzijaMat];
  13.       double** matrica2 = new double*[dimenzijaMat];
  14.       double** matrica3 = new double*[dimenzijaMat];
  15.    
  16.       for(i = 0; i < dimenzijaMat; i++)
  17.       {
  18.         matrica1[i] = new double[dimenzijaMat];
  19.         matrica2[i] = new double[dimenzijaMat];
  20.         matrica3[i] = new double[dimenzijaMat];
  21.       }
  22.    
  23.         for (i = 0; i < dimenzijaMat; i++)
  24.             for (j = 0; j < dimenzijaMat; j++)
  25.             {
  26.                 matrica1[i][j] = 10;
  27.                 matrica2[i][j] = 10;
  28.                 matrica3[i][j] = 0;
  29.             }
  30.      
  31.       omp_set_num_threads(brNiti);
  32.       double start_time_par = omp_get_wtime();
  33.       #pragma omp parallel private (j, k)
  34.       {
  35.         #pragma omp for
  36.         for (i = 0; i < dimenzijaMat; i++)
  37.           for (j = 0; j < dimenzijaMat; j++)
  38.            for (k = 0; k < dimenzijaMat; k++)
  39.             matrica3[i][j] += matrica1[i][k] * matrica2[k][j];
  40.       }
  41.      
  42.       double time_par = omp_get_wtime() - start_time_par;
  43.       cout << "Parallel time: "<< time_par << endl;
  44.      
  45.     cout << "flips: "<< (2*dimenzijaMat*dimenzijaMat)/time_par << endl;
  46.     delete [] matrica1;
  47.     delete [] matrica2;
  48.     delete [] matrica3;
  49.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement