|
@ -2,6 +2,7 @@ |
|
|
#include <cstdlib>
|
|
|
#include <cstdlib>
|
|
|
#include <cmath>
|
|
|
#include <cmath>
|
|
|
#include <omp.h>
|
|
|
#include <omp.h>
|
|
|
|
|
|
#include "Ttiming.h"
|
|
|
|
|
|
|
|
|
using namespace std; |
|
|
using namespace std; |
|
|
|
|
|
|
|
@ -37,6 +38,8 @@ int main(int argc, char *argv[]) |
|
|
long rozmiar=0; |
|
|
long rozmiar=0; |
|
|
char *endptr; |
|
|
char *endptr; |
|
|
int threads_num=0; |
|
|
int threads_num=0; |
|
|
|
|
|
TTiming tt; |
|
|
|
|
|
long i, j;//,k;
|
|
|
|
|
|
|
|
|
if (argc < 3) |
|
|
if (argc < 3) |
|
|
{ |
|
|
{ |
|
@ -89,10 +92,23 @@ int main(int argc, char *argv[]) |
|
|
for (long i=0; i<rozmiar; ++i) |
|
|
for (long i=0; i<rozmiar; ++i) |
|
|
for (long j=0; j<rozmiar; ++j) |
|
|
for (long j=0; j<rozmiar; ++j) |
|
|
B[i][j] = (long)(cos(j) *(i+j)) % 10; // postarac sie to zoptymalizowac!
|
|
|
B[i][j] = (long)(cos(j) *(i+j)) % 10; // postarac sie to zoptymalizowac!
|
|
|
|
|
|
|
|
|
//mnozenie macierzy - TO DO
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tt.Begin(); |
|
|
|
|
|
//#pragma omp parallel for default(shared)
|
|
|
|
|
|
#pragma omp parallel for default(none) shared(A, B, C) firstprivate(rozmiar)private(i, j)
|
|
|
|
|
|
for (i=0; i<rozmiar; ++i) |
|
|
|
|
|
for (j=0; j<rozmiar; ++j) |
|
|
|
|
|
{ |
|
|
|
|
|
C[i][j] = 0; |
|
|
|
|
|
for (long k=0; k<rozmiar; ++k) |
|
|
|
|
|
C[i][j] += A[i][k]*B[k][j]; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
long elapsed = tt.End(); |
|
|
|
|
|
|
|
|
|
|
|
cout << "Time: " << elapsed << " ms" << endl; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
array_destroy(A); |
|
|
array_destroy(A); |
|
|
array_destroy(B); |
|
|
array_destroy(B); |
|
|
array_destroy(C); |
|
|
array_destroy(C); |
|
|