Sprawozdanie ćwiczenie 7

Sprzęt na którym testowany jest program:

AMD 64 X2 2.0 GHz, 2 GB RAM

Program korzysta z rozszerzenia klasy Thread

1. Test na małej ilości danych( rozmiar wektora(n)=99, drugi rozmiar macierzy (m) = 50, zakres wartości 1-100(liczby pseudo-losowe) i ilość wątków(k) = 3) a. Pierwsze wykonanie:

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 35 630 520 nanosekund

Koniec wątku głównego

b. Drugie wykonanie:

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 35 585 920 nanosekund

Koniec wątku głównego

c. Trzecie wykonanie

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 34 740 400 nanosekund

Koniec wątku głównego

Średni czas trwania wątków: 35 318 946,(6) nanosekund czyli 35,3 milisekundy Amplituda czasów: 890 120 nanosekund czyli 0.89 milisekundy

2. Test na małej ilości danych( rozmiar wektora(n)=99, drugi rozmiar macierzy (m) = 50, zakres wartości 1-100(liczby pseudo-losowe) i ilość wątków(k) = 9) a. Pierwsze wykonanie

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Tworze watek numer 4

Tworze watek numer 5

Tworze watek numer 6

Tworze watek numer 7

Tworze watek numer 8

Tworze watek numer 9

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 4 i liczę iloczyn

Jestę watkię nr = 5 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Jestę watkię nr = 8 i liczę iloczyn

Koniec wątku 1

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 2

Koniec wątku 3

Koniec wątku 4

Koniec wątku 5

Koniec wątku 6

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 106 611 680 nanosekund

Koniec wątku głównego

b. Drugie wykonanie

run:

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Tworze watek numer 4

Tworze watek numer 5

Tworze watek numer 6

Tworze watek numer 7

Tworze watek numer 8

Tworze watek numer 9

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 4 i liczę iloczyn

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 5 i liczę iloczyn

Jestę watkię nr = 8 i liczę iloczyn

Koniec wątku 2

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 1

Koniec wątku 4

Koniec wątku 3

Koniec wątku 5

Koniec wątku 6

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 124 988 320 nanosekund

Koniec wątku głównego

c. Trzecie wykonanie

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Tworze watek numer 4

Tworze watek numer 5

Tworze watek numer 6

Tworze watek numer 7

Tworze watek numer 8

Tworze watek numer 9

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 4 i liczę iloczyn

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 8 i liczę iloczyn

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 5 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 2

Koniec wątku 1

Koniec wątku 4

Koniec wątku 3

Koniec wątku 6

Koniec wątku 5

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 117 320 840 nanosekund

Koniec wątku głównego

Średni czas trwania wątków: 116 306 946,(6) nanosekund czyli 116,3 milisekund Amplituda czasów: 18 376 640 nanosekund czyli 18 milisekund

3. Test na dużej ilości danych( rozmiar wektora(n)=201, drugi rozmiar macierzy (m) = 100, zakres wartości 1-1000(liczby pseudo-losowe) i ilość wątków(k) = 3) a. Pierwsze wykonanie:

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 43 509 280 nanosekund

Koniec wątku głównego

b. Drugie wykonanie

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Koniec wątku 2

Koniec wątku 1

Koniec wątku 3

Czas trwania watkow = 59 376 880 nanosekund

Koniec wątku głównego

c. Trzecie wykonanie

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 37 071 840 nanosekund

Koniec wątku głównego

Średni czas trwania wątków: 46 652 666,(6) nanosekund czyli 46,6 milisekund amplituda czasów: 22 305 040 nanosekund czyli 22,3 milisekund

4. Test na dużej ilości danych( rozmiar wektora(n)=201, drugi rozmiar macierzy (m) = 100, zakres wartości 1-1000(liczby pseudo-losowe) i ilość wątków(k) = 9) a. Pierwsze wykonanie

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Tworze watek numer 4

Tworze watek numer 5

Tworze watek numer 6

Tworze watek numer 7

Tworze watek numer 8

Tworze watek numer 9

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 5 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Jestę watkię nr = 9 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 4 i liczę iloczyn

Koniec wątku 1

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 8 i liczę iloczyn

Koniec wątku 2

Koniec wątku 3

Koniec wątku 4

Koniec wątku 5

Koniec wątku 6

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 112 846 480 nanosekund

Koniec wątku głównego

b. Drugie wykonanie

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Tworze watek numer 4

Tworze watek numer 5

Tworze watek numer 6

Tworze watek numer 7

Tworze watek numer 8

Tworze watek numer 9

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 4 i liczę iloczyn

Jestę watkię nr = 5 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Jestę watkię nr = 8 i liczę iloczyn

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Koniec wątku 4

Koniec wątku 5

Koniec wątku 6

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 102 727 840 nanosekund

Koniec wątku głównego

c. Trzecie wykonanie

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Tworze watek numer 4

Tworze watek numer 5

Tworze watek numer 6

Tworze watek numer 7

Tworze watek numer 8

Tworze watek numer 9

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 5 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 1

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 4 i liczę iloczyn

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 8 i liczę iloczyn

Koniec wątku 3

Koniec wątku 5

Koniec wątku 2

Koniec wątku 4

Koniec wątku 7

Koniec wątku 6

Koniec wątku 9

Koniec wątku 8

Czas trwania watkow = 112 021 840 nanosekund

Koniec wątku głównego

Średni czas trwania wątków: 109 198 720 nanosekund czyli 109,1 milisekund Amplituda czasów: 10 118 640 nanosekund czyli 10,1 milisekund

Program korzysta z implementacji interfejsu Runnable 1. Test na małej ilości danych( rozmiar wektora(n)=99, drugi rozmiar macierzy (m) = 50, zakres wartości 1-100(liczby pseudo-losowe) i ilość wątków(k) = 3) a. Pierwsze wykonanie:

Tworze watek numer 1

Jestę watkię nr = 1 i liczę iloczyn

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 34 900 040 nanosekund

Koniec wątku głównego

b. Drugie wykonanie:

Tworze watek numer 1

Jestę watkię nr = 1 i liczę iloczyn

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 40 614 440 nanosekund

Koniec wątku głównego

c. Trzecie wykonanie

Tworze watek numer 1

Jestę watkię nr = 1 i liczę iloczyn

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 35 710 720 nanosekund

Koniec wątku głównego

Średni czas trwania wątków: 37 075 066,(6) nanosekund czyli 37 milisekund Amplituda czasów: 5 714 400 nanosekund czyli 5,7 milisekundy

2. Test na małej ilości danych( rozmiar wektora(n)=99, drugi rozmiar macierzy (m) = 50, zakres wartości 1-100(liczby pseudo-losowe) i ilość wątków(k) = 9) a. Pierwsze wykonanie

Tworze watek numer 1

Jestę watkię nr = 1 i liczę iloczyn

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 2 i liczę iloczyn

Tworze watek numer 4

Tworze watek numer 5

Jestę watkię nr = 4 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 5 i liczę iloczyn

Tworze watek numer 6

Tworze watek numer 7

Tworze watek numer 8

Jestę watkię nr = 6 i liczę iloczyn

Tworze watek numer 9

Jestę watkię nr = 8 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Koniec wątku 4

Koniec wątku 5

Koniec wątku 6

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 100 941 000 nanosekund

Koniec wątku głównego

b. Drugie wykonanie

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 2 i liczę iloczyn

Tworze watek numer 4

Tworze watek numer 5

Jestę watkię nr = 4 i liczę iloczyn

Tworze watek numer 6

Tworze watek numer 7

Tworze watek numer 8

Tworze watek numer 9

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 8 i liczę iloczyn

Koniec wątku 2

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 5 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 1

Koniec wątku 4

Koniec wątku 3

Koniec wątku 6

Koniec wątku 5

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 131 824 720 nanosekund

Koniec wątku głównego

c. Trzecie wykonanie

Tworze watek numer 1

Jestę watkię nr = 1 i liczę iloczyn

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 3 i liczę iloczyn

Tworze watek numer 4

Jestę watkię nr = 2 i liczę iloczyn

Tworze watek numer 5

Jestę watkię nr = 5 i liczę iloczyn

Tworze watek numer 6

Tworze watek numer 7

Tworze watek numer 8

Jestę watkię nr = 4 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Tworze watek numer 9

Jestę watkię nr = 8 i liczę iloczyn

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Koniec wątku 4

Koniec wątku 6

Koniec wątku 5

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 99 501 280 nanosekund

Koniec wątku głównego

Średni czas trwania wątków: 110 755 666,(6) nanosekund czyli 110,7 milisekund amplituda czasów: 32 323 440 nanosekund czyli 32,3 milisekund 3. Test na dużej ilości danych( rozmiar wektora(n)=201, drugi rozmiar macierzy (m) = 100, zakres wartości 1-1000(liczby pseudo-losowe) i ilość wątków(k) =3) a. Pierwsze wykonanie

Tworze watek numer 1

Jestę watkię nr = 1 i liczę iloczyn

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 39 624 120 nanosekund

Koniec wątku głównego

b. Drugie wykonanie:

Tworze watek numer 1

Jestę watkię nr = 1 i liczę iloczyn

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 36 331 200 nanosekund

Koniec wątku głównego

c. Trzecie wykonanie:

Tworze watek numer 1

Jestę watkię nr = 1 i liczę iloczyn

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Czas trwania watkow = 39 445 760 nanosekund

Koniec wątku głównego

Średni czas trwania wątków: 38 467 026,(6) nanosekund czyli 38,4 milisekund Amplituda czasów: 3 292 920 nanosekund czyli 3,2 milisekundy

4. Test na dużej ilości danych( rozmiar wektora(n)=201, drugi rozmiar macierzy (m) = 100, zakres wartości 1-1000(liczby pseudo-losowe) i ilość wątków(k) =9) a. Pierwsze wykonanie

Tworze watek numer 1

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 1 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Jestę watkię nr = 3 i liczę iloczyn

Tworze watek numer 4

Tworze watek numer 5

Jestę watkię nr = 4 i liczę iloczyn

Jestę watkię nr = 5 i liczę iloczyn

Tworze watek numer 6

Tworze watek numer 7

Jestę watkię nr = 7 i liczę iloczyn

Tworze watek numer 8

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 8 i liczę iloczyn

Tworze watek numer 9

Koniec wątku 1

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 2

Koniec wątku 3

Koniec wątku 4

Koniec wątku 5

Koniec wątku 6

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 108 298 480 nanosekund

Koniec wątku głównego

b. Drugie wykonanie

Tworze watek numer 1

Jestę watkię nr = 1 i liczę iloczyn

Tworze watek numer 2

Tworze watek numer 3

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Tworze watek numer 4

Jestę watkię nr = 4 i liczę iloczyn

Tworze watek numer 5

Jestę watkię nr = 5 i liczę iloczyn

Tworze watek numer 6

Tworze watek numer 7

Tworze watek numer 8

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Jestę watkię nr = 8 i liczę iloczyn

Tworze watek numer 9

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Koniec wątku 4

Koniec wątku 5

Koniec wątku 6

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 101 008 120 nanosekund

Koniec wątku głównego

c. Trzecie wykonanie

Tworze watek numer 1

Jestę watkię nr = 1 i liczę iloczyn

Tworze watek numer 2

Tworze watek numer 3

Tworze watek numer 4

Jestę watkię nr = 3 i liczę iloczyn

Jestę watkię nr = 2 i liczę iloczyn

Tworze watek numer 5

Jestę watkię nr = 4 i liczę iloczyn

Jestę watkię nr = 5 i liczę iloczyn

Tworze watek numer 6

Tworze watek numer 7

Jestę watkię nr = 6 i liczę iloczyn

Jestę watkię nr = 7 i liczę iloczyn

Tworze watek numer 8

Tworze watek numer 9

Jestę watkię nr = 8 i liczę iloczyn

Jestę watkię nr = 9 i liczę iloczyn

Koniec wątku 1

Koniec wątku 2

Koniec wątku 3

Koniec wątku 4

Koniec wątku 5

Koniec wątku 6

Koniec wątku 7

Koniec wątku 8

Koniec wątku 9

Czas trwania watkow = 105 142 080 nanosekund

Koniec wątku głównego

Średni czas trwania wątków: 104 816 226,(6) nanosekund czyli 104,8 milisekund Amplituda czasów: 7 290 360 nanosekund czyli 7,2 milisekundy 5. Opracowanie Wyników:

Metoda\Dane

Średni czas(ms)

Amplituda(ms)

Thread małe dane k=3

35,3

0,89

Thread małe dane k=9

116,3

18

Thread duże dane k=3

46,6

22,3

Thread duże dane k=9

109,1

10,1

Runnable małe dane k=3

37

5,7

Runnable małe dane k=9

110,7

32,3

Runnable duże dane k=3

38,4

3,2

Runnable duże dane k=9

104,8

7,2

Z tabeli wyraźnie wynika że niezależnie od tego czy operujemy na małej liczbie danych, czy na dużej, to większa liczba wątków wydłuża czas wykonywania operacji. Jednak przy dużej ilości danych korzystanie z implementacji interfejsu Runnable usprawnia wykonywanie algorytmu(czasy są mniejsze niż przy korzystaniu z rozszerzenia klasy Thread, oraz amplitudy czasów są w większości przypadków mniejsze)