Zadania jednorodne 5.A.Modele przetwarzania równoległego Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011
Zadanie podzielne Zadanie podzielne (ang. divisible task) może zostać podzielone na części o dowolnym rozmiarze, które mogą być przetwarzane współbieżnie i niezależnie od siebie. W aplikacjach równoległych mieszczących się w kategorii zadań podzielnych nie występują zależności kolejnościowe między zadaniami oraz zadania te mogą mieć niewielki rozmiar. Model zadania jednorodnego 2
Parametry modelu (1) m - liczba komputerów komputer (węzeł przetwarzający): procesor, pamięć, podsystem komunikacyjny (sprzęt lub oprogramowanie). Komputer posiadający dedykowany układ komunikacyjny może równocześnie realizować przetwarzanie i komunikację. Komputery - węzły przetwarzające są oznaczone przez Pi. Jeżeli nie podano inaczej P1 posiada wszystkie dane na początku przetwarzania. V dane do przetworzenia (miara pracy do wykonania) znajdujące się w wyróżnionym jednym węźle. α i wielkość danych przetwarzana na procesorze Pi Σ α i =V i=1..m Model zadania jednorodnego 3
Parametry modelu (2) A i czas przetwarzania jednostki danych -odwrotność prędkości - dla Pi A i α i czas przetwarzania danych α i na procesorze Pi S i + α i C i czas przesyłania α i jednostek danych pomiędzy dwoma procesorami, S i czas zainicjowania transmisji, C i współczynnik prędkości transmisji danych łączem komunikacyjnym odwrotność prędkości, zakładamy stałą wartość współczynnika i brak równoczesności transmisji jednym łączem. Model zadania jednorodnego 4
Optymalizacja czasu przetwarzania równoległego Minimalizacja czasu przetwarzania (obliczeń i komunikacji) danych w systemie składającym się z określonej liczby węzłów przetwarzających tworzących z siecią połączeń komunikacyjnych określoną architekturę systemu równoległego. Optymalizacja uwzględnia: możliwy, dowolny(optymalny) lub określony sposób rozsyłania danych: kolejność przesłań, trasa komunikatu. jedno- lub wielo- krotne zrównoleglenie obliczeń i komunikacji, jedno- lub wielo- krotne rozsyłanie do każdego z węzłów. Model zadania jednorodnego 5
Szeregowanie zadań jednorodnych w systemie wielokomputerowym 1. Zakończenie przetwarzania poszczególnych procesorów uczestniczących w obliczeniach następuje możliwie równocześnie. Różnice wynikają z ziarnistości danych (jeśli jest uwzględniana). 2. Zakładamy, ze wyniki nie są zwracane do węzła będącego źródłem danych. Rozszerzenie uwzględniające zbieranie wyników może zostać w modelu uwzględnione, lecz nie wpływa znacząco na złożoność metody. 3. ZADANIA JEDNORODNE (M.Drozdowski) Model zadania jednorodnego 6
Łańcuch procesorów równoczesne obliczenia i komunikacja Komunikacja i przetwarzanie w łańcuchu procesorów Dane nieprzetwarzane przez pierwszy procesor są przesyłane do następnego, ten z kolei dzieli je na przetwarzane lokalnie i przesyłane dalej, które przesyła do następnego wolnego procesora. Przetwarzanie na wysyłającym dane procesorze trwa tak długo jak wysyłanie danych do następnego i przetwarzanie danych na następnym procesorze. Model zadania jednorodnego 7
Model- wersja ciągła: Łańcuch procesorów równoczesne obliczenia i komunikacja Optymalizacja czasu przetwarzania równoznaczna z jednoczesnym zakończeniem obliczeń na wszystkich biorących w przetwarzaniu procesorach jeżeli któryś liczyłby dłużej... α i A i = S i +(α i+1 +...+ α m ) C i + α i+1 A i+1 i=1,..,m V = α 1 + α 2 +...+ α m α 1, α 2,.., α m 0 Model zadania jednorodnego 8
Łańcuch procesorów równoczesne obliczenia i komunikacja Model matematyczny wersja dyskretna bez zmiennych binarnych: Minimalizacja czasu pracy najdłużej pracującego procesora: Min T 1. T T i i=1..3 2. T 1 = α 1 A 1 3. T 2 = S 1 +(V-α 1 )C 1 + α 2 A 2 4. T 3 = S 1 +S 2 +(V-α 1 )C 1 +(V-α 1 -α 2 )C 2 +α 3 A 3 5.. Σ α i = V 6. α i >= 0 i całkowite dla i=1..3 Określenie optymalnej liczby procesorów: znana, gdy wszystkie obliczają, a większa i mniejsza liczba procesorów daje dłuższe czasy przetwarzania. Uwaga! liczbę procesorów w modelu należy zmniejszyć jeżeli część z procesorów nie jest wykorzystana - α i =0. Model zadania jednorodnego 9
Łańcuch procesorów równoczesne obliczenia i komunikacja Model matematyczny wersja dyskretna: Minimalizacja czasu pracy najdłużej pracującego procesora: Min T 1. T T i i=1..3 2. T 1 = α 1 A 1 3. T 2 = x 2 S 1 +(V-α 1 )C 1 + α 2 A 2 4. T 3 = x 2 S 1 +(V-α 1 )C 1 + x 3 S 2 +α 3 C 2 +α 3 A 3 5. Vx 2 α 2 + α 3 -- ograniczenie wymusza x 2 =1 gdy dane są przesyłane (za względu na int x i i minimalizację) 6. Vx 3 α 3 7. Σ α i = V 8. α i 0, x i >0 i int 5-6 ograniczenia dla wartości x i, minimalizacja powoduje dążenie do x i =0 Model zadania jednorodnego 10
Łańcuch procesorów brak równoczesnych lokalnych obliczeń i komunikacji Model matematyczny - wersja ciągła: Optymalizacja czasu przetwarzania równoznaczna z jednoczesnym zakończeniem obliczeń na wszystkich biorących w przetwarzaniu procesorach. α i A i = S i+1 +(α i+2 +...+ α m )C i+1 + α i+1 A i+1 i=1,..,m-1 α m-1 A m-1 = α m A m V = α 1 + α 2 +...+ α m α 1, α 2,.., α m 0 Model zadania jednorodnego 11
Łańcuch procesorów brak równoczesnych lokalnych obliczeń i komunikacji Model - wersja dyskretna bez zmiennych binarnych: Minimalizacja czasu pracy najdłużej pracującego procesora: Min T 1. T T i i=1..3 2. T 1 = S 2 +(V-α 1 )C 2 + α 1 A 1 3. T 2 = S 2 +(V-α 1 )C 2 + S 3 +(V-α 1 - α 2 )C 3 + α 2 A 2 4. T 3 =... 5. T m-1 = S 2 +(V-α 1 )C 2 +..+S m + α m C m +α m-1 A m-1 6. T m = S 2 +(V-α 1 )C 2 +..+S m + α m C m +α m A m 7. Σ α i = V 8. α i > 0 i całkowite dla i=1..m Określenie optymalnej liczby procesorów: znana, gdy wszystkie obliczają, a większa i mniejsza liczba procesorów daje dłuższe czasy przetwarzania; liczbę procesorów w sformułowaniu należy zmniejszyć jeżeli część z procesorów nie jest wykorzystana - α i =0. Model zadania jednorodnego 12
Łańcuch procesorów brak równoczesnych lokalnych obliczeń i komunikacji Model - wersja dyskretna: Minimalizacja czasu pracy najdłużej pracującego procesora: Min T 1. T T i i=1..3 2. T 1 = x 1 S 2 +(V-α 1 )C 2 + α 1 A 1 3. T 2 = x 1 S 2 +(V-α 1)C 2+ x 2 S 3 +(V-α 1- α 2)C 3 + α 2A 2 4. T 3 = x 1 S 2 +(V-α 1 )C 2 + x 2 S 3 +(V-α 1 - α 2 )C 3 + α 3 A 2 5. Vx 1 (V-α 1 ) 6. Vx 2 (V-α 1 - α 2 ) 7. Σ α i = V 8. α i 0 i całkowite dla i=1..3 5-6 warunek uczestnictwa w przetwarzaniu kolejnych elementów łańcucha, jeżeli Σ α i >0 dla i k to x k =1w przeciwnym razie x k może być równe 0. Model zadania jednorodnego 13
Architektura systamu: gwiazda równoczesne obliczenia i komunikacja Proces rozsyłania i obliczania danych w strukturze gwiazdy bez zwracania wyników. W przypadku równoczesnego zakończenia przetwarzania czas przetwarzania na procesorze i-1 jest równy czasowi przetwarzania na procesorze i i czasowi przesyłania danych do procesora i (z proc. 1) Powyższy sposób rozsyłania pod względem dostępności medium odpowiada magistrali. Możliwa także wersja rozsyłania komunikatów w gwieździe, gdy komunikacje różnymi łączami są zrównoleglone. Model zadania jednorodnego 14
Architektura: gwiazda równoczesne obliczenia i komunikacja Model- wersja ciągła: Optymalizacja czasu przetwarzania równoznaczna z jednoczesnym zakończeniem obliczeń na wszystkich biorących w przetwarzaniu procesorach, założono (por. rysunek) równoczesność jednej komunikacji z przetwarzaniem. α i A i = S i+1 +α i+1 (A i+1 + C i+1 ) i=1,..,m-1 V = α 1 + α 2 +...+ α m α 1, α 2,.., α m 0 Model zadania jednorodnego 15
Architektura: gwiazda różne przypadki W przypadku gwiazdy dla optymalizacji przetwarzania znaczenie ma kolejność wysyłania danych do procesorów. Jeżeli prędkości łączy są różne (i można zaniedbać S), to dane wysyłamy w kolejności nie rosnących prędkości łączy komunikacyjnych - bez uwzględnienia prędkości procesorów. W przypadku równej prędkości łączy wpierw wysyłamy dane do szybszego procesora. Jeżeli gałąź struktury składa się z wielu węzłów to uwzględniamy całą moc obliczeniową, która może się zmieniać ze zmianą ilości węzłów przetwarzających w gałęzi (funkcja ilości danych). W przypadku braku równoczesności obliczeń i komunikacji równanie ze strony poprzedniej dla i =1 przyjmuje postać α 1 A 1 =α m A m,, pozostałe równania bez zmian Model zadania jednorodnego 16
Uwagi uzupełniające do prostych modeli Dalsza optymalizacja przetwarzania polega na skróceniu czasu oczekiwania na rozpoczęcie przetwarzania przez poszczególne procesory. Jest to możliwe wtedy, gdy dane do każdego procesora nie będą przesyłane jednokrotnie, lecz w wielu paczkach. Pierwsza paczka pozwala na jak najwcześniejsze rozpoczęcie obliczeń. Kolejne dane docierają do węzłów w czasie, gdy te już obliczają. Podejście to nawet przy braku lokalnej równoległości komunikacji i obliczeń pozwala na zrównoleglenie komunikacji w systemie (komunikacja potokowa). Dla optymalizacji przetwarzania wprowadza się dodatkowe zmienne określające momenty rozpoczęcia kolejnych komunikacji i/lub rozpoczęcia przetwarzania kolejnej porcji danych na każdym procesorze. Praca nad kolejną partią danych jest możliwa po jej otrzymaniu i zakończeniu pracy nad poprzednią partią danych. W systemach ze zrównolegleniem obliczeń i komunikacji wcześniejsze rozpoczęcie przetwarzania w danym węźle jest możliwe również dzięki temu, że wpierw wyślemy dane przeznaczone tylko dla jednego procesora, a następnie gdy już liczy, będzie w tle odbierał i przesyłał dalej dane do kolejnych procesorów (jedno zadanie dla każdego procesora) Model zadania jednorodnego 17
Dalsze informacje (opis, symulacje, obliczenia dla modelu ciągłego) na temat modelu zadań jednorodnych: http://www.cs.put.poznan.pl/mdrozdowski/divisible/ W wykładzie wykorzystano rysunki udostępnione na powyższej stronie www. Model zadania jednorodnego 18
Wielokrotne rozsyłanie danych gwiazda, komunikacja i obliczenia szeregowo P0 α0 P2 α4 α2 P1 α3 α1 komunikacja obliczenia Przestoje: P0 nie wysyła bo czeka na koniec obliczeń P1, P2 czeka na zakończenie wcześniejszej komunikacji Model zadania jednorodnego 19
Wielokrotne rozsyłanie danych gwiazda, komunikacja i obliczenia szeregowo m liczba procesorów bez procesora centralnego p liczba cykli rozsyłania danych n całkowita liczba paczek rozsyłanych n=m*p α i wielkość i-tej paczki, paczki numerowane i wysyłane od końca, α n to 1. paczka do m- tego procesora, α 1 to ostatnia paczka do pierwszego procesora α 0 - dane przetwarzane przez procesor centralny t i - moment rozpoczęcia transmisji danych α i np. t 2 >= t 3 T i - czas zakończenia przetwarzania procesora P i po obliczeniach α i T * - czas przetwarzania systemu V ilość przetwarzanych danych Model zadania jednorodnego 20
Wielokrotne rozsyłanie danych gwiazda, komunikacja i obliczenia szeregowo Min T * przy ograniczeniach: 1. T * >=T i dla i=0..m 2. t n =0; 3. t i-1 >=t i +C α i +S dla 1<i<=n wysłanie/odebranie każdej paczki po przesłaniu wcześniejszej (wysyłanie szeregowo różnymi łączami w węzła centralnego) 4. t i-m >=t i +C α i +S+A α i dla m<i<=n wysłanie/odebranie kolejnej paczki do tego samego procesora po obliczeniu wcześniejszej (szeregowo obliczenia i komunikacja lokalna) 5. Σ n i=0 α i =V 6. T i >= t i + α i (A+C)+S dla i=1..m zakończenie obliczeń po obliczeniu ostatniej paczki dla tego procesora (liczy po odebraniu danych) 7. T 0 =t 1 +S+C α 1 +A α 0 początek obliczeń 0 węzła po wysłaniu ostatniej paczki do pierwszego procesora 8. T i,t i, α i >= 0 9. α i całkowite dla i=0..n Model zadania jednorodnego 21
Problemy szczególne do rozwiązania model i architektura aplikacji Struktura aplikacji w przypadku równoległego przetwarzania i komunikacji blokującej liczba procesów obsługujących komunikację.(s) Odbiór danych z różnych źródeł (szeregowo lub równolegle) i przekazywanie części danych dalej.(s) Transmisja wielokrotna tym samym łączem. Obliczenia paczki danych po jej otrzymaniu i po zakończeniu obliczeń wcześniej otrzymanej paczki danych. Usuwanie nieistniejących zależności czasowych uniezależnienie zdarzeń od zdarzeń nie występujących.(s) Model zadania jednorodnego 22
A Równoległe przetwarzanie i komunikacja blokująca, przesłania wielokrotne Struktura aplikacji B SMK H SMK H K H K H K H K H L L MH LLK A.Oczekiwanie na kolejną porcję danych procesu komunikacyjnego (cykliczne przeglądanie pamięci i przerywanie przetwarzania). B.Proces zarządcy odbiera komunikaty o gotowości danych (od odbióry) i gotowości procesów (od nadawcy).zezwala na komunikacje gdy jest ona możliwa. Proces zarządcy zawsze gotowy na odbiór komunikatu. Model zadania jednorodnego 23
Usuwanie z modelu nieistniejących zależności czasowych Uniezależnienie komunikacji od innej komunikacji (która nie zachodzi) t w t i-1 P1 t i P2 t k t k >=t i +S+α 1 C równoległe odbieranie danych z t k >=t w +S+α 2 C dwóch źródeł,czasy rozpoczęcia t i >=t i-1 +S+α 3 C- M(1-y) komunikacji Vy>=α 3, y binarne Przy minimalizacji czasu, jeżeli α 3 =0 to y=0 i ograniczenie pierwsze staje się nieistotne i t k może się rozpocząć już po zakończeniu t w Model zadania jednorodnego 24
Sekwencyjne obliczanie dwóch porcji danych t j,t i momenty rozpoczęcia obliczeń paczek α j α i Chcemy aby: t j >= t i + α i A gdy t j >=t i t i >=t j + α j A gdy t j <t i zamodelowane zostaje za pomocą równań: t j >=t i + α i A M(1-y) t i >=t j + α j A M y 0<=y <=1 i całkowite dla odpowiednio dużego M gdy y=1 ograniczenie drugie jest spełnione i tylko pierwsze ograniczenie jest znaczące zadanie i wykonuje się przed zadaniem j Analogicznie można zamodelować sekwencyjne odbieranie danych z 2 źródeł. Model zadania jednorodnego 25
Zadanie projektowe - laboratorium Temat: optymalizacja przetwarzania równoległego za pomocą modelu zadania jednorodnego. Zadania: 1. Sformułowanie równań dla określonej struktury maszyny równoległej i typu komunikacji (model dyskretny) modelujemy określoną przez wykładowcę architekturę. 2. Rozwiązanie modeli programem optymalizującym: lp_solve 3. Prezentacja wyników optymalizacji za pomocą wykresów Gantta. Model zadania jednorodnego 26