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
SCHEMAT KOMPUTERA
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
MULTIKOMPUTER
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-memory systems
Ź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ą )
MODEL TASK- CHANNEL
PODSTAWOWE OPERACJE
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”
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ł dziedziny (domain decomposition) podział funkcjonalny (functional decomposition)
Podział dziedziny
Podział funkcjonalny
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 globalna strukturalna niestrukturalna statyczna dynamiczna 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ń
KOMUNIKACJA NIESTRUKTURALNA
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.) ......
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
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