750 likes | 949 Views
Wprowadzenie, architektury równoległe i obliczenia równoległe, klastry. Materiały: “Designing and Building Parallel Programs”, Ian Foster, Addison Wesley, 1995 http://wotug.ukc.ac.uk/parallel/books/addison-wesley/dbpp/text/book.html
E N D
Wprowadzenie, architektury równoległe i obliczenia równoległe, klastry
Materiały: “Designing and Building Parallel Programs”, Ian Foster, Addison Wesley, 1995 http://wotug.ukc.ac.uk/parallel/books/addison-wesley/dbpp/text/book.html “MPI: the Complete Reference”, Marc Snir, Steve Otto, Steven Huss-Lederman, David Walker, Jack Dongarra, The MIT Press, 1995 http://www.netlib.org/utk/papers/mpi-book/mpi-book.html Tutorial z przykładami: http://www-unix.mcs.anl.gov/mpi/tutorial/gropp/talk.html MPI Forum http://www.mpi-forum.org Glosariusz funkcji i procedur MPI: http://www-rocq.inria.fr/~kern/MPI/ Strona MPICH (wersja MPI opracowana na Uniwersytecie Michigan http://www-unix.mcs.anl.gov/mpi/mpich
“Obliczenia równoległe i rozproszone”, Praca zbiorowa pod redakcją Andrzeja Karbowskiegoi Ewy Niewiadomskiej-Szynkiewicz Oficyna Wydawnicza Politechniki Warszawskie, 2001 “Using MPI” William Gropp, Ewing Lusk, Anthony Skjellum, The MIT Press, Cambridge Massachussetts, London, 1999 “Using MPI2” William Gropp, Ewing Lusk, Rajeev Thakur, The MIT Press, Cambridge Massachussetts, London, 1999
Przetwarzanie równoległe • Równoległość procesowa: współpraca elementów, z których każdy wykonuje określone zadanie, służące realizacji wspólnego celu (budowa, duża organizacja) • Równoległość tablicowa: każdy element wykonuje dokładnie takie samo zadanie (musztra, aerobik) • Równoległość potokowa: każdy element wykonuje zadanie inne niż pozostałe ale zawsze to samo (taśma produkcyjna).
O możliwości obliczeń równoległych wspomniano po raz pierwszy na długo przed skonstruowaniem pierwszej praktycznej maszyny obliczeniowej: "When a long series of identical computations is to be performed, such as those required for the formation of numerical tables, the machine can be brought into play so as to give several results at the same time, which will greatly abridge the whole amount of the processes."w “Sketch of the Analytical Engine invented by Charles Babbage” by L.F. Menabrea(1842). …jednak trudności techniczne spowodowały, że praktyczna realizacja rozpoczęła się dopiero w późnych latach 60-tych. Pierwszy komputer równoległy: ILLIAC IV, Uniwersytet Illinois, USA (lata siedemćdziesiąte). Wczesne obliczenia równoległe polegały głównie na przetwarzaniu wektorowym i macierzonym.
Obliczenia współbieżne: takie programy, procesy i wątki, które są w trakcie wykonywania w tym samym czasie • Obliczenia równoległe: obliczenia, w których pewne procesy są realizowane jednocześnie na wielu maszynach lub przez wiele procesów czy procesorów • Obliczenia rozproszone: obliczenia realizowane na wielu komputerach połączonych siecią • obliczenia na klastrach gdzie maszyny są połączone siecią lokalną • obliczenia gridowe gdzie maszyny są połączone siecią rozległą • usługi sieciowe przy użyciu aplikacji dostępnych globalnie
Czym jest komputer równoległy? Jest to system umożliwiający równoczesne przetwarzanie wielu wątków obliczeniowych. E S Klasyczny komputer Turinga E S Komputer równoległy czas
Motywacja obliczeń równoległych • Potrzeba - konstrukcja szybszych procesorów nie nadąża za rosnącymi potrzebami obliczeń w nauce i technice, ekonomii, zarządzaniu, itp. • Ekonomia - kilka wolniejszych procesorów jest znacznie tańszych (również w eksploatacji), niż jeden superszybki. • Nieprzekraczalne prawa fizyki - w tej chwili w konstrukcji procesorów dochodzi się już do granic wyznaczonych przez prędkość światła i ziarnistą strukturę materii.
Prognoza pogody dla Polski Pogoda(długość geograficzna, szerokość geograficzna, wysokość, czas) PogodaÎR6 (temperatura, ciśnienie, wilgotność, prędkość wiatru (3 liczby)) Reprezentacja: Pogoda(i, j, l, k) Metoda przewidywania pogody: rozwiązywanie numeryczne równania Naviera-Stokesa metodą siatek przy danych warunkach brzegowych
Założenia: • obszar Polski przybliżony jest kwadratem 700 ´ 700 km • bierzemy pod uwagę warstwy 15 km atmosfery n.p.m. • wyznaczenie nowej wartości dla każdej komórki wymaga 100 operacji (100 flop) • czas wyprzedzenia prognozy – 4 dni • dyskretyzacja w przestrzeni – 100 m, w czasie – 5 minut • prognoza musi być wyliczona po 15 minutach • 1 liczba rzeczywista zajmuje 8 bajtów pamięci komórek siatki przestrzennej operacji zmiennoprzecinkowych potrzebna moc obliczeniowa potrzebna pamięć
Tymczasem na pojedynczym procesorze jesteśmy w stanie osiągnąć 0.5 – 1 GFlopa. Na prognozę pogody za 4 dni musielibyśmy czekać od 1 do 2 tygodni. Lepiej zatrudnić bacę. Oszacujmy jakie rozmiary musiałaby mieć pojedyncza komórka pamięci, jeżeli wyniki chcielibyśmy dostać za 15 minut… Największa odległość procesora od pamięci Pamięć 0.35 TB przy architekturze dwuwymiarowej odpowiada siatce 600000 ´600000 słów Wymiar liniowy pojedynczej komórki pamięci:
Zalety obliczeń równoległych • Przyspieszenie obliczeń • Zwiększenie dokładności lub niezawodności • Umożliwienie wykonania obliczeń przekraczających możliwości szybkości lub pamięci maszyn sekwencyjnych
Zastosowanie obliczeń równoległych • Prognoza pogody • Modelowanie zmian klimatu • Przeszukiwanie baz danych • Animacja wysokorozdzielcza • Budownictwo i inżynieria • Hydrodynamika • Modelowanie molekularne • Biologia molekularna • Genetyka i medycyna • Astronomia i kosmologia • Fizyka cząstek elementarnych
Taksonomia architektur równoległych Multiple instruction Single instruction Single Instruction Single Data Single Instruction Multiple Data Multiple Instruction Single Data Multiple Instruction Multiple Data Shared Memory Distributed Memory Virtual Shared Memory
Single Instruction Multiple Data – pamięć współdzielna – maszyna wektorowa Operacje na wektorach danych (np. mnożenie skalarne wektorów, sumowanie współrzędnych wektora) CDC Cyber 205 Cray 1 Cray 2 Cray 3 Fujitsu VPX 2000 Hitachi S3600
Single Instruction Multiple Data – pamięć rozproszona – tablica procesorów Zastosowanie: Przetwarzanie obrazów Przykłady: ICL Distributed Array Processor (DAP); Thinking Machine Corporation's CM-200
Multiple Instruction Multiple Data memory Pamięć dzielona Pamięć rozproszona SGI PowerChallenge
Podana klasyfikacja opisuje architektury wyidealizowane. Bardzo często rzeczywiste maszyny są mieszaniną architektur różnych typów. Przykładem jest architektura wirtualnej pamięci dzielonej (VSM), gdzie każdy procesor posiada swoją własną pamięć, jednak wszystkie procesory posiadają również globalną przestrzeń adresową, do której mają bezpośredni dostęp. Przykładem maszyny VSM jest Cray T3D.
Schematy połączeń w architekturach rozproszonych pierścień sieć torus hipersześcian
SP2: Architektura • Klaster maszyn SMP Interconnect Memory CPU CPU
Nodes SP2: Sieć komunikacyjna • Procesory są dołączone do przełączników; każdy przełącznik łączy 16 procesorów. Takie grupy 16 procesorów są połączone w większą sieć. Switch Board
SP2: parametry sieci komunikacyjnej • Maksymalna szybkość transmisji: 2.4 GB/s • Opóźnienie (latency) ok. 2 ms. • Średnia szybkość transmisji: 185 Mbyte/s (1.5GB)
SP2: Konfiguracja I/O • Nody mają lokalne dyski SCSI. • Wszystkie nody mają równy dostęp do globalnego równoległego systemu plików (Global Parallel File System; GPFS) • Komunikacja z GPFS: • Nody do nody na której jest posadowiony GPFS poprzez IP • Nod na którym jest GPFS do macierzy dyskowej poprzez pętlę SSA (Serial Storage Architecture)
SP2: Konfiguracja I/O Disk Array GPFS Nodes Nodes Switch Switch
Klastry Większość obecnie używanych komputerów równoległych toklastryo architekturze mieszanej. Klasterjest układem niezależnych jednostek obliczeniowych połączonych siecią komunikacyjną. Zwykle każda jednostka posiada niezależną pamięć (jednak jednostka może zawierać kilka procesorów ze wspólną pamięcią). Taki typ architektury równoległej jest bardzo elastyczny.
Pamięć współdzielna Klastry • Superklastry: Szybkie procesory + bardzo szybka siećKlaster BigBen w Pittsburgh Supercomputer Center, JuGene w Forschungszentrum Juelich • Klastry wyspecjalizowane: Szybkie procesory + szybka siećIBM SP2 • Profesjonalne klastry typu Beowulf: Szybkie procesory + szybka sieć (>1GB; Myrinet, Giganet)Holkw CI TASK • Standardowe klastry typu Beowulf: Szybkie lub standardowe procesory + standardowa sieć (10-100MB)Większość klastrów PC (matrix, piasek) • Klastry rozproszone: Standardowe procesory połączone siecią Internet folding@home, Clusterix Szybkość komunikacji Pamięć rozproszona
Matrix – klaster PC do obliczeń równoległych w laboratorium H.A. Scheragi • 196 dwuprocesorowych komputerów PC (382 procesory) • Nody PIII lub K7 połączone switchem HP 7000 ProCrve. • System operacyjny Linux • Message Passing Interface (MPICH) dla przetwarzania równoległego • Portable Batch System (PBS) dla kontroli zadań • Kompilatory z Portland Group (Fortran 90, Fortran 77, C and C++)
Cele zrównoleglenia i zadania z nim związane • Efektywny kod równoległy powinien zapewnić wykorzystanie wszystkich procesorów przez cały czas (load-balancing) oraz zawierać tylko niezbędną komunikację między procesorami. • Największym problemem jest zawsze dekompozycja algorytmu na podzadania równoległe, które muszą być od siebie niezależne lub słabo zależne. Te podzadania nazywamy ziarnami, które są rozdzielane pomiędzy procesory. Wyróżnia się dwa typy dekompozycji: dekompozycję funkcjonalną oraz dekompozycję danych. • Realizacja powyższego zadania wymaga długiej pracy wysoko wykwalifikowanych programistów. • W ogromnej większości przypadków algorytm nie może być do końca zrównoleglony.
Dekompozycja zadań • Dekompozycja trywialna • Dekompozycja funkcjonalna • Dekompozycja danych Narzuty związane z obliczeniami równoległymi (overhead): opóźnienie komunikacji (latency), czas komunikacji, synchronizacja, itp.
Dekompozycja trywialna Algorytm jest złożony z części zupełnie od siebie niezależnych Przykłady: Wykonanie dużej liczby minimalizacji funkcji, obliczanie średnich metodą Monte Carlo. W przypadku dekompozycji trywialnej komunikacja między procesorami jest niepotrzebna.
Dekompozycja funkcjonalna: przetwarzanie taśmowe (pipelining) W przypadku dekompozycji funkcjonalnej zadanie zostaje rozbite na bloki, które muszą być dla określonych danych wykonywane sekwencyjnie. Kolejne moduły są realizowane przez różne procesory i przetewarzają po kolei różne dane. Przetwarzanie obrazu
Dekompozycja funkcjonalna: farmy zadań Dane są dzielone na ziarna, którymi zawiaduje wybrany procesor główny (nadzorca). Nadzorca rozdziela dane do przetworzenia pomiędzy robotników (lub niewolników). Po wykonaniu zadania każdy robotnik zwraca wynik do kolektora wyników, którym jest zwykle nadzorca. Nadzorca Robotnik 1 Robotnik 2 Robotnik 3 Robotnik 4 Kolektor wyników
Dekompozycja danych Te same obliczenia są wykonywane przez wszystkie procesory dla różnych części danych Przykład: Obliczanie energii układu molekularnego f(1,1,1,1) f(1,1,1,2) f(1,1,1,3) … f(1,1,2,1) f(1,1,2,2) f(1,1,2,3) … …
f(1,1,1,1) f(1,1,1,2) … f(k1,k2,k3,k4) f(k1+1,k2+1,k3+1,k4+1) … f(l1,l2,l3,l4) . . . f(n1,n2,n3,n4) Procesor 1 Procesor 2 . . . Procesor p Energia całkowita
n - wielkość zadania p - liczba procesorów T(n,p) – czas wykonania Sprawność programu równoległego w(n) – liczba operacji związanych z wykonywaniem obliczeń h(n,p) – narzuty na komunikacje
Prawo Amdahla p – liczba procesorów n – wielkość zadania tsingle=T(n,1) – czas wykonania zadania na 1 procesorze b(n) – udział części nie dającej się zrównoleglić
Prawo Gustafsona Zwykle b maleje ze wzrostem rozmiaru problemu. Jeżeli założymy że tserial jest zawsze stałe (np. na I/O) a liczbę procesorów zwiększamy proporcjonalnie do rozmiaru problemu, przyspieszenie wyraża się następująco (primy oznaczają, że punktem odniesienia są czasy na p procesorach):
Przypadek gdy b(n)=b S(p) p
Dewastujący wpływ synchronizacji na przyspieszenie (symulacje dynamiki molekularnej z wymianą replik) bez synchronizacji z synchronizacją
Badania skalowalności • Słaby test skalowalności (weak scalability test): niezależnie od liczby procesorów, każdemu procesorowi przydzielamy zawsze taką samą ilość pracy (tak jak przy wyprowadzaniu prawa Gustafsona). • Silny test skalowalności (strong scalability test): dla każdej liczby procesorów całkowita ilość pracy do wykonania jest stała.
Oprogramowanie do obliczeń równoległych • System operacyjny • Języki wysokiego poziomu • Kompilatory • Biblioteki procedur numerycznych • Biblioteki do sterowania zadaniami • Narzędzia do wspomagania programowania, uruchamiania i profilowania
Paradygmaty programowania równoległego • Możliwe rzadkie używanie bariery • Minimalizacja czasu zajmowanego przez mechanizmy synchronizacji (pamięć wspólna) • Minimalizacja czasu zajmowanego przez mechanizmy komunikacji (pamięć rozproszona)
Stopień ziarnistości obliczeń równoległych • Ziarnistość opisuje ilość operacji obliczeniowych między punktami synchronizacji • Ilość danych przypadająca na procesor, częstotliwość komunikacji i synchronizacji • Grube ziarno, ang. coarse grain • Drobne ziarno, ang. fine grain