Browse Source

LAB-1 wersja ostateczna: poprawka sprawka + kodu

master
Piotr Dergun 8 years ago
parent
commit
8d03243fe7
2 changed files with 6 additions and 6 deletions
  1. +2
    -2
      DergunPiotr-WaskoDominik/zad1/dok.tex
  2. +4
    -4
      DergunPiotr-WaskoDominik/zad1/macierz_omp.cpp

+ 2
- 2
DergunPiotr-WaskoDominik/zad1/dok.tex View File

@ -92,9 +92,9 @@ oznacza, że współdzielone będą wskaźniki tablic (A,C,B), zmienna \textit
Program został skompilowany i uruchomiony z następującymi parametrami: macierz 1500x1500, ilość wątków 1-15, dla każdego wątku wykonano 10 powtórzeń. Z otrzymanych wyników obliczono przyspieszenie oraz średni czas liczenia macierzy. Program został skompilowany i uruchomiony z następującymi parametrami: macierz 1500x1500, ilość wątków 1-15, dla każdego wątku wykonano 10 powtórzeń. Z otrzymanych wyników obliczono przyspieszenie oraz średni czas liczenia macierzy.
Rysunek 1 przedstawia wykres zależności przyspieszenia od ilości wątków. Można na nim zauważać że wzrost przyspieszenia uzyskuje się tylko do momentu gdy liczba wątków jest mniejsza lub równa 8. Spowodowane jest to tym, że komputer na którym obliczane było zdanie posiada procesor o 4 rdzeniach oraz wykorzystuje technologię HyperThreading która pozwala na prace w sumie ośmiu wątków. Rysunek 2. przedstawiam wykres zależności czasu obliczeń od liczby wątków. Można zobaczyć na nim, że powyżej 8 wątków czas obliczeń nie ulega już skróceniu.
Rysunek 1 przedstawia wykres zależności przyspieszenia od ilości wątków. Można na nim zauważać że wzrost przyspieszenia uzyskuje się tylko do momentu gdy liczba wątków jest mniejsza lub równa 4. Spowodowane jest to tym, że komputer na którym obliczane było zadanie posiada procesor o 4 rdzeniach oraz wykorzystuje technologię HyperThreading która pozwala na prace w sumie ośmiu wątków. Rysunek 2. przedstawia wykres zależności czasu obliczeń od liczby wątków. Można zobaczyć na nim, że powyżej 4 wątków czas obliczeń nie ulega już skróceniu.
Z powyższych obserwacji wynika, że wykorzystanie większej liczby wątków pozwala znacząco skrócić czas wykonania programu. Jednak zwiększanie liczy wątków ponad to co oferuje procesor nie powoduje wzrostu wydajności.
Z powyższych obserwacji wynika, że wykorzystanie większej liczby wątków pozwala znacząco skrócić czas wykonania programu. Jednak zwiększanie liczby wątków ponad to co oferuje procesor nie powoduje wzrostu wydajności i wymusza współbieżne liczenie.

+ 4
- 4
DergunPiotr-WaskoDominik/zad1/macierz_omp.cpp View File

@ -55,9 +55,9 @@ int main(int argc, char *argv[])
exit(1); exit(1);
} }
if (rozmiar <= 0)
if (rozmiar <= 0 || rozmiar > 2000)
{ {
cerr << "The number of matrix dimension must be positive" << endl;
cerr << "The number of matrix dimension must be in range [1,2000]" << endl;
exit(1); exit(1);
} }
@ -86,12 +86,12 @@ int main(int argc, char *argv[])
//wypelnienie macierzy A liczbami "losowymi" //wypelnienie macierzy A liczbami "losowymi"
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)
A[i][j] = (long)(sin(i) * i * j) % 10; // postarac sie to zoptymalizowac!
A[i][j] = (long)(sin(i) * i * j) % 10;
//wypelnienie macierzy B liczbami "losowymi" //wypelnienie macierzy B liczbami "losowymi"
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;
tt.Begin(); tt.Begin();
//#pragma omp parallel for default(shared) //#pragma omp parallel for default(shared)

Loading…
Cancel
Save