ZŁOŻONOŚĆ ALGORYTMÓW RÓWNOLEGŁYCH
T - czas wykonania programu równoległego to czas od momentu gdy pierwszy procesor rozpoczyna wykonanie programu do momentu gdy ostatni procesor zakończy wykonywanie programu T = f ( N, P, U, ....) N - rozmiar problemu P - liczba procesorów U - liczba procesów ( zadań )
T = Dwa sposoby definiowania T : (1) T = Tjcomp + Tjcomm + Tjidle (2) T = ( Tcomp + Tcomm + Tidle ) /P (**) T =
Tcomm = Tsend + Trecv = Tmsg Tmsg = ts + tw * L
..... Tmsg= ts + (mtw + tk) * d Tmsg = ts + mtw * d Podstawowe operacje komunikacyjne i ich złożoność na różnych architekturach 1 2 ..... d P' P'' Oznaczenia : m - rozmiar wiadomości d - długość drogi tk - czas przesłania nagłówka wiadomości m tw - czas przesłania reszty wiadomości ts - czas startu dla jednego "odcinka" Tmsg= ts + (mtw + tk) * d Tmsg = ts + mtw * d
Procesy tworzą pierścień (ring) d P/2 P - liczba procesów Procesy tworzą pierścień (ring) d P/2 Tmsg = ts + tw*m*P/2 Procesy tworzą siatkę dwuwymiarową (mesh) d 2 * P/2 Tmsg = ts + 2 * tw*m* P /2 Procesy tworzą kostkę (hypercube) d logP Tmsg = ts + tw*m* logP
TS - złożoność czasowa najszybszego algorytmu sekwencyjnego Przyśpieszenie S = TS/ TP TS - złożoność czasowa najszybszego algorytmu sekwencyjnego TP - złożoność czasowa algorytmu równoległego
Przykład : DOD Dane : N procesorów (kostka), Pi posiada jedną liczbę rzeczywistą Xi Wynik : X1 + ... + XN w P0 TS(DOD) = ( N ) TP(DOD) = ( logN ) S(DOD) = ( N/logN ) Uwagi: S p p - liczba procesorów S = p idealny równoległy komputer może...
Efektywność E = S/p Przykład : Uwagi : E = 1 w idealnym systemie E(DOD) = ( 1/logN ) Uwagi : E = 1 w idealnym systemie 0 < E < 1 E = TS / (p*TP)
Koszt Kpar = TP * p Równoległy algorytm jest optymalny ze względu na koszt jeśli jego Kpar jest proporcjonalny do TS E = (1) dla optymalnych systemów Kpar(DOD) = ( NlogN ) Stąd algorytm nie jest optymalny ze względu na koszt.