metody komunikacji i synchronizacji w obliczeniach równoległych
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 PresentationTRANSCRIPT
Metody komunikacjiMetody komunikacji i synchronizacji w i synchronizacji w
obliczeniach obliczeniach równoległychrównoległych
Michał RadziszewskiMichał Radziszewski
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
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
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!
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
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ą
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
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
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
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
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
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
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
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)
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
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
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
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
Blue Gene\L – Blue Gene\L – architekturaarchitektura
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
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
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
Dziękuję za uwagęDziękuję za uwagę