Wydajność komunikacji grupowej w obliczeniach równoległych Krzysztof Banaś Obliczenia wysokiej wydajności 1
Sieci połączeń Topologie sieci statycznych: Sieć w pełni połączona Gwiazda Kraty: 1D, 2D, 3D Drzewa: zwykłe lub tłuste Hiperkostki: 1D, 2D, 3D itd.. Wymiar d, liczba procesorów 2^d Bitowy zapis położenia węzła Najkrótsza droga między 2 procesorami = ilość bitów, którymi różnią się kody położenia procesorów Krzysztof Banaś Obliczenia wysokiej wydajności 2
Sieci połączeń Parametry: I. Średnica maksymalna odległość dwóch węzłów II. Połączalność krawędziowa (arch connectivity) minimalna liczba krawędzi koniecznych do usunięcia dla podziału sieci na dwie sieci rozłączne miara m.in. odporności na uszkodzenia III. Szerokość połowienia (bisection width) minimalna liczba krawędzi koniecznych do usunięcia dla podziału sieci na dwie równe sieci rozłączne (razem z przepustowością pojedynczego kanału daje przepustowość przepołowienia (bisection bandwidth) miara m.in. odporności na przepełnienia IV.Koszt np. szacowany liczbą drutów. V. Inne np. liczba połączeń pojedynczego węzła, możliwości komunikacyjne łączy (half duplex, full duplex), itp. Krzysztof Banaś Obliczenia wysokiej wydajności 3
Sieci połączeń Porównanie sieci statycznych: I II III IV sieć w pełni połączona 1 p 1 (p^2)/4 p(p 1)/2 sieć gwiaździsta 2 1 1 p 1 szereg p 1 1 1 p 1 pierścień p/2 2 2 p krata 2D bez zawijania 2( p 1) 2 p 2(p p) torus 2D 2( p / 2) 4 2 p 2p drzewo binarne zupełne 2log(p/2+1/2) 1 1 p 1 hiperkostka log p log p p/2 p(log p)/2 Krzysztof Banaś Obliczenia wysokiej wydajności 4
Przypomnienie Czas przesłania pojedynczego komunikatu o rozmiarze m bajtów poprzez sieć składającą się z l odcinków o parametrach: ts czas inicjacji sieci th czas przełączenia w pojedynczym węźle tw czas przesłania 1 bajta pomiędzy sąsiednimi węzłami Routing SF (store and forward): ts + l * ( t h ) Routing CT (cut through, wormhole): ts + lt h Dla większości sieci można posługiwać się uproszczonym wzorem przybliżonym: t s Krzysztof Banaś Obliczenia wysokiej wydajności 5
Rozgłaszanie jeden do wszystkich Algorytm dla hiperkostki: T r_jdw ) log(p) Algorytmy dla innych topologii (routing CT) różnią sie tylko składnikiem zawierającym czas przełączania t h Dla liczby procesorów rzędu tysięcy składnik ten może być znaczący Redukcja wszyscy do jednego posiada ten sam schemat co rozgłaszanie Krzysztof Banaś Obliczenia wysokiej wydajności 6
Rozgłaszanie wszyscy do wszystkich (routing SF i CT) (inaczej zbieranie wszyscy do wszystkich, allgather): Algorytm dla pierścienia: T r_wdw_pierścień ) (p 1) Algorytm dla kraty 2D z zawinięciami (torusa): T r_wdw_torus = 2t s ( p 1) (p 1) Algorytm dla hiperkostki: T r_wdw_hiper = t s log p (p 1) Składnik mt w (p 1) jest dolnym oszacowaniem czasu komunikacji wynikającym z rozmiaru przesyłanych danych Krzysztof Banaś Obliczenia wysokiej wydajności 7
Redukcja wszyscy do wszystkich Dla każdej architektury można je zorganizować jako redukcję wszyscy do jednego, po którym następuje rozgłaszanie jeden dowszystkich Dla hiperkostki można opracować lepszy schemat, wykorzystujący rozgłaszanie wszyscy do wszystkich (jedyna różnica jest taka, że w każdym węźle sumuje się przesyłane wartości, a rozmiar komunikatu zawsze wynosi 1): T g_wdw_hiper + t w ) log p Krzysztof Banaś Obliczenia wysokiej wydajności 8
Rozpraszanie jeden do wszystkich Dla każdej architektury można je zorganizować wykorzystując schemat rozgłaszania wszyscy do wszystkich i odpowiednie manipulacje zawartością komunikatów Czas realizacji rozpraszania jeden do wszystkich jest taki sam jak czas rozgłaszania wszyscy do wszystkich Zbieranie wszyscy do jednego jest realizowane za pomocą identycznego schematu (z odwróceniem kierunku przesyłania komunikatów) i w identycznym czasie jak rozpraszanie jeden dowszystkich Krzysztof Banaś Obliczenia wysokiej wydajności 9
Pełna wymiana wszyscy do wszystkich Dla każdej architektury można je zorganizować wykorzystując schemat rozgłaszania wszyscy do wszystkich i odpowiednie manipulacje zawartością komunikatów Algorytm dla pierścienia (routing SF i CT): T w_wdw_pierścień + ½pmt w ) (p 1) Algorytm dla kraty 2D z zawinięciami (routing SF i CT): T w_wdw_krata_2d = (2t s + pmt w ) ( p 1) Algorytm dla hiperkostki (routing SF): T w_wdw_hiperkostka_1 + ½pmt w ) log(p) Krzysztof Banaś Obliczenia wysokiej wydajności 10
Pełna wymiana wszyscy do wszystkich Algorytm dla hiperkostki (routing CT): p 1 kroków W każdym kroku każdy procesor wymienia dane z jednym z pozostałych Trzeba tylko tak zorganizować wymianę, aby łącza komunikacyjne nie zatykały się T w_wdw_hiperkostka_2 ) (p 1) + ½ t h p log p Krzysztof Banaś Obliczenia wysokiej wydajności 11