Przetwarzanie równoległesprzęt 2 Rafał Walkowiak Wybór 4.0.204 7.0.2
Sieci połączeń komputerów równoległych () Zadanie: przesyłanie danych pomiędzy węzłami przetwarzającymi Parametry: liczba wejść, wyjść, zdolność jednoczesnego łączenia, siła sygnału, długość łącza. Sieci połączeń: statyczne lub dynamiczne Sieci statyczne (ang. direct network) łącza komunikacyjne punkt-punkt, bezpośrednie sieci połączeń. Sieci dynamiczne (ang. indirect network) - łącza i przełączniki, np. ścieżka przepływu danych pomiędzy procesorem a bankami pamięci jest tworzona na bieżąco za pomocą przełączników łączących łącza. 7.0.2 2 2
Sieci połączeń komputerów równoległych (2) Sieć statyczna Sieć dynamiczna procesor złącze sieci element przełączający 7.0.2 3 3
Sieci połączeń komputerów równoległych (3) Przełączniki (ang. switch) zbiór portów wejściowych i wyjściowych (stopień przełącznika), buforowanie danych - przy konflikcie wyjścia, zmienna marszrutyzacja - obniżanie zagęszczenia ruchu, zwielokrotnienie (ang. multicast) - te same dane do wielu wyjść, powiązanie wejść i wyjść realizowane za pomocą: przełącznic, wieloportowych pamięci, multiplexerów-demultiplexerów, multiplexowanych magistral. Złącza sieci (ang. network interface) dostarczanie i odbieranie danych z sieci, pakietyzacja, określanie danych trasowania komunikatów, dostosowywanie prędkości buforowanie, sprawdzanie błędów transmisji. występują na magistrali I/O lub magistrali pamięci procesora. 7.0.2 4 4
Topologie sieci połączeń Magistrala: Medium wspólne dla wszystkich węzłów Czas dostępu ograniczony przez liczbę węzłów przyłączonych do magistrali brak skalowalności przepustowości - źle Koszt sieci rośnie liniowo ze wzrostem liczby przyłączonych węzłów dobrze. Wprowadzenie pamięci podręcznej znacznie obniża wymagania na przepustowość współdzielonej przez procesory magistrali. 7.0.2 5 5
Topologie sieci połączeń Przełącznica krzyżowa (ang. crossbar network) Cecha: brak blokowania procesorów realizujących dostęp do różnych portów pamięci: liczba banków >liczby procesorów Wada: brak skalowalności kosztu, jeżeli b>p, liczba przełączników = pb > p 2 szybko rośnie z p procesory - p banki pamięci b Element przełączający 7.0.2 6 6
Topologie sieci połączeń Wielopoziomowe sieci połączeń Po oziom 3 Poziom 2 po oziom 7.0.2 7 7
Sieć omega Dla p wejść i p wyjść sieć składa się z log p poziomów Na każdym z poziomów p/2 przełączników 2 we/2wy ; W zależności od zgodności n-tego bitu numerów źródła i przeznaczenia dane na n- tym poziomie są przesyłane wprost lub na krzyż przez przełącznik. Wejścia sieci (wyjścia poziomów) i z wejściami kolejnych poziomów przełączników j połączone etapów zgodnie z regułą: j= 2i dla 0<=i<=p/2- j=2i+-p dla p/2<=i<=p- Sieć idealnie przetasowana (ang. perfect shuffle) rysunek obok 000 00 00 0 00 0 0 000 00 00 0 00 0 0 7.0.2 8 8
Sieć omega (przykład łączenia) 000 00 00 0 00 0 0 000 00 00 0 00 0 0 Sieć połączeń omega jest siecią blokującą: realizacja połączenia między 00 i 00 oraz 0 i 0 wymaga korzystania z tego samego łącza między poziomem i 2 sieci. 7.0.2 9 9
Statyczne sieci połączeń Sieć pełna: bezpośrednie połączenie pomiędzy każdymi dwoma wierzchołkami, statyczny odpowiednik sieci na tablicy przełaczników Gwiazda: jeden procesor procesorem centralnym (jest wąskim gardłem), przekazuje komunikaty pomiędzy każdymi dwoma pozostałymi węzłami, połączenie podobne do magistrali. Łańcuch: każdy węzeł oprócz pierwszego i ostatniego ma dwóch sąsiadów. Łańcuch zamknięty (pierścień): każdy z węzłów ma dwóch sąsiadów. 7.0.2 0 0
Statyczne sieci połączeń: k-d krata (mesh) Topologie sieci połączeń Zawierają k węzłów umieszczonych w każdym spośród d wymiarów k=n, d= łańcuch k=n, zamknięta to D wymiarowy torus k=2, D wymiarowa hyperkostka 0 2-2-2 2-3 00 0 0 00 0 0 0 00 0 0 4-2 4-2 zamknięta 0 00 0 Numeracja: Procesor w kolejnym wymiarze uzyskuje wartość na kolejnej pozycji binarnej numeracji. Odległość: między węzłami jest równa liczbie różniących się pozycji w binarnej numeracji węzłów. 7.0.2
Drzewiaste topologie sieci połączeń Sieć połączeń typu drzewo posiada jedno połączenie pomiędzy dowolną parą węzłów. Szczególne wersje drzew to gwiazda i łańcuch. Drzewo statyczne posiada element przetwarzający w każdym węźle drzewa, drzewo dynamiczne układ przełączający. Drzewa charakteryzują się dużymi wymaganiami na przepustowość wyższych poziomów. Rozwiązanie stanowi zwiększenie liczby łączy komunikacyjnych i przełączników na wyższych poziomach drzewa dynamicznego drzewo grube (ang. Fat tree). Węzeł przetwarzający Węzeł przełączający 7.0.2 2 2
Miary efektywności statycznych połączeń komunikacyjnych Średnica sieci (ang. diameter) maksymalna odległość pomiędzy dwoma węzłami przetwarzającymi. Spójność krawędziowa (ang. Connectivity) - liczby równoczesnych możliwych połączeń pomiędzy węzłami przetwarzającymi, pozytywna jest wysoka. Szerokość kanału (łącza) liczba bitów jednocześnie przekazywana przez łącze liczba fizycznych linii sygnałowych. Przepustowość łącza szerokość kanału * prędkość kanału Szerokość połowienia sieci (ang. bisection width) minimalna liczba łączy komunikacyjnych, które muszą być usunięte w celu podziału sieci na dwie równe połowy. Przepustowość połowienia sieci przepustowość łącza * szerokość połowienia sieci Koszt sieci liczba łączy w sieci lub wielkość szerokości połowienia sieci 7.0.2 3 3
Ocena efektywności statycznych połączeń komunikacyjnych - wartości Typ sieci Pełna Gwiazda drzewo binarne pełne2 log((p+)/2) Łancuch Krata (mesh) 2d Krata (mesh) 2d zamknięta Hyperkostka Zamknięta k krotna krata d wymiarowa 2 p- Średnica 2( p ) 2 p /2 log p d k /2 Szerokość połowienia p 2 /4 2 p ½p 2k d- Spójność krawędziowa p- log p Koszt p(p-)/2 p- p- 7.0.2 4 p 2 4 2d 4 p- 2(p- p) 2p (p logp)/2 dp
Miary efektywności dynamicznych połączeń Średnica maksymalna liczba węzłów przełączających na drodze między 2 węzłami Spójność krawędziowa (ang. arc connectivity) wymagana liczba łącz do usunięcia dla podziału sieci. Szerokość połowienia minimalna liczba łączy, które musza być usunięte dla podziału na dwie sieci o równej liczbie węzłów przetwarzających. Koszt koszt łączy i koszt węzłów przełączających. Typ sieci Przełącznica krzyżowa Omega gdzie p liczba węzłów końcowych Średnica Szerokość połowienia log p p p/2 Spójność krawędziowa 2 Koszt (liczba przełączników) p 2 p/2 log p Drzewo dymaniczne 2log p p- 7.0.2 5 5
Wymiana komunikatów w systemach równoległych () Inne cechy niż w systemach rozproszonych: grupowe operacje wymiany danych na wielu ścieżkach równolegle, specyficzna architektura sieci komunikacyjnej. Typy operacji wymiany danych: do - każdy wysyła jeden i każdy odbiera jeden, rozgłaszanie (ang. broadcasting) - ta sama informacja jest rozsyłana z jednego procesora do wszystkich pozostałych, plotkowanie (ang. gossiping) - każdy procesor wysyła tę samą informację do pozostałych, scattering jeden procesor rozsyła różne dane do pozostałych, gathering jeden procesor zbiera dane od pozostałych, multiscattering/multigathering każdy procesor uczestniczy w wysyłaniu/odbieraniu danych. 7.0.2 6 6
Wymiana komunikatów w systemach równoległych (2) Kryteria optymalizacji wymiany komunikatów: minimalizacja czasu wymiany danych, np. minimalizacvja opóźnienia sieciowego (ang. network latency) - czasu przejścia przez sieć w najgorszym przypadku, maksymalizacja przepustowości sieci (liczba przesyłanych komunikatów, liczba bajtów w jednostce czasu), niezawodność zdolność unikania zakleszczeń, odporność komunikacji na uszkodzenia poszczególnych połączeń. 7.0.2 7 7
Wymiana komunikatów w systemach równoległych (3) Komunikat (dowolnej długości) podstawowa jednostka logiczna wymiany informacji między węzłami sieci. Pakiet (stałej długości) podstawowa jednostka fizyczna wymiany informacji między węzłami sieci, zawiera: adres docelowy, numer kolejny w ramach komunikatu pozwala na odtworzenie komunikatu przy różnej kolejności dostarczania, różnymi drogami. Flit słowo - część składowa komunikatu - nie posiada struktury logicznej, mniejszy niż pakiety. 7.0.2 8 8
Koszty przesyłania komunikatów Parametry określające koszty przesyłania komunikatów: czas inicjowania komunikacji (ang. startup time) t s przygotowanie komunikatu, wykonanie algorytmu routingu, nawiązanie połączenia z ruterem. Działania realizowane jednorazowo na transmisję. czas przejścia przez odcinek sieci - (ang. per-hop time) t h (opóźnienie węzła) czas na przejście nagłówka komunikatu do kolejnego - bezpośrednio połączonego węzła sieci związany z określeniem wyjścia przez które komunikat ma opuścić węzeł. czas transmisji słowa (ang. per word transfer time) t w - czas przesłania przez łącze jednego słowa komunikatu; jest odwrotnością przepustowości kanału, uwzględnia narzuty sieci i buforowania. 7.0.2 9 9
Koszty przesyłania komunikatu w komputerach równoległych Techniki przekazywania (rutowania) komunikatów w komputerach równoległych: store-and-forward cut-through routing store-and-forward routing (przesyłanie poprzez zapisanie komunikatu i przekazanie dalej) komunikat jest przesyłany w całości między pośredniczącymi węzłami jest w całości buforowany t comm = t s +(mt w +t h )l gdzie m wielkość komunikatu a l liczba łączy węzły sieci p3 p2 p p0 czas 7.0.2 20 20
Koszty przesyłania komunikatu w komputerach równoległych(2) packet routing (przekazywanie komunikatów poprzez przesyłanie pakietów) komunikat dzielony na pakiety transmitowane i buforowane oddzielnie t comm = t s +t h l +mt w* gdzie t w* = t podziału +t w uwzględniające wzrost rozmiaru komunikatu p3 p2 p p0 czas 7.0.2 2 2
Koszty przesyłania komunikatu w komputerach równoległych cut-through routing (wormhole routing) dalsza minimalizacja czasu wszystkie pakiety tą samą droga (brak przełączania) dostarczanie w kolejności nadawania (brak numeracji) kontrola błędów na poziomie komunikatu - nie pakietu (mniejsze narzuty detekcji i korekcji błędu) proste mechanizmy detekcji błędów, gdyż mało błędów wpierw przesłanie pakietu nagłówkowego dla nawiązania połączenia i rezerwacji ścieżki a następnie tą samą drogą flity, flity po odbiorze w węźle pośrednim przesyłane natychmiast dalej czas komunikacji t comm = t s +t h l +mt w z wzoru wynika, że minimalizacja czasu komunikacji możliwa poprzez: przesyłanie danych zblokowanych (wiele komunikatów razem), minimalizacja ilości danych przesyłanych, minimalizacja odległości. niebezpieczeństwo zakleszczenia w przypadku przeciążenia sieci połączeń modyfikacja wartości t w* =t w p/b; b = szerokość podziału sieci p liczba procesorów t 7.0.2 22 22