440 likes | 542 Views
LITERATURA. M.Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WN-T, 1996 I.Foster, Designing and Building parallel programs, Cocepts and Tools for Parallel Software Engineering, Addison-Wesley Publ.Comp., 1995 , http://www.mcs.anl.gov/dbpp/
E N D
LITERATURA • M.Ben-Ari, Podstawy programowania współbieżnego i rozproszonego, WN-T, 1996 • I.Foster, Designing and Building parallel programs, • Cocepts and Tools for Parallel Software Engineering, Addison-Wesley Publ.Comp., 1995 , • http://www.mcs.anl.gov/dbpp/ • V.Kumar,A.Grama, A.Gupta, G.Karypis, Introduction to Parallel Computing. • Design and Analysis of Algorithms, The Benjamin/Cummings Publ.Comp.,Inc., 1994. • PVM:Parallel Virtual Machine. A Users' Guide and Tutorial for Networked Parallel Computing, • A.Geist at al., Ultra60: /STORE/mpi/doc/ pvm-book.ps • MPI: A Message Passing Interface Standard Ultra60: /STORE/mpi/doc/mpi.guide.ps • J.H.Reif (ed.), Synthesis of parallel Algorithms, Morgan Kaufmann Pub., 1993
STRONA GŁÓWNA PVM : http://www.epm.ornl.gov/pvm STRONA GŁÓWNA MPI : http://www-unix.mcs.anl.gov/mpi
Próby przyspieszenia obliczeń na maszynach jednoprocesorowych: • pamięć z przeplotami • potokowość (pipelinning) • wektoryzacja • rozwijanie pętli
Zagadnienia w obliczeniach równoległych : • komputery równoległe • algorytmy równoległe • jakość algorytmów równoległych • języki równoległe • narzędzia wspomagające programowanie równoległe • przenośność programów równoległych • automatyczne oprogramowanie komputerów równoległychh
Klasyfikacja komputerów równoległych w/g FLYNNA : • SISD ( Single Instruction stream, Single Data stream) • SIMD ( Single Instruction stream , Multiply Data stream ) • MISD ( Multiply Instruction stream, Single Data stream ) • MIMD ( Multiply Instruction stream, Multiply Data stream )
systemy z pamięcią dzieloną (wspólną) (multiprocesory) shared - memory systems MIMD systemy z pamięcią rozproszoną ( multikomputery) distributed-memorysystems
Źródła złożoności programów równoległych : • współbieżność ( concurrency ) • skalowalność ( scalability ) • lokalność ( locality ) • modularność ( modularity ) • determinizm (determinism)
MODELE PROGRAMOWANIA RÓWNOLEGŁEGO : • Równoległość danych ( dla SIMD) • Pamięć wspólna (dla MIMD ze wspólną pamięcią ) • Przesyłanie komunikatów (dla MIMD z rozproszona pamięcią )
PRZYKŁAD DANE:X(0) RN , N 0,X(0)= ( X0(0), ... , XN-1(0) ); T N WYNIK : X(T) : Xi(t+1) := ( Xi-1(t) + 2Xi(t) + Xi+1(t) ) / 4 0 i N-1, 0 t < T
MODEL „Task and Channel” N = 8
Xi+1 Xi Xi Xi+1 Xi-1 Xi-1 Xi i 0, N-1
KOD dla Zi , i =1, ... N-2 : for t := 0 to T-1 do { Wyślij Xi ‘na lewo’ i ‘na prawo’; Odbierz Xi-1‘z lewej’; Odbierz Xi+1 ‘z prawej’; Oblicz Xi(t+1) ; }
MODEL „Message Passing” Xi+1 Xi Zi Zi+1 Zi-1 Xi Xi+1 Xi-1 Xi-1 Xi i 0, N-1
KOD dla Zi , i =1, ... N-2 : for t := 0 to T-1 do { Wyślij Xi do zadania Zi-1 i Zi+1; Odbierz Xi-1 od zadania Zi-1; Odbierz Xi+1 od zadania Zi+1; Oblicz Xi(t+1) ; }
PODZIAŁ • podział dziedziny (domain decomposition) • podział funkcjonalny (functional decomposition)
Po zaprojektowaniu podziału sprawdź : • Czy ilość zadań jest większa niż liczba procesorów • Czy unika się powtarzania obliczeń • Czy zadania mają podobny rozmiar • Czy ilość zadań zależy od rozmiaru problemu • Czy zdefiniowano kilka alternatywnych podziałów
KOMUNIKACJA • lokalna • globalna • strukturalna • niestrukturalna • statyczna • dynamiczna • synchroniczna • asynchroniczna
KOMUNIKACJA LOKALNA Metoda Jacobiego i metoda Gaussa-Seidla
KOMUNIKACJA GLOBALNA Równoległa operacja redukcji : S = i =0N-1Xi
Zmiana modelu - rozproszenie komunikacji i obliczeń Si = Xi + Si-1 i = 0 , ... , N-1 Strukturalna komunikacja, statyczna, regularna
Inny model - zastosowanie metody "dziel i zwyciężaj" Komunikacja strukturalna,statyczna, regularna, mała ilość sąsiadów. Dobre rozproszenie danych i obliczeń
Po zaprojektowaniu komunikacji sprawdź : • Czy wszystkie zadania wykonują mniej więcej taką samą ilość • operacji komunikacji • Czy każde zadanie komunikuje się z małą liczba sąsiadów • Czy komunikacja może przebiegać współbieżnie • Czy obliczenia w różnych zadaniach mogą przebiegać współbieżnie
AGLOMERACJA • Zwiększanie "rozmiaru" zadania • i zmniejszenie ilości przesyłanych danych między zadaniami • replikacja obliczeń • sklejanie kilku zadań w jedno zadanie
Po zaprojektowaniu aglomeracji sprawdź : • Czy aglomeracja zredukowała koszt komunikacji • przez zwiększenie lokalności • Jeśli aglomeracja wprowadza replikację obliczeń , • to czy jest z tego korzyść (mniejszy koszt np.) • ......
MAPOWANIE • Cel : zminimalizowanie całkowitego czasu wykonania obliczeń • Podstawowe strategie : • Zadania, które mogą wykonywać się współbieżnie • umieszczać na różnych procesorach • Zadania, które często się komunikują umieścić na jednym procesorze, • zwiększając lokalność komunikacji
Jak przydzielać ? : Problem NP - zupełny "Łatwo" : jeśli algorytmy używają techniki podziału dziedziny i jest stała liczba zadań o równym rozmiarze i strukturalnej lokalnej i globalnej komunikacji