+ t
Transkrypt
+ t
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 (halfduplex, fullduplex), itp. Krzysztof Banaś Obliczenia wysokiej wydajności 3 Sieci połączeń ➔ Porównanie sieci statycznych: sieć w pełni połączona sieć gwiaździsta szereg pierścień I 1 2 p1 p/2 II p1 1 1 2 III (p^2)/4 1 1 2 IV p(p1)/2 p1 p1 p krata 2D bez zawijania 2(√p 1) 2 √p 2(p√p) torus 2D drzewo binarne zupełne hiperkostka 2(√p / 2) 2log(p/2+1/2) log p 4 1 log p 2√p 1 p/2 2p p1 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: ➔ tw czas przesłania 1 bajta pomiędzy sąsiednimi węzłami ts + l * ( th + mtw ) Routing CT (cutthrough, wormhole): ➔ th – czas przełączenia w pojedynczym węźle Routing SF (storeandforward): ➔ ts – czas inicjacji sieci ts + lth + mtw Dla większości sieci można posługiwać się uproszczonym wzorem przybliżonym: ts + mtw Krzysztof Banaś Obliczenia wysokiej wydajności 5 Schematy komunikacji grupowej • Rozgłaszanie jedendowszystkich – Algorytm dla hiperkostki: • Tr_jdw = (ts + mtw) log(p) – Algorytmy dla innych topologii (routing CT) różnią sie tylko składnikiem zawierającym czas przełączania th – Dla liczby procesorów rzędu tysięcy składnik ten może być znaczący • Redukcja wszyscydojednego posiada ten sam schemat co rozgłaszanie Krzysztof Banaś Obliczenia wysokiej wydajności 6 Schematy komunikacji grupowej • Rozgłaszanie wszyscydowszystkich (routing SF i CT) (inaczej zbieranie wszyscydowszystkich, allgather): – Algorytm dla pierścienia: • Tr_wdw_pierścień = (ts + mtw) (p 1) – Algorytm dla kraty 2D z zawinięciami (torusa): • Tr_wdw_torus = 2ts (√p 1) + mtw (p 1) – Algorytm dla hiperkostki: • Tr_wdw_hiper = ts log p + mtw (p – 1) – Składnik mtw (p – 1) jest dolnym oszacowaniem czasu komunikacji wynikającym z rozmiaru przesyłanych danych Krzysztof Banaś Obliczenia wysokiej wydajności 7 Schematy komunikacji grupowej • Redukcja wszyscydowszystkich – Dla każdej architektury można je zorganizować jako redukcję wszyscydojednego, po którym następuje rozgłaszanie jedendo wszystkich – Dla hiperkostki można opracować lepszy schemat, wykorzystujący rozgłaszanie wszyscydowszystkich (jedyna różnica jest taka, że w każdym węźle sumuje się przesyłane wartości, a rozmiar komunikatu zawsze wynosi 1): • Tg_wdw_hiper = (ts + tw ) log p Krzysztof Banaś Obliczenia wysokiej wydajności 8 Schematy komunikacji grupowej • Rozpraszanie jedendowszystkich – Dla każdej architektury można je zorganizować wykorzystując schemat rozgłaszania wszyscydowszystkich i odpowiednie manipulacje zawartością komunikatów – Czas realizacji rozpraszania jedendowszystkich jest taki sam jak czas rozgłaszania wszyscydowszystkich • Zbieranie wszyscydojednego jest realizowane za pomocą identycznego schematu (z odwróceniem kierunku przesyłania komunikatów) i w identycznym czasie jak rozpraszanie jedendo wszystkich Krzysztof Banaś Obliczenia wysokiej wydajności 9 Schematy komunikacji grupowej • Pełna wymiana wszyscydowszystkich – Dla każdej architektury można je zorganizować wykorzystując schemat rozgłaszania wszyscydowszystkich i odpowiednie manipulacje zawartością komunikatów – Algorytm dla pierścienia (routing SF i CT): • Tw_wdw_pierścień = (ts + ½pmtw) (p – 1) – Algorytm dla kraty 2D z zawinięciami (routing SF i CT): • Tw_wdw_krata_2d = (2ts + pmtw) (√p – 1) – Algorytm dla hiperkostki (routing SF): • Tw_wdw_hiperkostka_1 = (ts + ½pmtw) log(p) Krzysztof Banaś Obliczenia wysokiej wydajności 10 Schematy komunikacji grupowej • Pełna wymiana wszyscydowszystkich – Algorytm dla hiperkostki (routing CT): • p1 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ę • Tw_wdw_hiperkostka_2 = (ts + mtw) (p – 1) + ½ th p log p Krzysztof Banaś Obliczenia wysokiej wydajności 11