Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdlib.h>
- #include <time.h>
- #include <omp.h>
- using namespace std;
- int main(int argc, char* argv[])
- {
- int brNiti = atoi(argv[1]), i, j, k, dimenzijaMat = 2000;
- cout << "Broj postavljenih niti: " << brNiti << endl;
- double** matrica1 = new double*[dimenzijaMat];
- double** matrica2 = new double*[dimenzijaMat];
- double** matrica3 = new double*[dimenzijaMat];
- for(i = 0; i < dimenzijaMat; i++)
- {
- matrica1[i] = new double[dimenzijaMat];
- matrica2[i] = new double[dimenzijaMat];
- matrica3[i] = new double[dimenzijaMat];
- }
- for (i = 0; i < dimenzijaMat; i++)
- for (j = 0; j < dimenzijaMat; j++)
- {
- matrica1[i][j] = 10;
- matrica2[i][j] = 10;
- matrica3[i][j] = 0;
- }
- omp_set_num_threads(brNiti);
- double start_time_par = omp_get_wtime();
- #pragma omp parallel private (j, k)
- {
- #pragma omp for
- for (i = 0; i < dimenzijaMat; i++)
- for (j = 0; j < dimenzijaMat; j++)
- for (k = 0; k < dimenzijaMat; k++)
- matrica3[i][j] += matrica1[i][k] * matrica2[k][j];
- }
- double time_par = omp_get_wtime() - start_time_par;
- cout << "Parallel time: "<< time_par << endl;
- cout << "flips: "<< (2*dimenzijaMat*dimenzijaMat)/time_par << endl;
- delete [] matrica1;
- delete [] matrica2;
- delete [] matrica3;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement