Przetwarzanie równoległe- 2. Komputery równoległe

Podobne dokumenty
Przetwarzanie równoległesprzęt

Przetwarzanie równoległesprzęt. Rafał Walkowiak Wybór

Ograniczenia efektywności systemu pamięci

Ograniczenia efektywności systemu pamięci

OWS sprzęt 1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Modyfikacja

Przetwarzanie równoległesprzęt

PR sprzęt (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: jesień 2016

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2016

16. Taksonomia Flynn'a.

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017

OWS1 (systemy z pamięcią współdzieloną) Rafał Walkowiak Wersja: wiosna 2017

Wydajność komunikacji grupowej w obliczeniach równoległych. Krzysztof Banaś Obliczenia wysokiej wydajności 1

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Stronicowanie w systemie pamięci wirtualnej

Architektura komputerów

Architektura komputerów

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Architektura komputerów

Architektura komputerów

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Literatura. 11/16/2016 Przetwarzanie równoległe - wstęp 1

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Dr inż. hab. Siergiej Fialko, IF-PK,

10/14/2013 Przetwarzanie równoległe - wstęp 1. Zakres przedmiotu

Algorytmy dla maszyny PRAM

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Podstawy Techniki Mikroprocesorowej wykład 13: MIMD. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Zadania jednorodne 5.A.Modele przetwarzania równoległego. Rafał Walkowiak Przetwarzanie równoległe Politechnika Poznańska 2010/2011

Analiza efektywności przetwarzania współbieżnego

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Podstawy Informatyki Systemy sterowane przepływem argumentów

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Operacje grupowego przesyłania komunikatów

5. Model komunikujących się procesów, komunikaty

Architektura mikroprocesorów TEO 2009/2010

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Budowa komputera Komputer computer computare

Architektura potokowa RISC

Przykładem jest komputer z procesorem 4 rdzeniowym dostępny w laboratorium W skład projektu wchodzi:

Architektura komputerów. Układy wejścia-wyjścia komputera

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Projektowanie. Projektowanie mikroprocesorów

21 Model z pamięcią współdzieloną (model PRAM) - Parallel Random Access Machine

Mikroprocesory rodziny INTEL 80x86

dr inż. Jarosław Forenc

Zasady projektowania algorytmów równoległych

LEKCJA TEMAT: Zasada działania komputera.

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Architektura komputerów

Literatura. 3/26/2018 Przetwarzanie równoległe - wstęp 1

Zarządzanie pamięcią w systemie operacyjnym

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

ARCHITEKTURA PROCESORA,

Magistrala systemowa (System Bus)

System obliczeniowy laboratorium oraz. mnożenia macierzy

Mikroprocesor Operacje wejścia / wyjścia

Budowa Mikrokomputera

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Organizacja typowego mikroprocesora

Obliczenia Wysokiej Wydajności

Zrównoleglenie i przetwarzanie potokowe

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

Urządzenia wejścia-wyjścia

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Programowanie współbieżne Wykład 2. Iwona Kochańska

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Numeryczna algebra liniowa

Logiczny model komputera i działanie procesora. Część 1.

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Zasady projektowania algorytmów równoległych

Architektura komputerów

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Systemy operacyjne III

Nowoczesne technologie przetwarzania informacji

System pamięci. Pamięć wirtualna

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

Wykład 14. Zagadnienia związane z systemem IO

Analiza ilościowa w przetwarzaniu równoległym

Transkrypt:

Przetwarzanie równoległe- 2. Komputery równoległe Rafał Walkowiak Modyfikacja 4.10.2011 2011-11-13 1

WspółbieŜność wewnętrzna przetwarzania procesora Uwarunkowania: 1. Dotychczas imponujący wzrost prędkości taktowania procesora 1000 razy szybciej w ciągu 10 lat obecnie ograniczony wielkością wydzielanej mocy cieplnej i fizycznymi wymiarami elementów struktury 2. Ograniczenia we wzroście prędkości pracy pamięci (memory wall) 3. Technologiczne moŝliwy wzrost złoŝoności układów scalonych - podwojenie złozoności w ciągu 18 miesięcy prawo Gordona Moora Jak wykorzystać moŝliwości dla wzrostu efektywności komputerów? Równoczesna realizacja wielu instrukcji w czasie jednego cyklu zegarowego - potokowość, wiele potoków - superskalarność Równoległość pracy modułów procesora Wiele rdzeni przetwarzających w pojedynczych procesorach 2011-11-13 2

Potokowość i współbieŝne wykonanie instrukcji WspółbieŜność wewnętrzna Potoki wykonywania instrukcji zapewniają ich wykonanie w wielu równoległych krokach (20 kroków w Pentium4) kroki o niewielkiej złoŝoności stąd moŝliwość szybkiego taktowania efekt skrócenie czasu realizacji instrukcji przez potokowość (równoległość) Potok realizujący wiele instrukcji równocześnie wymaga predykcji kierunku realizacji kodu w punktach rozgałęzień kodu dla właściwego zapełnienia potoku. Wiele potoków pozwala na jednoczesne zakończenie realizacji kilku instrukcji kilka instrukcji w cyklu dzięki równoległości, wielodroŝność procesorów np. two-way superscalar execution. 2011-11-13 3

Superskalarne przetwarzanie - przykład load R1, @1000 load R2, @1008 load R1, @1000 Add R1, @1004 load R1, @1000 Add R1, @1004 Add R1, @1004 Add R1, @1008 load R2, @1008 Add R2, @100C Add R2, @100C Add R1, R2 Add R1, @100C Add R1, R2 Store R1, @2000 Store R1, @2000 Store R1, @2000 Cykle proc. 0 2 4 6 IF: POBRANIE INSTRUKCJI IF ID OF ID: DEKODOWANIE IF ID OF OF: POBRANIE OPERANDU IF ID OF E E: WYKONANIE IF ID OF E WB: ZAPIS IF ID NA E IF ID NA WB NA: BRAK DZIAŁANIA WspółbieŜne przetwarzanie w 2 potokach 2011-11-13 4

Przetwarzanie superskalarne i potokowe Problemy konflikty : ZaleŜność między danymi wynikiem jest oczekiwanie np. w takcie 5 i 6 (No operation) ZaleŜności rozgałęzień (proceduralne) przewidywanie kierunku przetwarzania po rozgałęzieniu jest krytyczne dla efektywności przetwarzania superskalarnego Konflikty zasobowe przykład: 2 potoki przetwarzania instrukcji a jedna jednostka wykonawcza zmiennoprzecinkowa lub niskie wykorzystanie dwóch jednostek wykonawczych 2011-11-13 5

Przetwarzanie superskalarne i potokowe Rozwiązania: Zmiana kolejności realizacji instrukcji programu out-of-order (dynamic) instruction issue (przetwarzanie dynamiczne - cecha procesora) sprzętowe badanie moŝliwości równoległej realizacji instrukcji Układy przewidywania rezultatu rozgałęzienia kodu Pobieranie rozkazów i danych z wyprzedzeniem Wiele jednostek wykonawczych, lecz niski poziom wykorzystania tych zasobów (dla typowych programów) prowadzi typowo do konstrukcji procesorów posiadających do 4 potoków przetwarzania. 2011-11-13 6

1. Brak moŝliwości wzrostu efektywności przetwarzania poprzez polepszenie poziomu zrównoleglenia realizacji programów sekwencyjnych oraz 2. duŝa dostępność układów logicznych w strukturach obwodów cyfrowych prowadzi do koncepcji: wielu rdzeni w procesorze i równoległości na poziomie programów. 2011-11-13 7

Procesory z długim słowem rozkazowym VLIW (ang. very long instruction word) processor - zastosowanie kompilatora do odkrywania sekwencji niezaleŝnych instrukcji nadających się do współbieŝnej realizacji; Instrukcje, które mogą być realizowane współbieŝnie są: określane za pomocą jednej instrukcji, która jest realizowana współbieŝnie przez wiele jednostek wykonawczych. Problemem jest brak znajomości przez kompilator stanu procesu (analiza off-line) i stąd utrudnione przewidywanie np.. kierunku przetwarzania po rozgałęzieniu w kodzie. Do tej grupy procesorów naleŝą zaproponowane przez Intel i HP procesory EPIC (explicit parallel instruction computing ) np. Intel Itanium - paczka 3 instrukcji realizowanych w równoległych potokach procesora. 2011-11-13 8

Ograniczenia efektywności systemu pamięci Parametry pamięci : opóźnienie (ang. latency) - czas odpowiedzi pamięci na Ŝądanie danych przez procesor przepustowość systemu pamięci (ang. bandwidth) - ilość danych dostarczana przez pamięć w jednostce czasu wielkość linii pamięci podręcznej (ang. cache line) - liczba słów pobierana jednorazowo do pamięci podręcznej z pamięci głównej Opóźnienie pamięci powoduje często spadek efektywności przetwarzania systemu w zaleŝności od rodzaju kodu; w szczególności od wymaganej w kodzie liczby pobrań na operację (wskaźnik dostępu - memory access rate) i lokacji danych. 2011-11-13 9

Ograniczenia efektywności przetwarzania - system pamięci Pamięć podręczna (pp): Zmniejszenie wypadkowego opóźnienia dostępu do pamięci poprzez zastosowanie pp. Stosunek trafień do pp (ang. hit ratio) określa stosunek odwołań zaspokojonych z pp do liczby wszystkich odwołań do tej pamięci. Czas dostępu do słowa w pamięci t śr t pp - czas dostępu do pamięci podręcznej t m - czas dostępu do pamięci głównej h współczynnik trafień T = h t pp + (1-h) t m 2011-11-13 10

Ograniczenia efektywności przetwarzania - system pamięci Pozytywny efekt na efektywność zastosowania pp wynika z: wielokrotnego wykorzystania danych z pp (szybki dostęp) sprowadzonych jednokrotnie - jako linia pp (wolny dostęp) zawartości tej lnii. Cechami programów, które to zapewniają są czasowa lokalność odwołań (ang. temporal locality of reference) dane raz sprowadzone zostają wkrótce uŝyte ponownie wkrótce. przestrzenna lokalnością odwołań - (ang. spatial locality of memory access) korzystanie kolejo z danych zajmujących sąsiednie lokacje w pamięci (np. jeŝeli tablica jest zapisywana wierszami w pamięci to kolejne dostępy powinny teŝ, jeśli to moŝliwe, być realizowane wierszami). 2011-11-13 11

Ograniczenia efektywności przetwarzania system pamięci Przykład: Wpływ przepustowości pamięci na wydajność przetwarzania Dane: System superskalarny realizujący potencjalnie 4 instrukcje zmiennoprzecinkowe w cyklu, procesor pracujący z zegarem 1GHZ - szczytowa wydajność procesora to cztery miliardy operacji zmiennoprzecinkowych na sekundę - 4GFLOPS pamięć podręczna z czasem dostępu 1 cyklu zegara i liną długości 4 słowa, pamięć systemu z 100 ns opóźnieniem, transmisją blokową na magistrali: o szerokości 1 słowa taktowanej z prędkością 200 MHz, ZałoŜenie: algorytm wymaga 1 słowa dla realizacji jednej instrukcji, stosunek trafień do pamięci podręcznej wynosi 75% 2011-11-13 12

Ograniczenia efektywności pamięci rozwiązanie przykładu Analiza teoretyczna: Z danych - stosunek trafień - wynika, Ŝe 3 na 4 słowa są pobierane bezpośrednio z pamięci podręcznej,czyli Dostęp do 4 słów jest realizowany w czasie: dane bezpośrednio z pp - 3 * 1ns (1GHz) dane pośrednio z pp (obliczenie kosztu pobrania z pamięci systemu) do pp 100 ns +3*5 ns pierwsze słowo z pamięci systemu po czasie opóźnienia pamięci, kolejne słowa (transmisja blokowa) po cyklu magistrali (200MHz) z pp 1 ns Razem 119 ns dla czterech słów Instrukcja wymagająca średnio 1 słowa będzie mogła zatem być zrealizowana średnio raz na 30 ns. Przepustowość systemu pamięci dla tego kodu wynosi zatem 33,3 M słów na sekundę. Uzyskamy maksymalną wydajność przetwarzania kodu: 33,3 MFLOPS 2011-11-13 13

Ograniczenia efektywności pamięci rozwiązanie przykładu Szczytowa wydajność procesora to cztery miliardy operacji zmiennoprzecinkowych na sekundę - 4GFLOPS Maksymalna wydajność przetwarzania kodu (ograniczona dostępem do pamięci): 33,3 MFLOPS Zmniejszenie szczytowej wydajności procesora 100 krotnie jest efektem: niskiego stosunku trafień, zaleŝy równieŝ od: opóźnienia dostępu do pamięci, wielkości linii pamięci podręcznej i prędkości magistrali danych. 2011-11-13 14

Ograniczenia efektywności systemu pamięci metody ukrywania opóźnienia pamięci śądanie z wyprzedzeniem określanie zapotrzebowania na dane z wyprzedzeniem, aby dotarły do pamięci podręcznej wtedy gdy będą potrzebne (realizowane przez kompilatory i procesory). Wielowątkowość Zastosowanie wielu wątków pozwala na realizacje przetwarzania wątku gotowego w czasie, gdy pozostałe wątki oczekują na dane z pamięci Szczególnie procesory wielowątkowe pozwalają na zarządzanie kontekstem wielu wątków i szybkie przełączanie w momencie realizacji Ŝądań zasobowych poszczególnych procesów. Wzrost liczby wątków moŝe jednak powodować spadek stosunku trafień do pamięci podręcznej (mniejsza pamięć przypadająca na wątek), a w konsekwencji konieczność wzrostu przepustowości magistrali dla zapewnienia odpowiedniej obsługi Ŝądań pamięciowych wątków. 2011-11-13 15

Struktury sterowania systemów równoległych (1) Sterowane scentralizowane jedna jednostka sterująca nadzorująca synchronicznie pracujące jednostki wykonawcze - SIMD (ang. Single instruction stream, multiple data stream), - ta sama instrukcja realizowana we wszystkich jednostkach wykonawczych (procesory określane jako procesory macierzowe) (maszyny Illiac IV, CM-2, MasPar MP-1, obecnie układy wykonawcze procesorów). Ten typ przetwarzania obecny PE jest w rozszerzeniach procesorów Intela - jednostki MMX, Pentium - SSE (ang. streaming SIMD Extensions). Maska aktywności jednostki określa biorące udział w kolejnym kroku przetwarzania jednostki wykonawcze PE (w zaleŝności od potrzeb/kodu) Nadrzędna jednostka sterująca GCU 2011-11-13 16 PE PE PE Sieć połączeń

Struktury sterowania systemów równoległych (2) Sterowanie rozproszone element przetwarzający moŝe realizować dowolny program niezaleŝnie od pozostałych system MIMD (ang. multiple instruction stream, multiple data stream), Wersją modelu MIMD jest SPMD (ang. single program...) realizacja tego samego kodu na róŝnych danych realizowalny w MIMD jako kod zawierający if-else bloki. W MIMD program i system operacyjny jest zawarty w pamięci kaŝdego procesora, w SIMD niekoniecznie. SIMD architektury specjalizowane dla specyficznych zastosowań procesory graficzne - GPU MIMD bardziej odpowiednie dla zastosowań o nieregularnej naturze. 2011-11-13 17

Systemy ze współdzieloną przestrzenią adresową Systemy wieloprocesorowe (ang. multiprocessors) przestrzeń adresowa współdzielona SMP (ang. symmetric multiprocessing) wszystkie procesory mają dostęp do wszystkich zasobów systemu (pamięci i systemu we/wy), jedna przestrzeń adresowa, moŝliwość przetwarzania dla wszystkich procesorów w trybie jądra (ang. kernel mode system operacyjny przejmuje realizację wątku programu np. wiele procesorów realizuje operacje i/o) Przestrzeń adresowa lokalna (własna) i przestrzeń globalna (wspólna dla wszystkich procesorów). System wieloprocesorowy typu UMA (ang. uniform memory access multicomputer) jednakowy czas dostępu kaŝdego z procesorów do dowolnego słowa. System wielokomputerowy typu NUMA (ang. Non-uniform memory access multicomputer) czas dostępu uzaleŝniony od pamięci, lokalnej czy globalnej, do której dostęp jest realizowany. SCI (ang. scalable coherent interconnect) zbiór standarowych protokołów do połączenia wielu SMP w jeden komputer o pamięci współdzielonej. 2011-11-13 18

Systemy wieloprocesorowe/wielokomputerowe P P P P C P C P C Siec połączeń Siec połączeń M M M UMA M M M P CM P CM Siec Połączeń 2011-11-13 19 P CM NUMA C pamięć podręczna M pamięć

Klastry systemy równoległe zwarte z pamięcią rozproszoną Komputer składający się z węzłów (komputerów jednostek przetwarzających procesory, pamięci, magistrale) i sieci połączeń Konstelacje gdy więcej procesorów w węźle niŝ węzłów w systemie, Komputery masowo równoległe obecnie klastry z dziesiątkami tysięcy i setkami tysięcy procesorów Superkomputery obecnie klastry o mocy rzędu biliarda (10 15 ) operacji zmiennoprzecinkowych na sekundę 2011-11-13 20

Fizyczna organizacja maszyn równoległych model PRAM PRAM równoległy odpowiednik modelu RAM (model komputerowego przetwarzania sekwencyjnego), wspólna przestrzeń adresowa CECHY (4): jednoczesny dostęp kaŝdego procesora do dowolnej komórki pamięci w jednostkowym czasie, Idealizacja maszyn równoległych z SM, prosta analiza algorytmów, brak efektywnego algorytmu dla PRAM świadczy o braku efektywnego algorytmu dla dowolnej maszyny równoległej. 2011-11-13 21

model PRAM Model pełnego równoległego dostępu do pamięci nierealizowalny w praktyce ze względu na nierealność (wysoki koszt) zapewnienia p procesorom jednoczesnego dostępu do dowolnego słowa w pamięci ( o m słowach), gdyŝ wymaga to mp przełączników (DUśO!!!). 2011-11-13 22

Maszyny RAM, PRAM RAM Jednostaka przetwarzająca i program Tasma wejściowa odczytu i tasma wyjściowa zapisu Rejestry (kaŝdy mieści wartość integer dowolnego rozmiaru) Jednostkowy czas instrukcji PRAM SM SIMD Wiele procesorów z rejestrami prywatnymi (bez taśm) Wspólna pamięć Dostęp do pamięci w jednostce czasu Wejście i wyjście algorytmu w określonych komórkach pamięci Synchroniczna realizacja instrukcji: przez procesory odczyt operandu, obliczenia i zapis EREW, CREW, ERCW, CRCW równoległe lub wyłączne dostępy do pamięci WspółbieŜny zapis wymaga arbitraŝu w przypadku konfliktu dostępu; Strategie zapisu: jednolita, dowolna i priorytetowa. 2011-11-13 23

Przykład: Algorytm dla CRCW PRAM z jednolitą strategią zapisu Wyznaczanie maksimum z tablicy TAB for i=1,m do parallel R[i]=TRUE; for i=1,m for j=1,m do parallel if (TAB[i]<TAB[j]) R[i]=FALSE; -- jeśli jest mniejszy to otrzymuje FALSE -- wszystkie elementy największe (równe sobie) zachowują TRUE -- jeśli procesor zapisuje to zapisuje FALSE CW ok.! For i=1,m do parallel if (R[i]==TRUE) MAX= A[i]; Wykonanie programu przez m 2 procesorów zajmuje czas stały O(1). Jednoczesny zapis dotyczy jednakowych danych. 2011-11-13 24

Sieci połączeń komputerów równoległych (1) 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. 2011-11-13 25

Sieci połączeń komputerów równoległych (2) Sieć statyczna Sieć dynamiczna procesor złącze sieci element przełączający 2011-11-13 26

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. 2011-11-13 27

Topologie sieci połączeń Magistrala: Medium wspólne dla wszystkich węzłów Czas dostępu ograniczony z góry przez liczbę węzłów przyłączonych do magistrali brak skalowalności przepustowości. Koszt sieci rośnie liniowo ze wzrostem liczby przyłączonych węzłów. Wprowadzenie pamięci podręcznej znacznie obniŝa wymagania na przepustowość współdzielonej przez procesory magistrali. 2011-11-13 28

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 2011-11-13 29

Topologie sieci połączeń Wielopoziomowe sieci połączeń Po oziom 3 Poziom 2 po oziom 1 2011-11-13 30

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-1 j=2i+1-p dla p/2<=i<=p-1 Sieć idealnie przetasowana (ang. perfect shuffle) rysunek obok 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 2011-11-13 31

Sieć omega (przykład łączenia) 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111 Sieć połączeń omega jest siecią blokującą: realizacja połączenia między 010 i 100 oraz 110 i 110 wymaga korzystania z tego samego łącza między poziomem 1 i 2 sieci. 2011-11-13 32

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. 2011-11-13 33

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=1 łańcuch k=n, zamknięta to D wymiarowy torus k=2, D wymiarowa hyperkostka 0 1 2-1 2-2 2-3 00 01 10 11 00 0 10 0 010 11 0 101 111 4-2 4-2 zamknięta 0 00 1 011 Numeracja: Procesor w kolejnym wymiarze uzyskuje wartość 1 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. 2011-11-13 34

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 2011-11-13 35

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 2011-11-13 36

Ocena efektywności statycznych połączeń komunikacyjnych - wartości Typ sieci Średnica Szerokość połowienia Spójność krawędziowa Koszt Pełna 1 p 2 /4 p-1 p(p-1)/2 Gwiazda 2 1 1 p-1 drzewo binarne pełne2 log((p+1)/2) 1 1 p-1 Łancuch p-1 1 1 p-1 Krata (mesh) 2d 2( p 1) p 2 2(p- p) Krata (mesh) 2d zamknięta 2 p /2 2 p 4 2p Hyperkostka log p ½p log p (p logp)/2 Zamknięta k krotna krata d wymiarowa d k /2 2k d-1 2d dp 2011-11-13 37

Miary efektywności dynamicznych połączeń Śrdnica 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 1 log p p p/2 Spójność krawędziowa 1 2 Koszt (liczba przełączników) p 2 p/2 log p Drzewo dymaniczne 2log p 1 1 p-1 2011-11-13 38

Współdzielenie danych w systemach równoległych W systemach równoległych dane współdzielone mogą być powielone w wielu pamięciach podręcznych. Zalety replikacji: ObniŜenie opóźnienia dostępu i wymagań przepustowości pamięci Mniej rywalizacji o dane odczytywane przez wiele procesorów Write-through cache zapis do pp jest synchronicznie odzwierciedlany w pamięci globalnej Write-back cache zapis w pamięci globalnej jest dokonywany w wyniku zewnętrznego Ŝądania odczytu danej Spójność pamięci podręcznej zapewnia, Ŝe: - dane zapisane przez jeden procesor będą udostępniane pozostałym do momentu ponownego zapisu - wszystkie procesory widzą taką samą kolejność realizacji zapisów, odczyt aktualnej wartości. 2011-11-13 39

Spójność pamięci podręcznej w systemach wieloprocesorowych Protokoły: uniewaŝniania lub uaktualniania dla zapewnienia spójności danych - zapewniają one istnienie szeregowego porządku wykonania instrukcji realizowanych współbieŝnie Protokół uniewaŝnienia powoduje, Ŝe w przypadku uaktualnienia lokalnej kopii danych pozostałe kopie danych zostają uniewaŝnione konsekwencja to wstrzymywanie przetwarzania ze względu na oczekiwanie na dane uniewaŝnione. Częściej stosowany obecnie ze względu na znaczenie przepustowości pamięci i magistrali. Protokół uaktualniania polega na tym, Ŝe w przypadku uaktualnienia lokalnej kopii danych pozostałe kopie danych zostają uaktualnione - konsekwencja to narzut komunikacyjny wynikający z przesyłania danych, które nie zawsze będą jeszcze wykorzystywane, przesłanie następuje przy kaŝdej modyfikacji kaŝdego słowa wielosłowowej linii pp 2011-11-13 40

read Invalid/ uniewaŝniony 3 stanowy protokół zapewnienia spójności danych pamięci podręcznej Shared/ współdzelony c_write write c_write flush read c_read write Dirty/ zabrudzony read/write Linia/strona pamięci podręcznej przechodzi między stanami na skutek instrukcji realizowanych przez lokalny procesor (read/write/flush ) i akcji protokołu zapewnienia spójności w odpowiedzi na działania innych procesorów. Po modyfikacji linii pp jest ona lokalnie oznaczona jako Dirty w celu zapewnienia, Ŝe procesor ten obsłuŝy kolejne Ŝądania dostępu innych procesorów do danych w tej linii pp. Zapis wartości uniewaŝnionej jest poprzedzony pobraniem jej aktualnej wartości: procesor posiadający jej wersję aktualną udostępnia ją Ŝądającemu procesorowi i dokonuje jej zapisu do pamięci globalnej (write back cache). 2011-11-13 41

Protokół zapewnienia spójności- przykład Procesor1 Processor2 PP Proc1 PP Proc2 PAMIĘĆ x= 5, D y=12,d read x read y x=5,s y=12,s x= 5, S y=12,s x=x+1 y=y+1 x=6,d y=13,d x= 5, I y=12,i read y read x x=6,s y=13,s x= 6,S y=13,s x= 6, S y=13,s x=x+y x= 19,Dy=13,S x= 6,I y=13,s x= 6, I y=13,s y=x+y x= 19,S y=13,i x= 19,Sy=32,D x= 19, S y=13,i Zmienne naleŝą do róŝnych linii pamięci podręcznej, zapisy wymagają uzyskania przez procesor dostępu w trybie wyłącznym, Dirty blok zabrudzony - zmodyfkowany, wyłączny dostęp Shared blok współdzielony Invalid blok niewaŝny 2011-11-13 42

Tablica przejść linii pp między stanami stan read write flush c-read c-write shared shared dirty invalid shared invalid dirty dirty dirty invalid shared invalid invalid shared dirty invalid invalid invalid C-read i c-write ocznaczają efekt działań protokołu zapewnienia spójności, operacja flush powoduje zapisanie bloku danych do pamięci globalnej i w przypadku konieczności ponownego wykorzystania ponowne jego wczytanie. 2011-11-13 43

Spójność pamięci podręcznej protokół podglądania(ang. Snoopy cache coherence protocol). Procesor monitoruje przesłania na magistrali dotyczące swoich bloków pp. Procesor zapisuje lokalnie stan swoich danych. Wykrycie Ŝądania odczytu bloku, którego stan jest dirty powoduje przesłanie przez procesor lokalnej kopii bloku do Ŝądającego przesłania procesora. JeŜeli natomiast nastąpił zdalnie zapis do bloku pamięci, którego kopia jest lokalnie przechowywana to następuje uniewaŝnienie jego zawartości. Operacje na bloku dirty są realizowane lokalnie Mechanizm wymaga rozgłaszania do procesorów informacji o operacjach na pamięci funkcje zapewnienia spójności. Brak skalowalności. Lepsza efektywność w przypadku zapamiętywania stanu współdzielenia danych (obniŝenie wymagań przepustowości magistrali). 2011-11-13 44

Spójność pamięci podręcznej mechanizmy katalogowe Protokół zapewnienia spójności bazujący katalogu scentralizowanym i rozproszonym - lepsza skalowalność. Pamięć centralna jest rozszerzona o pamięć katalogową (PK), w którym zapisywane są informacje na temat korzystających z poszczególnych stron pamięci procesorów. Te procesory będą uczestniczyły w dystrybucji informacji zapewniających spójność. W przypadku rozproszonych PK znika takŝe wąskie gardło jakim jest obsługa protokołu spójności w oparciu o jedną PK wtedy moŝliwa jest jednoczesna realizacja wielu operacji zarządzania spójnością. Maszyny ze sprzętowym rozwiązaniem problemu spójności pamięci podręcznej nazywane są ccnuma, mogą wykorzystywać SCI (scalable coherent interconnect) protokół IEEE. 2011-11-13 45

Koszty dostępu do pamięci dla SGI Onyx2 komputer z współdzieloną pamięcią rozproszoną (DSM) Rodzaj dostępu Czas obsługi [cykl] rejestry procesora 0 pp L1 trafienie 2-3 pp L1 brak trafienia dane ładowane z pp L2 8-12 pp L2 brak trafienia dane pobrane z pamięci operacyjnej, adres wirtualny w TLB brak adresu w TLB konieczność załadowania adresu fizycznego do TLB, strona znajduje się w pamięci operacyjnej brak strony pamięci - konieczność załadowania strony wirtualnej z dysku - opóźnienie 10 8 cykli 75-250 150-500ns 2000 10 8 100ms 2011-11-13 46

Zarządzanie pamięcią Pamięć wirtualna przydzielana w blokach pamięci fizycznej do procesów, konieczna translacja adresów wirtualnych na adresy fizyczne. UmoŜliwia przydział procesom większej ilości pamięci niŝ jest dostępna fizycznie w systemie. TLB (ang. translation lookaside buffer) zawiera adresy fizyczne ostatnio translowanych adresów wirtualnych. W przypadku braku adresu wirtualnego w tablicy system operacyjny określa brakujący adres i wpisuje go do TBL wykonując procedurę obsługi przerwania. W przypadku braku lini w pp (cache miss) lub braku strony w pamięci głównej (page fault) brakujące dane są szukane w pamięci niŝszego poziomu. 2011-11-13 47

Odczyt z pamięci w przypadku braku trafienia DSM + pamięć katalogowa Przesłanie Ŝądania do pamięci domowej bloku (lokalnej lub zdalnej) wg adresu. JeŜeli blok jest w pamięci to jest on pobrany z aktual. stanu: unowned do exclusive shared do shared i zapamiętanie Ŝądającego procesora JeŜeli blok jest exclusive przekazanie Ŝądania do właściciela wyłącznej kopii właściciel wyłącznej kopii przesyła dane do Ŝądającego procesora i pamięci domowej, modyfikacja katalogu pamięci domowej dla uwzględnienia faktu współdzielenia danych przez procesory i zapisu informacji o tych procesorach. 2011-11-13 48

Zapis do pamięci - DSM pamięć katalogowa Generacja Ŝądania zapisu do pp 1. jeŝeli danych brak danych to Ŝądanie odczytu z wykluczającym się dostępem jest skierowane do pamięci domowej bloku, 2. jeŝeli dane - exclusive lub dirty to zapis, 3. jeŝeli dane są ale nie są exclusive lub dirty to Ŝądanie modyfikacji dla uzyskania wyłącznej własności danych wysłane jest do pamięci domowej bloku 2011-11-13 49

Zapis do pamięci - DSM pamięć katalogowa Obsługa Ŝądań w pamięci domowej bloku (stan bloku): 1. unowned do exclusive a potwierdzenie jest przesłane do procesora Ŝądającego dostępu 2. shared to do wszystkich procesorów zgodnie z zawartością pamięci katalogowej następuje wysłanie Ŝądań uniewaŝnienia ich kopii, stan w katalogu domowym zmienia się na exclusive, a potwierdzenie jest przesłane do procesora Ŝądającego dostępu, procesory, które otrzymały Ŝądanie uniewaŝnienia wysyłają potwierdzenie do procesora Ŝądającego dostępu. 3. exclusive to do zdalnego właściciela wysyłany jest Ŝądanie odczytu z wykluczającym się dostępem, ten natomiast przekazuje dane do Ŝądającego ich procesora i przekazuje do pamięci domowej bloku informacje o zmianie właściciela danych. 2011-11-13 50

Koszty komunikacji w komputerach równoległych Koszt komunikacji zaleŝny jest od: modelu programowania (SM, MP) topologii połączeń, obsługi i marszrutyzacji danych i protokołów programowych. 2011-11-13 51

Wymiana komunikatów w systemach równoległych (1) Inne cechy niŝ w systemach rozproszonych: grupowe operacje wymiany danych na wielu ścieŝkach równolegle, specyficzna architektura sieci komunikacyjnej. Typy operacji wymiany danych: 1 do 1 - 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. 2011-11-13 52

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ń, funkcjonalność, złoŝoność, skalowalność. 2011-11-13 53

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. 2011-11-13 54

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. 2011-11-13 55

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 p1 p0 czas 2011-11-13 56

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 p1 p0 czas 2011-11-13 57

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 2011-11-13 58

Algorytmy trasowania (ang. routing) w sieciach połączeń systemów równoległych Cechy algorytmów: minimalny/nieminimalny, deterministyczny, adaptacyjny (zagęszczenia ruchu). Określony według wymiarów sieci: XY-routing, E-cube routing XY-routing w 2D sieci (bez zamknięcia) przesyłamy komunikaty wzdłuŝ osi X do kolumny właściwej węzłowi przeznaczenia, a następnie posuwany się w tej kolumnie do celu. E-cube routing w hyperkostce d-wymiarowej zakładamy, Ŝe jedynka na najstarszej pozycji etykiety (o długości d) oznacza wymiar, w którym węzeł leŝy, liczba róŝnych wartości etykiety źródła i przeznaczenia określa odległość. 2011-11-13 59

Algorytm trasowania: E-cube routing Z PS100 000 Y 110 X 010 101 111 011 PD001 100 XOR 001 = 101 TRANSMISJA WZDŁUś OSI x 101 XOR 001 = 100 TRANSMISJA WZDŁUś OSI z Komunikat jest wysyłany wzdłuŝ wymiaru d odpowiadającego najmniej znaczącej pozycji (porównaj etykietowanie), na której róŝnią się etykiety (aktualnego rekurencyjnie) źródła i przeznaczenia komunikatu. 2011-11-13 60

Trudności dotyczące trasowania komunikatów Zakleszczenie (ang. deadlock) spowodowane przez cykl w oczekiwaniu na: bufor (store and forward) rozwiązanie: zastosowanie buforów wirtualnych kanał (cut-through routing) (rozwiązania następny slajd) pełne bufory uniemoŝliwiają przesłanie pakietów rezerwacja kanałów prowadzi do cyklicznego oczekiwania na kanał 2011-11-13 61

Trudności dotyczące trasowania komunikatów cut-through routing Postępowanie w przypadku kolizji Ŝądania przez dwa pakiety tego samego kanału (wyjścia): - buforowanie pakietu w zablokowanym węźle do chwili uwolnienia kanału, - blokowanie komunikacji z oczekiwaniem flitów w ich aktualnych lokalizacjach na zwolnienie kanału, - usuwanie i retransmisja, - objazd (ang. detour) kierowanie pakietu na inną ścieŝkę, aby ominąć zajęty kanał. 2011-11-13 62

Koszty komunikacji w maszynach z pamięcią współdzieloną - analiza jakościowa Struktura pamięci dostęp do zmiennych lokalnych znacznie szybszy niŝ zmiennych zdalnych (które dane lokalne a które zdalne? - nie zawsze jasne i moŝliwe do określenia). Ograniczone wielkości pamięci podręcznej przekroczenie rozmiaru, nadpisanie danych, konieczność wielokrotnego pobierania, narzut operacji zapewnienia spójności danych. Kolejność operacji na wielu procesorach wpływa na konieczność uniewaŝnienia i uaktualniania danych. Optymalizacja kodu przez zapewnienie (permutacja struktury danych) dostępu do kolejno ulokowanych danych w pamięci (aktualnie w pamięci podręcznej). Wstępne pobieranie danych wprowadzane przez kompilatory i sprzęt pozwala ukryć opóźnienia dostępu do pamięci. Niezamierzone współdzielenie (false sharing) dodatkowe narzuty przez przechowywanie w wielu pamięciach podręcznych (ze względu na rozmiar linii pamięci) danych, które muszą być poddane działaniom zapewnienia spójności mimo, Ŝe praktycznie nie są współdzielone. Rywalizacja w dostępie współdzielonym opóźnienia dostępu wynikające z współubiegania się o te same dane. 2011-11-13 63

Koszty komunikacji w maszynach z pamięcią współdzieloną analiza ilościowa Określenie czasu dostępu do odczytu m słów w maszynach z pamięcią współdzieloną: t a = t s + m t w czas dostępu do odczytu bez rywalizacji (w przypadku dostępu do tych samych danych przez róŝne procesory ze względu na konieczne uszeregowanie transmisji czasy t s się zwielokrotniają). t s - współczynnik czasu dostępu wynikający z narzutów: mechanizmu spójności, sieci połączeń i pamięci, uwzględniany raz we wzorze na czas dostępu do ciągu m słów współdzielonych (nawet większych od rozmiaru pp ze względu na mechanizmy ukrywania opóźnienia) t w - współczynnik czasu dostępu do jednego słowa w pamięci podręcznej W przypadku konieczności zapisu współdzielonych danych przez jeden z procesorów konieczne uwzględnienie zapisu (przez jeden) i (odczytu przez pozostałe) aktualnej wartości danej z pamięci. Wzór nie uwzględnia niezamierzonego współdzielenia oraz nakładania się obliczeń i komunikacji 2011-11-13 64

Przydział zadań do procesorów - odwzorowanie (zagnieŝdŝenie) grafów Graf wyjściowy - graf zadań ze strukturą komunikacji (połączeń między zadaniami). Graf docelowy - struktura systemu, w którym przetwarzanie ma być realizowane. PrzeciąŜenie (ang. congestion) liczba ścieŝek komunikacyjnych przypadająca na jedno łącze. Odstęp (ang.dilation) - liczba łącz wykorzystywanych do realizacji pojedynczej ścieŝki komunikacyjnej. Powiększenie (ang. expansion) - określa ile zadań zostało przydzielonych do procesora 2011-11-13 65

Odwzorowanie grafów ZagnieŜdŜenie łańcucha w hiperkostce. Kolejne 2 d elementów (oznaczonych od 0 do 2 d -1) odwzorowanych na d wymiarową hiperkostkę. Etykiety kolejnych (wg lańcucha) węzłów w hyperkostce określa się za pomocą funkcji kodu Graya. Wartości odpowiadające kolejnej pozycji liczby binarnej powstają w wyniku umieszczenia na tej pozycji 1 i odbiciu lustrzanym wartości wcześniejszych. Brak przeciąŝenia i odstęp=1, gdyŝ węzły których etykiety róŝnią się na jednej pozycji mają bezpośrednie łącze. 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 łańcuch 0 1 2 3 4 5 6 7 hyperkostka 2011-11-13 66 0 1 3 2 6 7 5 4 100 00 0 11 0 01 0 001 10 1 111 01 1

ZagnieŜdŜenie kraty w hiperkostce Krata zamknięta o 2 r * 2 s węzłach odwzorowana w hiperkostkę 2 r+s węzłową : wezłowi i,j odpowiada węzeł o etykiecie będącej złoŝeniem kodu i-tego elementu r pozycyjnego kodu Graya i kodu j-tego elementu s pozycyjnego kodu Graya czyli kaŝdy wiersz i kaŝda kolumna są odwzorowane w podkostkę o odpowiedniej liczbie węzłów 2,4,8,16... procesory, do których przydzielone są zadania z jednej kolumny mają jednakowe mniej znaczące bity, procesory w wierszu mają jednakowe bardziej znaczące bity etykiet, sąsiednie zadania przydzielone do sąsiednich procesorów (o etykietach róŝniących się na jednym bicie) brak przeciąŝenia i odstęp=1, gdyŝ węzły komunikujące się - których etykiety róŝnią się na jednej pozycji - mają bezpośrednie łącze. Jak będzie k 8-2 na h 2 6 lub na h 2 4 (0,0)00 00 (0,1)00 01 (0,2)00 11 (0,3)00 10 0110 0111 1,3 1,2 1110 1111 2,3 2,2 (1,0)01 00 (1,1)01 01 (1,2)01 11 (1,3)01 10 0100 1,0 0101 1,1 1100 2,0 1101 2,1 (2,0)11 00 (2,1)11 01 (2,2)11 11 (2,3)11 10 0010 0,3 0011 0,2 1010 3,3 1011 3,2 (3,0)10 00 (3,1)10 01 (3,2)10 11 (3,3)10 10 0000 0,0 0001 0,1 1000 1001 3,0 3,1 2011-11-13 67

Odwzorowanie kraty w łańcuch 1,1 1,2 1,3 1,4 2,4 2,3 2,2 2,1 3,1 3,2 3,3 3,4 4,4 4,3 4,2 4,1 Krata otwarta 4X4 odwzorowana w łańcuch 16 elementowy PrzeciąŜenie wynosi 5 (linia przerywana) w ogólności pierwiastek(p) + 1. Dolne ograniczenie przeciąŝenia: Iloraz szerokości podziału odwzorowywanych sieci np. krata 4, łańcuch 1 więc 4 Ile wynosi maksymalny odstęp? 7 Jak odwzorować łańcuch w kratę? 2011-11-13 68

Odwzorowanie hiperkostki w k-2 kratę ZałoŜenie: liczba procesorów jest równa 2 d gdzie d jest parzystą potęgą dwójki. Docelowa krata jest wymiaru 2 d/2 x 2 d/2. Kostka p węzłowa widziana jako p kostek p węzłowych (por. rysunek). Ustalając d/2 starszych bitów etykiety i biorąc pod uwagę moŝliwe kombinacje d/2 młodszych bitów definiujemy 2 d/2 elementowe hiperkostki. KaŜda taka hiperkostka (kolejno dla starszych bitów będących kolejnymi wartościami kodu Graya) jest odwzorowywana na kolejny wiersz kraty. Jest to odwzorowanie realizowane odwrotne do odwzorowania łańcuch-hiperkostka. Dolne ograniczenie przeciąŝenia wynika z ilorazów szerokości podziału hiperkostki (2 d-1 ) oraz kraty 2 d/2 i wynosi 2 d/2-1. Dla p = 2 d procesorów ½ p 1.16 procesorów hiperkostka 4 wymiarowa 2.podział na 4 hiperkostki 2 wymiarowe 3.odwzorowanie hkostek krat na łańcuchy 4.przeciąŜenie wynosi 2 2011-11-13 69

Przydział procesów do procesorów a projektowanie sieci połączeń MoŜliwe jest odwzorowanie sieci gęstszych w sieci rzadsze z odpowiednim przeciąŝeniem Konieczne jest zastosowanie wtedy łączy o większej przepustowości dla kompensacji przeciąŝenia. Przykład: kraty o przepustowości łączy większej tyle razy ile wynosi przeciąŝenie enie będą zachowywać się analogicznie do hiperkostki (mającej większą gęstość). Kraty o wysokiej przepustowości łączy nazywa się tłustymi kratami, posiadają one tę samą przepustowość podziału sieci i większy rozmiar. Wynikający ze wzrostu rozmiaru wzrost kosztu komunikacji moŝe być minimalizowany poprzez odpowiednie trasowanie komunikatów (cut through routing). 2011-11-13 70

Konflikt koszt-efektywność (1) krata i hiperkostka Koszt sieci proporcjonalny do liczby linii sygnałowych koszt p-węzłowej 2 wymiarowej kraty zamkniętej - o 2p łączach i (log p)/4 liniach na łącze koszt p-węzłowej hiperkostki o ½ p logp łączach średnia odległość: krata ½ p, hiperkostka ½log p Ze względu na dodatkowe linie sygnałowe i równoległość przesyłania danych t wkrata=t whkostka 4/log p czas transmisji dla cut-through routing t s +t h l av +t w m czas transmisji krata t s + ½ p t h + 4/log p m t w czas transmisji hiperkostka - t s + ½log p t h + m t w Który czas większy? dla duŝych komunikatów i p>16 czas transmisji dla kraty krótszy Czas transmisji dla store and forward? 2011-11-13 71

Konflikt koszt-efektywność (2) Koszt sieci proporcjonalny do szerokość połowienia sieci Koszt p-węzłowej kraty zamkniętej o szerokości połowienia 2 p i p /4 liniach na łącze Koszt p-węzłowej hiperkostki o szerokości połowienia p/2 i jedną linią na łącze, średnia odległość krata ½ p, hiperkostka ½log p Ze względu na dodatkowe linie sygnałowe i równoległość przesyłania danych t wkrata =t whkostka 4/ p czas transmisji dla store and forward t s +(mt w +t h )l czas transmisji krata t s + ½ p (t h + 4/ p m t w ) 2 mt w czas transmisji hiperkostka - t s + ½log p (t h +mt w ) ½log p mt w Dla duŝych komunikatów i p>16 czas transmisji dla kraty krótszy 2011-11-13 72

Komputery wektorowe definicje komputer wektorowy - komputer zaprojektowany do realizacji operacji arytmetycznych na długich wektorach lub tablicach, wysoka efektywność przetwarzania wynika z wykorzystania przetwarzania potokowego wektor - lista elementów w pamięci komputera, zdefiniowany za pomocą adresu początkowego, rozmiaru i przesunięcia (ang. stride) rejestr wektorowy - pamięć pośrednicząca ca pomiędzy jednostką przetwarzania a pamięcią komputera wektoryzacja - zamiana sekwencji identycznych operacji arytmetycznych na jedną instrukcję potoki - jednostki arytmetyczne słuŝące do efektywnego przetwarzania elementów wektorów przetwarzanie potokowe - nakładanie się realizacji róŝnych części lub etapów operacji arytmetycznej na róŝnych elementach wektora 2011-11-13 73

Dodawanie sekwencyjne w potoku załóŝmy, Ŝe dodawanie zmiennoprzecinkowe jest realizowane w potoku składającym się z 6 faz: A porównanie wykładników składników B przesunięcie mantysy składnika o mniejszym wykładniku, do uzyskania zgodności wykładników C dodanie mantysy składników D zaokrąglenie E sprawdzenie czy wystąpił błąd np. przepełnienie F normalizacja wyniku zakładamy, Ŝe kaŝda faza zabiera t jednostek czasu wynik dla kaŝdej pary elementów sumowanych uzyskamy po czasie 6t jeŝeli dodajemy n liczb to wynik uzyskujemy po czasie 6nt 2011-11-13 74

Komputery wektorowe dodawanie potokowe kaŝda faza operacji dodawania jest realizowana równocześnie na parze róŝnych składników po zakończeniu fazy A dla pierwszej pary składników, są one przesuwane do fazy B, a faza A jest realizowana dla kolejnej pary składników kaŝda z faz zabiera t jednostek czasu wynik dla pierwszej pary składników uzyskujemy po czasie 6t, wynik dla kaŝdej następnej pary wyników po czasie t sumowania n liczb moŝna dokonać w czasie (n+5)t dla duŝej liczby elementów przetwarzanie potokowe jest k razy szybsze od sekwencyjnego (gdzie k jest liczbą faz potoku) 2011-11-13 75

Komputery wektorowe łańcuchowanie systemy wektorowe posiadają wiele potoków przetwarzania łańcuchowanie to skierowanie wyjścia z jednego potoku na wejście kolejnego, co eliminuje potrzebę zapisu wyników pierwszej operacji do rejestru łańcuchowanie moŝe zwiększyć liczbę operacji realizowanych równocześnie, a po czasie trwania fazy potoku pojawia się wynik dwóch lub więcej operacji (w zaleŝności od liczby łańcuchowanych potoków) 2011-11-13 76

Komputery wektorowe kolejność realizacji operacji wektorowych przetwarzanie wektorowe moŝe zmieniać kolejność operacji w ramach pętli for ( i= 1; i <= 64 ; i++) { l[i]=j[i]+k[i]; n[i]=l[i]+m[i]; } kolejność przetwarzania skalarnego: wyznaczanie l[1],n[1],l[2],n[2]... kolejność przetwarzania wektorowego: wyznaczenie l[1],l[2],..,l[64],n[1],n[2]... ustalana przez sprzęt moŝliwość nadpisania zmiennej lub braku przypisania (określenia) wykorzystywanej zmiennej ze względu na inną kolejność realizacji działań wektorowa zaleŝność danych występuje, gdy zastosowanie wprost (bez odpowiedniej modyfikacji kodu) przetwarzania wektorowego prowadzi do błędnych (nieoczekiwanych) wyników 2011-11-13 77

Modele komunikacyjne systemów równoległych Wymiana danych pomiędzy współbieŝnymi zadaniami odbywa się w oparciu o: dostęp do danych we współdzielonej przestrzeni adresowej, wymianę komunikatów. 2011-11-13 78

Systemy wieloprocesorowe poprawność dostępów Standardowe środowiska to wątki POSIX i dyrektywy OpenMP. Synchronizacja ciągu dostępów odczyt/zapis poprzez zastosowanie zamków (ang. lock). Systemy z pamięcią podręczną wymagają mechanizmu translacji adresu do określenia pozycji danych i zapewnienia właściwej realizacji współbieŝnych operacji na wielu kopiach tej samej pamięci (mechanizm spójności pamięci podręcznej). Wywołania: put i get, uaktualnienie jednej z kopii zmiennej powoduje uaktualnienie lub uniewaŝnienie innych kopii. 2011-11-13 79

Systemy z przekazywaniem komunikatów Zbiór węzłów przetwarzających z prywatną przestrzenią adresowa. Węzeł zawiera jeden procesor lub system wieloprocesorowy z pamięcią współdzielona naleŝą: systemy wielokomputerowe z nie współdzieloną przestrzenią adresową, klastry stacji roboczych. Model z przekazywaniem komunikatów realizacja róŝnych programów na kaŝdym z węzłów. Interakcje realizowane za pomocą wysyłania i odbierania komunikatów send, receive, whoami, numprocs/ MPI, PVM. Emulacja architektur: model wymiany komunikatów w komputerach o współdzielonej pamięci model współdzielonej pamięci adresowej w systemach wielokomputerowych z prywatną przestrzenią adresową (co gdzie łatwiej/ trudniej?) 2011-11-13 80