1 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 , 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
2 STRONA GŁÓWNA PVM : STRONA GŁÓWNA MPI :
3 SCHEMAT KOMPUTERA
4 Próby przyspieszenia obliczeń na maszynach jednoprocesorowych:pamięć z przeplotami potokowość (pipelinning) wektoryzacja rozwijanie pętli
5 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
6 MULTIKOMPUTER
7
8 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 )
9 systemy z pamięcią dzieloną (wspólną) (multiprocesory) shared - memory systems MIMD systemy z pamięcią rozproszoną ( multikomputery) distributed-memory systems
10 Źródła złożoności programów równoległych :współbieżność ( concurrency ) skalowalność ( scalability ) lokalność ( locality ) modularność ( modularity ) determinizm (determinism)
11 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ą )
12 MODEL TASK- CHANNEL
13 PODSTAWOWE OPERACJE
14 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
15 MODEL „Task and Channel”
16 Xi+1 Xi Xi Xi+1 Xi-1 Xi-1 Xi i 0, N-1
17 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) ; }
18 MODEL „Message Passing”Xi+1 Xi Zi Zi+1 Zi-1 Xi Xi+1 Xi-1 Xi-1 Xi i 0, N-1
19 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) ; }
20
21
22
23 podział dziedziny (domain decomposition)podział funkcjonalny (functional decomposition)
24 Podział dziedziny
25 Podział funkcjonalny
26 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
27 KOMUNIKACJA globalna strukturalna niestrukturalna statyczna dynamicznalokalna globalna strukturalna niestrukturalna statyczna dynamiczna synchroniczna asynchroniczna
28 KOMUNIKACJA LOKALNA Metoda Jacobiego i metoda Gaussa-Seidla
29 KOMUNIKACJA GLOBALNA Równoległa operacja redukcji : S = i =0N-1Xi
30 Zmiana modelu - rozproszenie komunikacji i obliczeń Si = Xi + Si i = 0 , ... , N-1 Strukturalna komunikacja, statyczna, regularna
31 Inny model - zastosowanie metody "dziel i zwyciężaj"Komunikacja strukturalna,statyczna, regularna, mała ilość sąsiadów. Dobre rozproszenie danych i obliczeń
32 KOMUNIKACJA NIESTRUKTURALNA
33 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
34 AGLOMERACJA Zwiększanie "rozmiaru" zadaniai zmniejszenie ilości przesyłanych danych między zadaniami replikacja obliczeń sklejanie kilku zadań w jedno zadanie
35
36
37
38
39
40 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.) ......
41 Cel : zminimalizowanie całkowitego czasu wykonania obliczeń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
42 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