Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałAmelia Katarzyna Milewska Został zmieniony 9 lat temu
1
Metody komunikacji i synchronizacji w obliczeniach równoległych Michał Radziszewski
2
Plan prezentacji ► Potrzeba obliczeń równoległych ► Pamięć dzielona a odrębne maszyny ► Message Passing ► Klasyczne zadania synchronizacji ► Synchronizacja na jednym OS ► Superkomputery ► Inne podejście: karty graficzne
3
Potrzeba obliczeń równoległych ► Wydajność procesorów sekwencyjnych 2002r. Architektura NetBurst, Pentium 4, ok. 3GHz max 2008r. Architektura Core, Core 2 Duo/Quad, też ok. 3GHz max Przez 6 lat wydajność przy tej samej częs- totliwości zwiększyła się zaledwie ok. 2.5x Próby zwiększania częstotliwości ponad 3GHz problematyczne, pobór prądu
4
Procesory wielordzeniowe ► Intel Pentium D, V 2005, konstrukcja nieudana Core 2 Duo, VII 2006 Core 2 Quad, XI 2006 ($1000), $270 obecnie ► AMD Athlon X2, IV 2005, lepszy od Pentium D Phenom, XI 2007, 4 rdzenie, błędy sprzętowe ► Wykorzystanie ich wymaga równoległości!
5
Pamięć dzielona ► Procesory wielordzeniowe ► Płyty wieloprocesorowe ► Maksymalnie 4x4 rdzenie, 320GFlops, 256GB RAM ► Superkomputery – wielokrotnie więcej
6
Message Passing ► Biblioteka MPI (Message Passing Interface) ► Wysyłanie komunikatów między procesami, optymalne do pracy w środowiskach rozproszonych ► Ale: na jednej maszynie znacznie mniej efektywne niż jeden wielowątkowy proces ze wspólną przestrzenią adresową
7
MPI – podstawowe funkcje ► Podstawowe: send, recv – wersje synchroniczne, asynchroniczne, nieblokujące, buforowanie ► Bariera: barrier – podział obliczeń na dwa etapy, rozpoczęcie drugiego możliwe dopiero wtedy gdy wszystkie procesy zakończą pierwszy ► Komunikacja kolektywna
8
MPI – komunikacja kolektywna ► Funkcje scatter, gather scatter rozrzuca kolejne elementy tablicy z wybranego procesu do wszystkich procesów gather w analogiczny sposób zbiera elementy funkcje te stanowią punkt synchronizacji
9
MPI – komunikacja kolektywna ► Funkcje allgather, all_to_all allgather – funkcja gather w każdym procesie all_to_all – kombinacja funkcji scatter i gather funkcje te także stanowią punkt synchronizacji
10
MPI – komunikacja kolektywna ► Funkcja broadcast – send do każdego procesu, złożoność logarytmiczna ► Funkcja reduce sekwencja funkcji gather + operator o o musi być łączne ► Wariant allreduce
11
Klasyczne zadania synchronizacji ► Pamięć dzielona oraz odrębne maszyny ► Ograniczenia globalne zasób krytyczny zakleszczenia zagłodzenia ► Własności bezpieczeństwa i żywotności ► Problem czytelników i pisarzy ► Problem jedzących filozofów
12
Problem czytelników i pisarzy ► Istnieje globalna struktura danych, do której dostęp może uzyskać jednocześnie dowolna ilość procesów czytających albo jeden piszący ► Kolejki czytelników i pisarzy ► Pytanie: czy wpuszczać nowych czytelników gdy czeka co najmniej jeden pisarz? ► Efektywność odczytu a zagłodzenie pisarzy
13
Problem jedzących filozofów ► Każdy filozof do jedze- nia potrzebuje dwóch widelców ► Potencjalne zaklesz- czenie – gdy każdy z nich weźmie 1 widelec i czeka na drugi
14
Synchronizacja przy jednym OS ► Obiekty nazwane i nienazwane ► Wykluczanie muteksy, sekcje krytyczne semafory ► Zdarzenia ► Funkcje współzależne (atomowe) long InterlockedExchangeAdd(long*, long) long InterlockedExchange(long*, long)
15
Superkomputery ► Blue Gene\L – najszybszy współczesny superkomputer ► Lawrence Livermore National Laboratory ► Moc 478 TFlops (od 2007r.) ► 106 496 węzłów ► Każdy węzeł 2x 700MHz PowerPC, 2x 2.8 GFlops, pamięć DRAM ► Pamięć 2x 32768 GB
16
Blue Gene\L – komunikacja ► Trzy sieci komunikacyjne trójwymiarowa sieć toroidalna do komunikacji peer-to-peer między węzłami, routing sprzętowy specjalna sieć do komunikacji kolektywnej, one- to all, all to all broadcast, topologia drzewa globalna sieć przerwań, szybkie bariery ► Gigabit Ethernet – sieciowy system plików oraz wejścia/wyjścia
17
Blue Gene\L – komunikacja ► Dodatkowo, niezależna sieć kontrolna umożliwiająca dostęp do każdego węzła w celach konfiguracyjnych i diagnostycznych
18
Blue Gene\L – oprogramowanie ► Bardzo prosty system operacyjny, złożony tylko na węzłach I/O ► Specjalizowana i zoptymalizowana implementacja MPI ► Specjalizowane biblioteki matematyczne ► Wsparcie dla języków C, C++, Fortran
19
Blue Gene\L – architektura
20
Karty graficzne ► Nvidia 8800 GTX – 128 rdzeni w jednym procesorze, ~330 GFlops ► Tylko pojedyncza precyzja ► Procesor nie jest dostosowany do dowolnych programów ► Działa dobrze jedynie dla zadań o regularnych danych (np. macierze) ► Nie działa przeszukiwanie drzew ► Procesor strumieniowy
21
Karty graficzne – SLI ► Obecnie można zamontować 3 karty do jednej maszyny, co daje teoretycznie ~1TFlops ► Można łączyć wiele maszyn z 3 kartami każda ► Użycie jednocześnie CPU i procesora graficznego
22
Programowanie strumieniowe ► Kernele operują na danych ze strumienia ► Każda operacja atomowa ► Kolejne elementy ze strumienia mogą być przetworzone w przypadkowej kolejności
23
Dziękuję za uwagę
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.