background image

Programowanie równoległe i współbieżne 

Ćwiczenie:  

Ćwiczenie 7

 

Data oddania: 

13.5.2013 

Imię, Nazwisko: 

Dawid Misiniec

 

Ocena: 

Uwagi: 
 

 
 

1. 

Cel ćwiczenia 

 

Celem  ćwiczenia  było  wykonanie  programu,  który  liczy  średnią,  sumę  oraz  normę  wektora 

wartości, wygenerowanego przez podział wektora głównego na n części. 

 

2. 

Przebieg ćwiczenia 

 

Napisany  przez  nas  program  przyjmował  na  wstępie  wektor  20  elementowy,  wypełniony 
kolejnymi  liczbami.  Następnie  program  dzielił  główny  wektor  na  n  części  (zależne  od  ilości 
procesów)  i  każdy z  procesów  wykonywał  obliczenia  średniej  i normy  wektora  dla  swojego 
fragmentu  danych  oraz  wyniki  prezentował  na  ekranie  każdy  z  procesów.  Po  wykonaniu 
obliczeń  wyniki  były  wysyłane  do  procesu  o  numerze  0,  scalane  (suma  globalna)  oraz 
wyświetlane  (norma  globalna  oraz  średnia  ->  suma  globalna/wielkość  wektora 
początkowego). 
 

Wektor początkowy:  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
Wektor procesu 0: 

0 1 2 3 4 5 6 7 8 9 

Wektor procesu 1: 

10 11 12 13 14 15 16 17 18 19 

Tabela 1 Wektory wykorzystane do obliczeń 

 
Wynikiem obliczeń dla poszczególnych wektorów było: 
Suma lokalna 0: 45 
Suma lokalna 1: 145 
Suma globalna: 190 
Średnia: 9,5 
Norma lokalna 0: 

16,88194 

Norma lokalna 1: 

46,74398 

Norma globalna: 

49,69909 

 
Norma globalna obliczana była, jako suma kwadratów poszczególnych norm lokalnych. 
 

3.  Wnioski 

 

Podział obliczeń między kilka procesów przyspieszył wykonywanie działań, nie 
zmieniając poprawności wyników, 

 

Dokładność wykonywanych obliczeń na wielu procesach, jest taka sama jak 
dokładność obliczeń na jednym procesie, 

 

Dla większej ilości danych, czas potrzebny do obliczeń jest o wiele krótszy w 
przypadku podziału obliczeń na mniejsze fragmenty i rozdzielenie zadań dla 
kilku procesów