metody komunikacji i synchronizacji w obliczeniach równoległych

23
Metody komunikacji Metody komunikacji i synchronizacji w i synchronizacji w obliczeniach obliczeniach równoległych równoległych Michał Radziszewski Michał Radziszewski

Upload: teneil

Post on 22-Jan-2016

56 views

Category:

Documents


0 download

DESCRIPTION

Metody komunikacji i synchronizacji w obliczeniach równoległych. Michał Radziszewski. Plan prezentacji. Potrzeba obliczeń równoległych Pamięć dzielona a odrębne maszyny Message Passing Klasyczne zadania synchronizacji Synchronizacja na jednym OS Superkomputery - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Metody komunikacjiMetody komunikacji i synchronizacji w i synchronizacji w

obliczeniach obliczeniach równoległychrównoległych

Michał RadziszewskiMichał Radziszewski

Page 2: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Plan prezentacjiPlan prezentacji

►Potrzeba obliczeń równoległychPotrzeba obliczeń równoległych►Pamięć dzielona a odrębne maszynyPamięć dzielona a odrębne maszyny►Message PassingMessage Passing►Klasyczne zadania synchronizacjiKlasyczne zadania synchronizacji►Synchronizacja na jednym OSSynchronizacja na jednym OS►SuperkomputerySuperkomputery► Inne podejście: karty graficzneInne podejście: karty graficzne

Page 3: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Potrzeba obliczeń Potrzeba obliczeń równoległychrównoległych

►Wydajność procesorów sekwencyjnychWydajność procesorów sekwencyjnych 2002r. Architektura NetBurst, Pentium 4, 2002r. Architektura NetBurst, Pentium 4,

ok. 3GHz maxok. 3GHz max 2008r. Architektura Core, Core 2 2008r. Architektura Core, Core 2

Duo/Quad, też ok. 3GHz maxDuo/Quad, też ok. 3GHz max Przez 6 lat wydajność przy tej samej częs-Przez 6 lat wydajność przy tej samej częs-

totliwości zwiększyła się zaledwie ok. 2.5xtotliwości zwiększyła się zaledwie ok. 2.5x Próby zwiększania częstotliwości ponad Próby zwiększania częstotliwości ponad

3GHz problematyczne, pobór prądu3GHz problematyczne, pobór prądu

Page 4: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Procesory wielordzenioweProcesory wielordzeniowe

► IntelIntel Pentium D, V 2005, konstrukcja nieudanaPentium D, V 2005, konstrukcja nieudana Core 2 Duo, VII 2006Core 2 Duo, VII 2006 Core 2 Quad, XI 2006 ($1000), $270 obecnieCore 2 Quad, XI 2006 ($1000), $270 obecnie

►AMDAMD Athlon X2, IV 2005, lepszy od Pentium DAthlon X2, IV 2005, lepszy od Pentium D Phenom, XI 2007, 4 rdzenie, błędy sprzętowePhenom, XI 2007, 4 rdzenie, błędy sprzętowe

►Wykorzystanie ich wymaga równoległości!Wykorzystanie ich wymaga równoległości!

Page 5: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Pamięć dzielonaPamięć dzielona

► Procesory wielordzenioweProcesory wielordzeniowe► Płyty wieloprocesorowePłyty wieloprocesorowe►Maksymalnie 4x4 rdzenieMaksymalnie 4x4 rdzenie, 320GFlops, 320GFlops, 256GB RAM, 256GB RAM► Superkomputery – wielokrotnie więcejSuperkomputery – wielokrotnie więcej

Page 6: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Message PassingMessage Passing

►Biblioteka MPI (Biblioteka MPI (Message Passing Message Passing InterfaceInterface))

►Wysyłanie komunikatów między Wysyłanie komunikatów między procesami, optymalne do pracy w procesami, optymalne do pracy w środowiskach rozproszonychśrodowiskach rozproszonych

►Ale: na jednej maszynie znacznie mniej Ale: na jednej maszynie znacznie mniej efektywne niż jeden wielowątkowy efektywne niż jeden wielowątkowy proces ze wspólną przestrzenią proces ze wspólną przestrzenią adresowąadresową

Page 7: Metody komunikacji  i synchronizacji w obliczeniach równoległych

MPI – podstawowe funkcjeMPI – podstawowe funkcje

►Podstawowe: Podstawowe: sendsend, , recvrecv – wersje – wersje synchroniczne, asynchroniczne, synchroniczne, asynchroniczne, nieblokujące, buforowanienieblokujące, buforowanie

►Bariera: Bariera: barrierbarrier – podział obliczeń na – podział obliczeń na dwa etapy, rozpoczęcie drugiego dwa etapy, rozpoczęcie drugiego możliwe dopiero wtedy gdy wszystkie możliwe dopiero wtedy gdy wszystkie procesy zakończą pierwszyprocesy zakończą pierwszy

►Komunikacja kolektywnaKomunikacja kolektywna

Page 8: Metody komunikacji  i synchronizacji w obliczeniach równoległych

MPI – komunikacja MPI – komunikacja kolektywnakolektywna

► Funkcje Funkcje scatterscatter, , gathergather scatterscatter rozrzuca kolejne elementy tablicy z rozrzuca kolejne elementy tablicy z

wybranego procesu do wszystkich procesówwybranego procesu do wszystkich procesów gathergather w analogiczny sposób zbiera elementy w analogiczny sposób zbiera elementy funkcje te stanowią punkt synchronizacjifunkcje te stanowią punkt synchronizacji

Page 9: Metody komunikacji  i synchronizacji w obliczeniach równoległych

MPI – komunikacja MPI – komunikacja kolektywnakolektywna

► Funkcje Funkcje allgatherallgather, , all_to_allall_to_all allgatherallgather – funkcja – funkcja gathergather w każdym procesie w każdym procesie all_to_allall_to_all – kombinacja – kombinacja funkfunkcji cji scatterscatter i i gathergather

funkcje te także stanowią punkt synchronizacjifunkcje te także stanowią punkt synchronizacji

Page 10: Metody komunikacji  i synchronizacji w obliczeniach równoległych

MPI – komunikacja MPI – komunikacja kolektywnakolektywna

► Funkcja Funkcja broadcastbroadcast – – sendsend do każdego do każdego procesu, złożoność procesu, złożoność logarytmicznalogarytmiczna

► Funkcja Funkcja reducereduce sekwencja funkcji sekwencja funkcji gathergather + operator + operator oo

oo musi być musi być łącznełączne

►Wariant Wariant allreduceallreduce

Page 11: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Klasyczne zadania Klasyczne zadania synchronizacjisynchronizacji

►Pamięć dzielona oraz odrębne maszynyPamięć dzielona oraz odrębne maszyny►Ograniczenia globalneOgraniczenia globalne

zasób krytycznyzasób krytyczny zakleszczeniazakleszczenia zagłodzeniazagłodzenia

►Własności bezpieczeństwa i żywotnościWłasności bezpieczeństwa i żywotności►Problem czytelników i pisarzyProblem czytelników i pisarzy►Problem jedzących filozofówProblem jedzących filozofów

Page 12: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Problem czytelników i pisarzyProblem czytelników i pisarzy

► Istnieje globalna struktura danych, do Istnieje globalna struktura danych, do której dostęp może uzyskać jednocześnie której dostęp może uzyskać jednocześnie dowolna ilość procesów czytających albo dowolna ilość procesów czytających albo jeden piszącyjeden piszący

►Kolejki czytelników i pisarzyKolejki czytelników i pisarzy►Pytanie: czy wpuszczać nowych Pytanie: czy wpuszczać nowych

czytelników gdy czeka co najmniej jeden czytelników gdy czeka co najmniej jeden pisarz?pisarz?

►Efektywność odczytu a zagłodzenie pisarzyEfektywność odczytu a zagłodzenie pisarzy

Page 13: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Problem jedzących filozofówProblem jedzących filozofów

► Każdy filozof do Każdy filozof do jedze-nia potrzebuje jedze-nia potrzebuje dwóch widelcówdwóch widelców

► Potencjalne zaklesz-Potencjalne zaklesz-czenie – gdy każdy z czenie – gdy każdy z nich weźmie 1 nich weźmie 1 widelec i czeka na widelec i czeka na drugidrugi

Page 14: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Synchronizacja przy jednym Synchronizacja przy jednym OSOS

►Obiekty nazwane i nienazwaneObiekty nazwane i nienazwane►WykluczanieWykluczanie

muteksy, sekcje krytycznemuteksy, sekcje krytyczne semaforysemafory

►ZdarzeniaZdarzenia►Funkcje współzależne (atomowe)Funkcje współzależne (atomowe)

long InterlockedExchangeAdd(long*, long)long InterlockedExchangeAdd(long*, long) long InterlockedExchange(long*, long)long InterlockedExchange(long*, long)

Page 15: Metody komunikacji  i synchronizacji w obliczeniach równoległych

SuperkomputerySuperkomputery

► Blue Gene\L – Blue Gene\L – najszybszy najszybszy współczesny współczesny superkomputersuperkomputer

► Lawrence Livermore Lawrence Livermore National LaboratoryNational Laboratory

► Moc 478 TFlops (od 2007r.)Moc 478 TFlops (od 2007r.)► 106 496 węzłów106 496 węzłów► Każdy węzeł 2x 700MHz Każdy węzeł 2x 700MHz

PowerPC, 2x 2.8 GFlops, PowerPC, 2x 2.8 GFlops, pamięć DRAMpamięć DRAM

► Pamięć Pamięć 2x 2x 32768 GB32768 GB

Page 16: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Blue Gene\L – Blue Gene\L – komunikacjakomunikacja

►Trzy sieci komunikacyjneTrzy sieci komunikacyjne trójwymiarowa sieć toroidalna do trójwymiarowa sieć toroidalna do

komunikacji komunikacji peer-to-peerpeer-to-peer między węzłami między węzłami, , routingrouting sprzętowy sprzętowy

specjalna sieć do komunikacji specjalna sieć do komunikacji kolektywnejkolektywnej, one-to all, all to all , one-to all, all to all broadcast, broadcast, topologia drzewatopologia drzewa

globalna sieć przerwańglobalna sieć przerwań, , szybkie barieryszybkie bariery

►Gigabit Ethernet – Gigabit Ethernet – sieciowy system sieciowy system plików oraz wejścia/wyjściaplików oraz wejścia/wyjścia

Page 17: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Blue Gene\L – Blue Gene\L – komunikacjakomunikacja

►Dodatkowo, niezależna sieć kontrolna Dodatkowo, niezależna sieć kontrolna umożliwiająca dostęp do każdego umożliwiająca dostęp do każdego węzła w celach konfiguracyjnych i węzła w celach konfiguracyjnych i diagnostycznychdiagnostycznych

Page 18: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Blue Gene\L – Blue Gene\L – oprogramowanieoprogramowanie

►Bardzo prosty system operacyjny, Bardzo prosty system operacyjny, złożony tylko na węzłach I/Ozłożony tylko na węzłach I/O

►Specjalizowana i zoptymalizowana Specjalizowana i zoptymalizowana implementacja MPIimplementacja MPI

►Specjalizowane biblioteki Specjalizowane biblioteki matematycznematematyczne

►Wsparcie dla języków C, C++, FortranWsparcie dla języków C, C++, Fortran

Page 19: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Blue Gene\L – Blue Gene\L – architekturaarchitektura

Page 20: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Karty graficzneKarty graficzne

► Nvidia 8800 GTX – 128 rdzeni w Nvidia 8800 GTX – 128 rdzeni w jednym procesorzejednym procesorze, ~330 GFlops, ~330 GFlops

► Tylko pojedyncza precyzjaTylko pojedyncza precyzja► Procesor nie jest dostosowany Procesor nie jest dostosowany

do dowolnych programówdo dowolnych programów►Działa dobrze jedynie dla zadań Działa dobrze jedynie dla zadań

o regularnych danych (np. o regularnych danych (np. macierze)macierze)

► Nie działa przeszukiwanie drzewNie działa przeszukiwanie drzew► Procesor strumieniowyProcesor strumieniowy

Page 21: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Karty graficzneKarty graficzne – SLI – SLI

► Obecnie można zamontować 3 karty do jednej Obecnie można zamontować 3 karty do jednej maszyny, co daje maszyny, co daje teoretycznieteoretycznie ~1TFlops ~1TFlops

► Można łączyć wiele maszyn z 3 kartami każdaMożna łączyć wiele maszyn z 3 kartami każda► Użycie jednocześnie CPU i procesora graficznegoUżycie jednocześnie CPU i procesora graficznego

Page 22: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Programowanie strumienioweProgramowanie strumieniowe

► Kernele operują na danych ze strumieniaKernele operują na danych ze strumienia► Każda operacja atomowaKażda operacja atomowa► Kolejne elementy ze strumienia mogą być Kolejne elementy ze strumienia mogą być

przetworzone w przypadkowej kolejnościprzetworzone w przypadkowej kolejności

Page 23: Metody komunikacji  i synchronizacji w obliczeniach równoległych

Dziękuję za uwagęDziękuję za uwagę