ak-teoria Flashcards

1
Q

Opisz cechy architektury CISC

A

Rozwinięcie -
Complex Instruction Set Computers

Cechy:
wolne, małe i drogie pamięci, nieduża liczba rejestrów, model obliczeń pamięć - pamięć, duża(kompletna) liczba rozkazów, słaba skalowalność, dużo trybów adresowania, niejednorodna forma rozkazów

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Opisz cechy architektury RISC

A

Rozwinięcie
Reduced Instruction Set Computers

Cechy:
wykonanie jednego rozkazu w jednym cyklu maszynowym, stała długość i prosty format rozkazu, nieduża liczba trybów adresowania, niezbyt obszerna lista rozkazów, model obliczeń rejestr-rejestr, dostęp do pamięci operacyjnej tylko w rozkazach LOAD i STORE, duży zbiór rejestrów uniwersalnych, układ sterowania – logika szyta, intensywne wykorzystanie przetwarzania potokowego, kompilatory o dużych możliwościach optymalizacji potoku rozkazów

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Opisz rejestry architektury RISC

A

łącznie w bloku 32 - wysokie (6), lokalne (10), niskie (6), globalne (10),
łącznie łącznie 138
Rejestry niskie jednej procedury stają się rejestrami wysokimi następnej

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Porównaj architekturę CISC i RISC

A

Trybów adresowania: dużo | mało
Model obliczeń: pamięć - pamięć | rejestr- rejestr
Rozmiar rozkazu: zmienny | stały
Ilość rozkazów: dużo | mało
Rejestrów uniwersalnych: mało | dużo
Wykonywanie rozkazów w jednym cyklu maszynowym: nie | tak

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Gdzie jest wykorzystywane potokowanie rozkazów

A

wszędzie do CISC

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jakie są efekty przetwarzania potokowego

A

zrównoleglenie realizacji ciągu rozkazów, skrócenie czasu realizacji ciągu rozkazów

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Dodatkowe rejestry wykorzystywane przez jednostki potokowe

A

rejestry zatrzaskowe

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Rodzaje hazardów - wymień wszystkie wszystkie

A

Hazard danych, hazard zasobów, hazard sterowania. W hazardzie danych dodatkowo: prawdziwa zależność danych (Read After Write - RAW), zależność wyjściowa (Write After Write - WAW), antyzależność (Write After Read - WAR)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Opisz hazard danych

A

Zależności między argumentami kolejnych rozkazów.
Metody usuwania hazardu danych
wykrywanie na etapie kompilacji i modyfikacja programu:
- wstawieni rozkazu NOP - wada to strata taktu zegarowego,
- zamiana kolejności rozkazów - brak strata taktu zegarowego.

sprzętowe rozwiązanie:
- wstrzymanie napełniania potoku

wyprzedzające pobieranie argumentów (też do superskalarnej)
–||--
Przykład:
ADD r1, r2, r3
sub r4, r5, r1

Dla architektury superskalarnej:
Przemianowanie rejestrów - dynamiczne przypisywanie rejestrów. Gdy chcemy zapisać dane do jakiegoś rejestru to tworzy się jego kopie, jeżeli znod chcemy się odwołać do tego rejestru co ostatnio ro rozkaz musi przejść proces przemianowania. Przemianowanie dotyczy tylko fragmentu programu w aktualnym oknie. Dokonuje się go z użyciem stacjami rezerwacji (RS) lub rejestrami roboczymi. Algorytm Tomasulo rozwiązuje problem przemianowania rejestrów.
I1: r1b

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Opisz hazard zasobów

A

Konflikt w dostępie do rejestrów lub do pamięci
Metody usuwania hazardu zasobów:
Rozdzielenie pamięci podręcznej poziomu L1 na pamięć rozkazów (programu) IM i pamięć danych DM pozwala uniknąć tego hazardu.
Dla hazardu dotyczącego dostępu do rejestrów założono, że operacja zapisu ma miejsce w pierwszej połowie taktu, a operacja odczytu w drugiej połowie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Opisz hazard sterowania

A

Problemy z potokową realizacją skoków i rozgałęzień - po wykonaniu skoku trzeba usunąć z potoku rozkazy pobrane po skopu, w wypadku nietrafionego przewidywania trzeba się cofnąć.
Metody usuwania hazardu sterowania oraz potokowym wykonywaniem rozgałęzień

Wstrzymanie napełniania potoku po zdekodowaniu rozkazu skoku (rozgałęzienia) - prawdopodobnie strata trzech taktów,

skoki opóźnione - muszą być uwzględnione przez programistę, zapewnia pewne oszczędności czasowe, efekt skoku opóźniony o jeden rozkaz, uproszczenie układu sterowania

Problemy dwóch powyższych rozwiązań - trzeba wyczyścić potok w zależności od wykonania bądź nie skoku

przewidywanie rozgałęzień -
statyczne (zawsze skocz, albo nigdy nie skacz, podejmowanie decyzji na podstawie kodu rozkazu rozgałęzienia aka specjalny bit-wskazówka) || (przewidywanie, że skok wstecz względem licznika rozkazów zawsze nastąpi, przewidywanie, że skok do przodu względem licznika rozkazów nigdy nie nastąpi)

dynamiczne (historia rozgałęzień i na jej podstawie)

Operacje wykonywane na tablicy historii rozgałęzień
Sprawdzenie, po pobraniu rozkazu rozgałęzienia jako kolejnego rozkazu,
czy adres tego rozgałęzienia jest w tablicy:
• Nie – wtedy:
− przewidywanie rozgałęzienia jest wykonywane według jednej ze strategii statycznych
− do tablicy jest wpisywany adres rozkazu rozgałęzienia oraz informacja o wykonaniu/niewykonaniu rozgałęzienia (bit historii)
• Tak – wtedy:
− przewidywanie rozgałęzienia jest wykonywane według bitu historii
(przewidywanie, że będzie tak jak poprzednio)
− do tablicy jest wpisywana informacja o wykonaniu/niewykonaniu
rozgałęzienia (uaktualnienie bitu historii)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Opisz prawdziwą zależność danych

A

(Read After Write - RAW)
Przykład
I1: r1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Opisz zależność wyjściową

A

(Write After Write - WAW)
Przykład
I1: r1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Opisz antyzależność

A

(Write After Read - WAR)
W przypadku równoległej realizacji rozkazów I2 o raz I3, wykonanie rozazu I3 (zapis wyniku) nie może być zakończone, dopuki nie nastąpi pobranie argumentu (odczyt) w rozkazie I2. Analogiczna sytuacja dla rozkazów I3 i I4
Przykład
I1: r1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Co to jest aliasing (hazard sterowania)

A

Aliasing – sytuacja, dla której dwom różnym rozkazom skoków warunkowych (rozgałęzień) przypisana zostaje ta sama pozycja w tablicy historii rozgałęzień (w wyniku zgodności wybranych m bitów adresów tych skoków) - i tak można przewidywać rozgałęzienia

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Predyktora Smith’a

A

Predyktora Smith’a - 4-stanowy (2 bitowy licznik z nasyceniem):
– dobry dla rozgałęzień powtarzalnych - eliminuje pierwszy błąd
przewidywania rozgałęzień dla zagnieżdżonych pętli
– zły dla często się zmieniających

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Co to BTB

A

BTB (ang. Branch Target Buffer) - miejsce w którym są zapisywane adresy docelowe wykonywanych skoków

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Operacje zmiennoprzecinkowe - cechy

A

Wykonanie
wykonywane zazwyczaj w wielu taktach

Moc komputerów:
podawana w ilości operacji zmiennoprzecinkowych na sekundę, glops

Problem
często jest wymagane wstrzymanie napełniania potoku dla uniknięcia hazardu danych

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Architektura superskalarna - cechy

A

zawiera kilka potokowych jednostek funkcjonalnych, złożone układy przewidywania rozgałęzienia, wykonywanie kilku rozkazów w jednym takcie, pobieranie kilku rozkazów w jednym takcie, niekolejne wykonywanie rozkazów, spekulatywne wykonywanie rozkazów

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Etapy rozkazów w procesorach superskalarnych

A

Pobieranie i inicjowanie rozkazów, wykonywanie rozkazów, zatwierdzenie rozkazów

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Etap pobierania i inicjowanie rozkazów (architektura superskalarna)

A

Pobieranie - rozkazy pobierane w paczkach i ładowane do kolejki, w wypadku rozkazów rozgałęzień przewiduje się ich wykonanie po ich wykryciu.

Inicjowanie i rozsyłanie - pobieranie i dekodowanie rozkazów z kolejki, sprawdza się czy występuje hazard danych - jeżeli tak to przemianowuje się rejestry, pobierania argumentów, przekierowanie do kolejki przed jednostkami funkcjonalnymi (stacji rezerwacji). Tutaj też się potencjalnie przemianował rejestry

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

wykonywanie rozkazów (architektura superskalarna)

A

warunek - skompletowanie argumentów rozkazu, kolejność dowolna (out-of-order, niekolejne wykonywanie rozkazów - może doprowadzić do antyzależności lub zależności wyjściowej), w wypadku rozgałęzień - spekulatywne wykonywanie rozkazów,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

zatwierdzenie rozkazów (architektura superskalarna)

A

zapisywanie wyniku, ale już w kolejności zgodnej z programem, przy rozgałęzieniach trzeba uzyskać potwierdzenie ich poprawności, zatwierdzanie - zapis wyników do rejestrów lub pamięci po czym są usuwane, tylko rozkazy wykonane legalnie (prawidłowa spekulacja rozgałęzienia) są zapisywane, tutaj podejmuje się decyzję o obsłudze wyjątku

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Funkcje buforów LOAD (architektura superskalarna)

A

przechowywanie składników adresu efektywnego, śledzenie niewykonanych rozkazów LOAD czekających na dostęp do pamięci, przechowywanie wyników rozkazów LOAD czekających na dostęp do CDB

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Funkcje buforów STORE: (architektura superskalarna)

A

przechowywanie składników adresu efektywnego, przechowywanie docelowego adresu pamięci niewykonanych jeszcze rozkazów STORE, czekających na dane, które mają być
zapisane w pamięci, przechowywanie adresów i danych rozkazów STORE czekających
na dostęp do pamięci

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Bufory LOAD i STORE (architektura superskalarna)

A

Bardzo podobne do stacji rezerwacji (takie obszar gdzie czekają rozkazy do przetworzenia)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Problemy przesyłu wyników przez CBD (architektura superskalarna)

A

Wymaga jednego taktu po wykonaniu operacji w jednostce funkcjonalnej, przesyłany jest wynik operacji oraz etykieta stacji rezerwacji, z której pochodził wykonywany rozkaz, założono, że linie przesyłu danych i etykiet są zdublowane, co pozwala przesłać wyniki dwóch rozkazów w jednym takcie

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Bufor zmiany kolejności (ReOrder Buffer - ROB) (architektura superskalarna)

A
  • Przechowuje kopie rozkazów, uporządkowane zgodnie z kolejnością wystąpienia w programie (in-order), od momentu zainicjowania rozkazu do momentu zatwierdzenia i usunięcia rozkazu z procesora.
  • Umożliwia dołączenia do rozkazów wyników ich wykonania - wyniki te są przechowywane pomiędzy wykonaniem rozkazu a momentem zatwierdzenia rozkazu. W tym czasie ROB jest źródłem argumentów dla innych rozkazów, wyniki niezatwierdzonych rozkazów nie są bowiem jeszcze zapisane w rejestrach programowych.
  • Jest podstawą zatwierdzania rozkazów – w kolejnym takcie zegara jest zatwierdzany rozkaz (rozkazy) zajmujący szczytową pozycję bufora ROB, jeśli został już wykonany. W trakcie zatwierdzania wynik rozkazu jest przepisywany do rejestru wynikowego (programowego).

Struktura: rozkaz, wynik, rejestr, gotowy, zajęcy, WS i WK

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

nazwa wariantu architektury superskalarnej gdzie jest długie słowo

A

Architektura procesorów o bardzo długim słowie rozkazowym - (VLIW - Very Long Instruction Word)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Szeregowanie rozkazów - tworzenia grup (VLIW)

A
  • Podział rozkazów programu na grupy – brak zależności w grupie
  • Możliwość równoległej realizacji rozkazów w ramach grupy
  • Sekwencyjne wykonywanie grup
  • Podział grupy na paczki („długie” rozkazy)
  • Paczka = 3 rozkazy + szablon (3 x 41 + 5 = 128 bitów)
  • Szablon – informacja o jednostkach funkcjonalnych, do których kierowane mają być rozkazy i ewentualna informacja o granicach grup w ramach paczki
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Rozkazy uwarunkowane (VLIM)

A

Rozkazy uwarunkowanie - predykcja rozkazów. Uwzględnianie warunku w trakcie realizacji rozkazu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Wielowątkowość

A

Cecha systemu operacyjnego umożliwiająca wykonywanie kilku wątków w ramach jednego procesu, cecha procesora oznaczająca możliwość jednoczesnego wykonywanie kilku wątków w ramach jednego procesora (rdzenia)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Warianty wielowątkowości

A

Realizacja kilku wątków w jednym procesorze (rdzeniu), przełączanie wątków przez system operacyjny, realizacja każdego wątku w oddzielnym rdzeniu, realizacja kilku wątków w jednym rdzeniu – procesor ze sprzętowym sterowaniem wielowątkowością

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Cele współbieżnej realizacji wątków w jednym procesorze:

A

minimalizacja strat cykli powstałych w trakcie realizacji pojedynczego wątku w wyniku:

  • chybionych odwołań do pamięci podręcznej,
  • błędów w przewidywaniu rozgałęzień,
  • zależności między argumentami kolejnych rozkazów
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Rodzaje modeli sprzętowego sterowania wielowątkowością

A

wielowątkowość drobnoziarnista, wielowątkowość gruboziarnista, wielowątkowość jednoczesna (współbieżna)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Wielowątkowość drobnoziarnista (fine-grained multithreading)

A

przełączanie wątków po każdym takcie, wątek oczekujący jest pomijany
Właściwości: unikanie strat przy nawet krótkich opóźnieniach wątków, wymagane jest szybkie przełączanie wątków, opóźnienie realizacji wątków w pełni gotowych do wykonania,
w jednym takcie do jednostek funkcjonalnych wprowadzane są rozkazy tylko jednego wątku

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Wielowątkowość gruboziarnista (coarse-grained multithreading)

A

właściwości: szybkie wykonanie wątków z dostępnymi danymi, strata czasu przy krótkich opóźnieniach potoku, wątek realizowany w kolejnych taktach do momentu wstrzymania wykonania rozkazu tego wątku (zwykle z powodu chybienia odwołania do PaP), w jednym takcie do jednostek funkcjonalnych wprowadzane są rozkazy tylko jednego wątku

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

wielowątkowość jednoczesna (współbieżna)

A

W jednym takcie mogą być inicjowane i wprowadzane do jednostek funkcjonalnych rozkazy różnych (wielu) wątków
Rywalizacja watków w dostępie do pamięci podręcznej:
• mniejsza wielkość PaP przypadająca na wątek
• Większe zużycie energii (w porównaniu z procesorami dwurdzeniowymi)
• Możliwość monitorowanie wykonania jednego wątku przez inny wątek (złośliwy), poprzez wpływ na współdzielone dane pamięci podręcznej - kradzież kluczy kryptograficznych

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

wymogi wielowątkowości:

A
  • układy współdzielone – układy pracujące bez wyróżniania wątków
  • układy dublowane (powielane) – każdy wątek (grupa wątków) wykorzystuje oddzielny układ
  • układy partycjonowane – część układów (rejestrów, kolejek) przypisana oddzielnym wątkom (grupom wątków)
  • powielenie zestawów rejestrów uniwersalnych (lub • powielenie tabel mapowania rejestrów)
  • powielenie liczników rozkazów
  • powielenie układów dostępu do pamięci podręcznej (tabel stron)
  • powielenie sterowników przerwań
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Równoległość na poziomie rozkazów

A

ILP – Instruction Level Parallelism (wykonywanie w danej chwili wielu rozkazów w jednym procesorze)
• potokowa organizacja procesora,
• architektura superskalarna z wieloma potokowymi jednostkami wykonawczymi,
• architektura VLIW ułatwiająca współbieżne wykonywanie rozkazów,
• sprzętowe sterowanie wielowątkowością.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Równoległość na poziomie procesorów (wykonywanie w danej chwili wielu rozkazów w wielu procesorach)

A

– Komputery wektorowe
– Komputery macierzowe
– Systemy wieloprocesorowe
– Klastry (systemy wielokomputerowe)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Kategorie (rodzaje) równoległości w aplikacjach

A
  • Równoległość poziomu danych (DLP – Data Level Parallelism) – pojawia się kiedy istnieje wiele danych, które mogą być przetwarzane w tym samym czasie
  • Równoległość poziomu zadań (TLP –Task Level Parallelism) – pojawia się kiedy są tworzone zadania, które mogą być wykonywane niezależnie i w większości równolegle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Klasyfikacja Flynna

A

Liczba strumieni rozkazów i liczba strumieni danych w systemie komputerowym
• SISD: Single Instruction, Single Data Stream
• SIMD: Single Instruction, Multiple Data Stream
• MISD: Multiple Instruction, Single Data Stream
• MIMD: Multiple Instruction, Multiple Data Stream

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Drogi wykorzystania równoległości aplikacji w architekturze komputerów

A
  • Przetwarzanie potokowe i superskalarne
  • Rozkazy wektorowe w architekturach wektorowych, macierzowych, procesorach graficznych, rozszerzeniach SIMD
  • Systemy wieloprocesorowe ze wspólną pamięcią
  • Systemy wieloprocesorowe z pamięcią rozproszoną
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Przyczyny straty czasu

A

hazard danych, hazardu sterowania, hazard zasobów, chybione odwołania do pamięci podręcznej( dla wielowątkowości)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Komputery wektorowe (cechy)

A

Wyróżnia - rozkazy wektorowe

Lokalizacja wektorów danych

  • Pamięć operacyjna (STAR 100)
  • Rejestry wektorowe (Cray -1)

Przyspieszenie
Przyspieszenie jest stosunkiem czasu wykonywania w komputerze klasycznym (szeregowo) do czasu wykonywania w komputerze wektorowym

Przepustowość
Przepustowość (moc obliczeniowa) jest stosunkiem ilości operacji zmiennoprzecinkowych do czasu ich wykonania.

Hardware

  • rozkazy wektorowe
  • duża liczba potokowych jednostek arytmetycznych (specjalizowanych)
  • duża liczba rejestrów (nawet kilkaset tysięcy)

Software

  • klasyczne języki: Fortran, C
  • klasyczne algorytmy
  • kompilatory wektoryzujace
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Wykorzystanie równoległości poziomu danych w formie rozkazów wektorowych w różnych architekturach procesorów

A
  • Komputery macierzowe
  • Komputery wektorowe
  • Rozszerzenia SIMD współczesnych procesorów superskalarnych
  • Procesory graficzne
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

Dwa różne podejścia do sprzętowej realizacji rozkazów wektorowych

A

– Komputery (procesory) macierzowe

– Komputery wektorowe

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Komputery macierzowe (co to)

A

Architektura komputerów macierzowych - model SIMD w dwóch wariantach:
SIMD - DM (z pamiecia rozproszona)
SIMD - SM (z pamiecia wspólna)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
50
Q

Elementy komputera macierzowego

A

•Jednostka sterująca - procesor wykonujący rozkazy sterujące i skalarne oraz inicjujący wykonanie rozkazów wektorowych w sieci elementów przetwarzających.
•Elementy przetwarzające (procesorowe) - jednostki arytmetyczno-logiczne wykonujące operacje elementarne rozkazów wektorowych.
•Sieć łącząca - łączy elementy przetwarzające między sobą lub z modułami pamięci operacyjnej; warianty:
- sieć statyczna: pierścień, gwiazda, krata, drzewo, hipersześcian
- sieć dynamiczna: jednostopniowa; wielostopniowa (wyróżnia połączenia blokujące i nieblokujące).

Podsumowanie
• Architektura SIMD
• Jednostka sterująca + jednostka macierzowa
• Rozkazy wektorowe - wykonywane synchronicznie w sieci (macierzy) EP
• Skomplikowana wymiana danych między EP
•Trudne programowanie - konieczność tworzenia nowych wersji algorytmów

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
51
Q

Porównanie komputerów macierzowych i wektorowych

A

W komputerach wektorowych czas wykonania rozkazu wektorowego jest wprost proporcjonalny do długości wektora. Z kolei w komputerach macierzowych, jeśli ten posiada wystarczającą liczbę jednostek (co najmniej długość wektora x długość wektora), czas ten jest stały.

52
Q

Model SIMD w procesorach superskalarnych (cechy)

A

Długość wektora ograniczona do rozmiaru rejestru

Typowe rozwiązanie:
– dwa argumenty (krótkie wektory) w dwóch rejestrach
– równoległe wykonanie operacji na wszystkich składowych obu wektorów
– zapis wyniku w trzecim rejestrze

53
Q

Technologia MMX

A
  • 8 rejestrów 64-bitowych MMX
  • Nowe typy danych
  • Rozszerzony zestaw instrukcji (57 instrukcji)
  • Realizacja operacji na krótkich wektorach wg modelu SIMD
54
Q

Technologia SSE

A
  • 8 rejestrów 128-bitowych
  • Osiem 16-bitowych argumentów (elementów wektora) typu integer
  • Cztery 32-bitowe argumenty integer/fplub dwa 64-bitowe
  • Operacje zmp na 4-elementowych wektorach liczb 32-bit (pojed. prec.)
55
Q

Procesory graficzne (cechy)

A

• GPU - Graphics Processing Unit
• Wcześniejsze GPU – specjalizowane języki (HLSL, GLSL czy NVIDIA Cg), przetwarzające elementy grafiki komputerowej (wierzchołki, piksele)
• CUDA (Compute Unified Device Architecture) - architektura wielordzeniowych procesorów graficznych (GPU)
– uniwersalna architektura obliczeniowa połączona z równoległym modelem programistycznym
– wsparcie dla języków C/C++
• GPGPU = GPU + CUDA (General-Purpose Computing on Graphics Processing Units) - obliczenia ogólnego przeznaczenia na układach GPU
– wykorzystanie GPU do wykonywania uniwersalnych obliczeń, niekoniecznie związanych z grafiką
• GPGPU – akceleratory obliczeniowe (m.in. w superkomputerach)

56
Q

Architektura CUDA

A

Skrót - Compute Unified Device Architecture
• W miejsce oddzielnych potoków przetwarzających wierzchołki i piksele wprowadzenie uniwersalnego procesora przetwarzającego wierzchołki, piksele i ogólnie geometrię, a także uniwersalne programy obliczeniowe
• Wprowadzenie procesora wątków eliminującego „ręczne” zarządzanie rejestrami wektorowymi
• Wprowadzenie modelu SIMT (single-instruction multiple-thread), w którym wiele niezależnych wątków wykonuje równocześnie tę samą instrukcję (analogia do wektoryzacji pętli w komputerach wektorowych)
• Wprowadzenie współdzielonej pamięci oraz mechanizmów synchronizacji wątków (barrier synchronization) dla komunikacji między wątkami

57
Q

Ogólna koncepcja wykorzystania GP GPU

A

• GPGPU – bardzo wydajna realizacja zadań wykorzystujących równoległość poziomu danych
• Etapy wykonania całego programu:
– obliczenia sekwencyjne w CPU,
– wyodrębnienie w programach realizowanych w CPU zadań wykorzystujących równoległość poziomu danych,
– przekazanie tych zadań do wykonania w GPU,
– zwrot wyników do programu głównego w CPU.

58
Q

Model programistyczny CUDA

A
  • Specjalny kompilator NVCC
  • Podział programu na kod wykonywany przez procesor (ang. Host code) i przez urządzenie (karte graficzna) (ang. Device code) - kernel
  • Realizacja operacji równoległych według modelu SIMT (Single Instruction Multiple Threading)
59
Q

Wykonanie obliczeń z użyciem architektury CUDA (5 faz)

A
  1. Przydzielenie w pamięci globalnej obszaru pamięci dla danych, na których będą wykonywane obliczenia przez kernel.
  2. Przekopiowanie danych do przydzielonego obszaru pamięci.
  3. Zainicjowanie przez CPU obliczeń wykonywanych przez GPU, tj. wywołanie kernela.
  4. Wykonanie przez watki (z użyciem GPU) obliczeń zdefiniowanych w kernelu.
  5. Przekopiowanie danych z pamięci globalnej do pamięci operacyjnej.
60
Q

Model SIMT

A

Realizacja operacji równoległych według modelu SIMT (Single Instruction Multiple Threading) – jeden rozkaz (operacja) wykonywany w wielu wątkach (na wielu danych)

61
Q

CUDA procesor (rdzen)

A
  • Potokowa jednostka arytmetyczna zmp
  • Potokowa jednostka arytmetyczna stp
  • Ulepszona realizacja operacji zmp FMA (fused multiply-add) dla pojedynczej i podwójnej precyzji
62
Q

Wątki w CUDA

A
  • Wątek (wątek CUDA) reprezentuje pojedynczą operację (a single work unit or operation) – wątek jest pojedynczą operacją elementarną, np. zi = xi + yi
  • Wątki są grupowane w bloki, maksymalny rozmiar bloku = 512 wątków (w architekturze Fermi i wyższych – 1024 wątki).
  • Bloki grupowane są w siatkę (grid)
  • Grupowanie wątków – bloki o geometrii 1, 2 lub 3-wymiarowej
  • Grupowanie bloków – siatka (grid) o geometrii 1, 2-wymiarowej
  • Wymaga się, aby bloki wątków tworzących siatkę mogły się wykonywać niezależnie: musi być możliwe ich wykonanie w dowolnym porządku, równolegle lub szeregowo.
63
Q

Grupowanie wątków w bloki i siatkę w cuda

A
  • Siatka o geometrii jednowymiarowej (trzy bloki wątków)

* Każdy blok - geometria dwuwymiarowa (wymiary 2 x 3)

64
Q

Sprzętowa organizacja wykonywania wątków

A

• Przy uruchomieniu kernela wszystkie bloki tworzące jego siatkę obliczeń są rozdzielane pomiędzy multiprocesory danego GPU
• Wszystkie watki danego bloku są przetwarzane w tym samym multi procesorze
• W danej chwili (cyklu) pojedynczy rdzeń multiprocesora wykonuje jeden wątek programu
• Multiprocesor tworzy, zarządza, szereguje i wykonuje watki w grupach po 32, nazywanych wiązkami (warp).
• Wiązki są szeregowane do wykonania przez warp scheduler. Wiązka wątków jest wykonywana jako jeden wspólny rozkaz (analogia do rozkazu SIMD, tzn. rozkazu wektorowego)
• Sposób wykonania wiązki wątków (rozkazu SIMD) zależy od budowy multiprocesora:
– Dla architektury Fermi (32 procesory w jednym multiprocesorze / 2 warp-schedulery = 16 procesorów na 1 wiązka) wiązka jest wykonywana jako 2 rozkazy - wiązka jest dzielona na dwie połówki (half–warp) wykonywane jako 2 rozkazy (te same, ale na dwóch zestawach danych).
– Dla architektury Tesla (8 procesorów w jednym multi procesorze, 1 warp-scheduler) wiązka jest dzielona na cztery ćwiartki (quarter-warp) wykonywane jako 4 kolejne rozkazy (te same, ale na czterech zestawach danych).
• Konstrukcja warp schedulera umożliwia uruchomienie wielu wiązek wątków współbieżnie - warp scheduler pamięta wtedy adresy wiązek, przypisane im rozkazy SIMD oraz ich stan (gotowość do wykonania lub stan oczekiwania na pobranie danych z pamięci).
• Współbieżne uruchomienie wielu wiązek pozwala zmniejszyć straty związane z oczekiwaniem na dane (zwykle długi czas dostepu do pamieci).

65
Q

Procesory graficzne - podsumowanie

A

• Multiprocesor strumieniowy (SM) – podstawowa jednostka procesora graficznego (zestaw procesorów (rdzeni), rejestry, dodatkowe układy obliczeniowe, kilka rodzajów pamięci)
• Z pełnego programu w CPU wydzielana jest część (kernel) do wykonania w GPU
• Kernel tworzy sieć bloków wątków
• Blok wątków jest wykonywany w jednym SM, w formie wiązek wątków
• Wiązka (32) wątków jest wykonywana na zestawie rdzeni SM jako jeden rozkaz wektorowy (SIMT)
• Zastosowania
– karty graficzne
– akceleratory w komputerach o większej mocy obliczeniowej (do zadań z równoległością poziomu danych)

66
Q

Rodzaje pamięci multiprocesora (wymień) ps tego od architektury CUDA

A

Pamięć globalna, pamięć współdzielona, pamięć stałych, rejestry, pamięć lokalna i pamięć tekstur

67
Q

Pamięć globalna (CUDA)

A

Duża pamięć, o czasie życia aplikacji (dane umieszczone w tej pamięci są usuwane po zakończeniu aplikacji), dostępne dla każdego wątku w dowolnym bloku, ale o dość długim czasie dostępu wynoszącym ok. 400-600 taktów zegara.

68
Q

Pamięć współdzielona (CUDA)

A

Niewielka pamięć o czasie życia bloku (zakończenie działania bloku powoduje usunięcie danych w niej przechowywanych), dostępna dla każdego wątku w bloku dla którego jest dedykowana, o bardzo krótkim czasie dostępu.

69
Q

Pamięć stałych (CUDA)

A

Niewielki fragment pamięci globalnej, który jest cache-owany, przez co dostęp do niego jest bardzo szybki. Jest ona tylko do odczytu. Czas życia pamięci stałych oraz jej dostępność jest taka sama jak pamięci globalnej.

70
Q

Rejestry (CUDA)

A

Niewielka, bardzo szybka pamięć o czasie życia wątku (po zakończeniu wątku dane z rejestrów są usuwane). Tylko jeden wątek może w danym momencie korzystać z danego rejestru.

71
Q

Pamięć lokalna i pamięć tekstur (CUDA)

A

Podobnie jak w przypadku pamięci stałych, są to dedykowane fragmenty pamięci globalnej. Pamięć lokalna jest wykorzystywana do przechowywania danych lokalnych wątku, które nie mieszczą się w rejestrach, a pamięć tekstur posiada specyficzne metody adresowania i cache-owania dla zastosowań graficznych

72
Q

Systemy wieloprocesorowe (UMA) (rodzaje)

A

Rodzaje

  • Systemy z pamiecia wspólna
  • Systemy z pamiecia rozproszona

Systemy z pamiecia wspólna

  • Systemy z jednorodnym dostępem do pamięci (UMA – Uniform Memory Access)
  • Systemy z niejednorodnym dostępem do pamięci (NUMA – Non - Uniform Memory Access)
73
Q

Systemy wieloprocesorowe (UMA) - klasyfikacja

A

Ze względu na rodzaj sieci łączącej
Systemy ze wspólna magistrala (nieska skalowalność i koszt, prostota konstrukcji)
• Systemy wielomagistralowe (kosztowne, dobra przepustowość, potrzebny arbiter)
• Systemy z przełącznica krzyżowa (sieć nieblokująca, duża złożoność układowa, wysoki koszt)
• Systemy z wielostopniowa siecią połączeń (podano tylko przykłady)
• Systemy z pamięcią wieloportowa (niezależny dostęp do modułów pamięci, duża złożoność, układ sterowania pamięci musi rostrzygać konflikty dostępu, możliwość skonfigurowania pamięci prywatnej dla jednego lub kilku procesorów, technologia write throught - zapis do pamięci chach przez własną magistralę i port modułu)
• Systemy z sieciami typu punkt - punkt
• Systemy z siecią typu pierścień -

Ze względu na metody zapewnienia spójności pamięci podręcznych
• Systemy wykorzystujące snooping - protokuł MESI
• Systemy wykorzystujące katalog

74
Q

System skalowalny - co to

A

System, w którym dodanie pewnej liczby procesorów prowadzi do proporcjonalnego przyrostu mocy obliczeniowej

75
Q

Zadania przełączników w sieci łączącej

A

1) Rozwiązywanie konfliktów dostępu do tego samego modułu pamięci
2) Zapewnienie obsługi równoległych transmisji, krzyżujących się w przełączniku

76
Q

Protokół MESI

A
Ten rodzaj systemu posiada problem zapewnienia spójności pamięci podręcznych (snooping). W celu rozwiązania go wykorzystuje w tym celu protokół MESI:
I - invalid
S - shared
E - exclusive
M - modified
77
Q

Rozproszone sterowanie spójnością pamięci podręcznych (PaP)

A
  • Magistrala zawiera szyny adresowe, szyny danych oraz szyny sterujące.
  • Wymiana danych między RAM i PaP odbywa się w postaci linii danych
  • Sterowniki pamięci podręcznych kontrolują (podglądają) operacje na szynach sterujących i szynach adresowych.
  • Każda linia PaP może być w 4 stanach: E, S, M, I
  • W przypadku modyfikacji linii danych, sterowniki PaP, które tę linię też posiadają, muszą ją unieważnić
78
Q

Protokół MESI - uproszczona realizacja

A

1) Jeśli tylko jeden z procesorów (PaP tego procesora) odczytał linię, to stan odczytanej linii w tej PaP = E
2) Odczyt linii przez następny procesor (PaP tego procesora) zmienia jej stan na S
3) Modyfikacja linii w jednej z PaP powoduje jej unieważnienie w innych PaP (stan I), stan zmodyfikowanej linii w PaP = M
4) Próba odczytu zmodyfikowanej linii (w stanie M) powoduje najpierw uaktualnienie tej linii w PaO, a dopiero potem jest realizowany odczyt (i zmiana stanu linii na S).
5) Próba zapisu przez procesor Pi do zmodyfikowanej linii (w stanie M w procesorze Pj ) prowadzi najpierw do sygnalizacji jej odczytu z zamiarem modyfikacji, uaktualnienie tej linii w PaO (ze zmianą stanu linii na I w Pj ), potem jest realizowany odczyt i ostatecznie modyfikacja linii w Pi (stan M).

79
Q

MESI - wady

A
  • mało skalowalny,

* przy chybieniu odczytu lub zapisu trzeba rozesłać o tym komunikat do wszystkich węzłów

80
Q

Katalog

A

Struktura danych, która w sposób scentralizowany gromadzi i zarządza informacjami o stanie każdej linii pamięci i rozmieszczeniu kopii w pamięci podręcznej. Protokoły katalogowe są bardziej skalowalne od protokołów snooping nie rozsyłają one komunikatów do wszystkich węzłów tylko do sprecyzowanych. Ma ona dwa poziomy zastosowań. Utrzymanie spójności Pap w systemach numa oraz numa

81
Q

Rola katalogu we wspólnej pamięci podręcznej L3

A
  • zapisanie informacji o stanie każdej przechowywanej linii,
  • zapisanie, dla każdej przechowywanej linii, informacji o numerach procesorów (rdzeni), które pobrały daną linię.
82
Q

Interpretacja stanu linii katalogu

A
  • uncached – linia pamięci jest tylko w pamięci PaP L3 (wspólnej)
  • shared – linia PaP została przesłana do odczytu do kilku rdzeni (do ich pamięci PaP L2)
  • modified – linia PaP jest w pamięci wspólnej (PaP L3) nieaktualna (została zmodyfikowana w PaP L2 innego rdzenia)
83
Q

Architektura UMA - podsumowanie

A

• Symetryczna architektura – jednakowy dostep procesorów do pamieci operacyjnej oraz we/wy
• Utrzymanie spójności pamięci podręcznych (cache):
– snooping - metoda starsza i mało skalowalna (głównie w systemach ze wspólna magistrala)
– katalog - metoda lepiej skalowalna, stosowana razem z sieciami typu punkt - punkt
• Łatwe programowanie (realizacja algorytmów równoległych)
• Niska skalowalność:
– Mechanizm snooping, zapewniający spójność pamięci podręcznych węzłów systemów UMA nie jest skalowalny dla bardzo dużej liczby węzłów.
– W systemach z duza liczba węzłów, posiadających lokalna pamięć, dla zapewnienia spójności pamięci podręcznych jest stosowane rozwiązanie oparte na katalogu.

84
Q

Cache - Zasada lokalności odwołań

A
  • Jeśli nastąpiło odwołanie do pewnej komórki pamięci, to jest duże prawdopodobieństwo, że w najbliższej przyszłości nastąpi odwołanie do tej samej lub sąsiednich komórek
  • W ograniczonym odcinku czasu odwołania procesora do pamięci są skupione na niewielkim fragmencie przestrzeni adresowej
85
Q

Typy pamięci podręcznej cache

A

L1, L2, L3

86
Q

Systemy wieloprocesorowe z niejednorodnym dostępem do pamięci NUMA - rodzaje

A

Skrót (Non-Uniform Memory Access)
NC-NUMA (Non-cached NUMA)
– Odwołania do nielokalnej PaO przekierowywane do odległych węzłów
– Odwołania do nielokalnej PaO wolniejsze ok. 10 razy
CC-NUMA (Cache Coherent NUMA)
– Wykorzystuje węzły i katalogi

87
Q

systemu DASH - co to

A

Pierwszy system CC-NUMA wykorzystujący katalog

88
Q

Interpretacja stanu linii w katalogu (NUMA)

A
  • uncached – linia pamięci jest tylko w pamięci lokalnej (domowej)
  • shared – linia PaP została przesłana do odczytu do kilku węzłów (pamięci cache ich procesorów)
  • modified – linia PaP jest w pamięci domowej nieaktualna (została zmodyfikowana w innym węźle)
89
Q

Systemy NUMA - podsumowanie

A

• Systemy składające się z wielu węzłów
• Hierarchiczna organizacja: procesor
– węzeł (system UMA)
– system NUMA
• PaO fizycznie rozproszona między węzłami, ale logicznie wspólna
• Niejednorodny dostęp do pamięci
– PaO lokalna,
– PaO zdalna
• Zalety modelu wspólnej pamięci dla programowania
• Konieczność kontroli dostępu do wspólnych danych we wspólnej pamięci
– semafory, sekcje krytyczne itp.
• Dwupoziomowa struktura katalogów zapewniających spójność wspólnie używanych linii pamięci:
– katalog w ramach każdego procesora wielordzeniowego, zapewniający spójność pamięci podręcznych wszystkich rdzeni procesora
– katalog przy każdym węźle (procesorze), zapewniający spójność linii lokalnej pamięci węzła, które zostały pobrane przez inne węzły.
• Skalowalność: średnia (największa w ramach systemów w. z pamięcią wspólną)
• Utrzymanie spójności pamięci podręcznych wszystkich węzłów (cache coherent NUMA)
– za pomocą katalogu
• Zalety modelu wspólnej pamięci dla programowania

90
Q

Systemy SMP - podsumowanie

A

• Symetryczna architektura
– jednakowy dostęp procesorów do pamięci operacyjnej oraz we/wy (na poziomie fizycznych przesyłów – tylko w systemach wieloprocesorowe z pamięcią wspólną fizycznie - UMA)
• Szybki dostęp do danych w pamięci wspólnej
• Problem - utrzymanie spójności pamięci podręcznych (cache):
– systemy UMA - snooping lub katalog
– systemy NUMA - katalog
• Łatwe programowanie (realizacja algorytmów równoległych)
• Niska (UMA) i średnia (NUMA) skalowalność

91
Q

Systemy MMP Systemy wieloprocesorowe z pamiecia rozproszona.

A

Skrót
MPP – Massively Parallel Processors

Organizacja dostępu do wspólnej pamięci
– połączenia punkt – punkt
– przełącznica krzyżowa
– połączenie pierścieniowe
– sieć łącząca typu krata (mesh)

Serwery 2, 4, 8-procesorowe (systemy wieloprocesorowe z pamięcią wspólną)
• Cechy wyróżniające serwerów
– duża pamięć podręczna
– możliwość dołączenia dużej pamięci operacyjnej
– znaczna liczba linii PCIe (dyski, dyski SSD)
– łącza do innych procesorów (Intel QPI, UPI)
– inne: moc zasilania, chłodzenie
• Sieci łączące procesory serwerów
– zapewnienie wymiany danych
– zapewnienie spójności pamięci podręcznych

92
Q

Rodzaje węzłów w MMP

A
  • Procesor + PaO
  • System wieloprocesorowy z pamiecia wspólna UMA
  • System wieloprocesorowy NUMA (z niejednorodnym dostepem do pamieci)
93
Q

Warianty systemów wieloprocesorowych z pamięcią rozproszoną

A

• Systemy MPP (masywnie równoległe - Massively Parallel Processors). Inna nazwa Systemy luźno połączone
– Węzły – procesory specjalnie projektowane lub procesory „z półki”
– Sieci łączące - unikalne rozwiązania (Custom Interconnect, Proprietary Network)
• Klastry – Węzły. Inna nazwa systemy z przesyłaniem komunikatów
– serwery „z półki” – Sieci łączące – standardy: Gigabit Ethernet, Infiniband, Omni-Path

94
Q

Systemy MMP - topologia

A
  • Hipersześcian
  • Krata 2D, 3D
  • Torus 2D, 3D
  • Przełącznica krzyżowa (hierarchiczne przełącznice krzyżowe
  • Sieci wielostopniowe (Omega, Butterfly, grube drzewo, Dragonfly i inne)
  • Sieci specjalizowane – niestandardowe, firmowe (proprietary / custom network )
95
Q

Obsługa przesyłu komunikatów w MMP

A

Obsługa przesyłu komunikatów w węzłach systemu wieloprocesorowego.
• Programowa obsługa przesyłu przez procesory węzłów pośredniczących (systemy I generacji)
• Sprzętowa obsługa przesyłu przez routery węzłów pośredniczących, bez angażowania procesorów (systemy II generacji)

96
Q

Problemy projektowania systemów MPP

A
  • Wybór procesora (projekt specjalizowanego procesora?)

* Wybór sieci łączącej (projekt specjalizowanej sieci łączącej?)

97
Q

Narzędzia programowe

A

Narzędzia programowe wspierające budowę programów z przesyłaniem komunikatów:
• PVM (Parallel Virtual Machine)
• MPI (Message Passing Interface)
• Inne (Cray SHMEM, PGAS )

98
Q

Podsumowanie systemów MPP

A

Hierarchiczna architektura
• Węzeł: procesor, system UMA, (system NUMA)
• Bardzo duża skalowalność
• Wolniejsza (na ogół) komunikacja – przesył komunikatów
• Dedykowane, bardzo szybkie, sieci łączące

99
Q

Klastry

A

Klaster - zestaw połączonych razem komputerów, pracujących jako jeden system (System wieloprocesorowy z pamięcią rozproszoną – zbudowany z gotowych elementów)

100
Q

Ogólna charakterystyka klastrów

A
• Węzły: 
‒ serwery (systemy SMP)
 ‒ komputery PC 
• Sieci łączące: 
‒ sieci specjalizowane 
– starsze rozwiązania 
‒ sieci LAN (Local Area Network )
 ‒ sieci specjalizowane - nowsze rozwiązania 
• Komunikacja między węzłami: 
‒ przesył komunikatów 
• System operacyjny
‒ Linux 
‒ Unix 
‒ Windows

• Infrastruktura scalająca:
‒ MPI (Message Passing Interface)
‒ PVM (Parallel Virtual Machine)
‒ SSI (Single System Image)
• Cele budowy klastrów:
‒ wysoka wydajność (klastry wydajnościowe, klastry obliczeniowe) (High-performace clusters)
‒ wysoka niezawodność (klastry niezawodnościowe) (Highavailability clusters)
‒ równoważenie obciążenia (klastry równoważenia obciążenia) (Load balancing clusters)
• Bardzo dobra skalowalność
• Wysoka moc obliczeniowa przy dużej niezawodności
• Wydajna realizacja algorytmów z równoległością poziomu zadań • Korzystny wskaźnik ceny do wydajności
• równoważenie obciążenia

101
Q

Konstrukcyjne modele klastrów

A
  • Serwery wolnostojące połączone siecią
  • Systemy stelażowe (rack)
  • Systemy kasetowe (blade)
102
Q

Serwery wolnostojące połączone siecią (klastry)

A

• Zalety:
‒ Pełna elastyczność doboru węzłów (serwerów) i elementów sieci
‒ Możliwość instalowania sprzętu różnych dostawców

• Wady
– Duża zajmowana powierzchnia (przestrzeń)
– Konieczność projektowania i instalowania wszystkich elementów klastra

103
Q

Systemy stelażowe (klastry)

A

• Zalety:
‒ Możliwość instalowania obok siebie serwerów różnych dostawców (ważne przy rozbudowie / unowocześnianiu )
‒ Duża elastyczność doboru serwerów, dysków, elementów sieci (różna wysokość)
‒ Tańsze od systemów kasetowych
• Wady
– Dość duża zajmowana powierzchnia (przestrzeń)
– Konieczność doboru i instalowania:
• zasilaczy i kabli zasilających
• urządzeń i kabli sieciowych
• chłodzenia

104
Q

Systemy kasetowe (blade) (klastry)

A

• Zalety:
‒ Jedna obudowa typu blade
‒ Jednolita postać kaset dla serwerów, dysków i kart sieciowych
‒ Wspólne zasilanie i chłodzenie
– jeden kabel zasilający
‒ Prostsze okablowanie sieciowe
‒ Proste i łatwe zarządzanie (gotowe narzędzia)
‒ Mniejsze wymiary i duża gęstość upakowania
‒ Możliwość wymiany kaset „na gorąco”
• Wady:
‒ Możliwość instalowania tylko identycznych serwerów (jeden dostawca)
‒ Ograniczona skalowalność (w granicach obudowy)
‒ Kłopotliwe „zarządzanie” wydzielanym ciepłem (gęste upakowanie urządzeń)
‒ Droższe od systemów stelażowych

105
Q

Trzy rodzaje sieci w klastrach

A

1) Szybka sieć łącząca węzły między sobą, służąca do wymiany komunikatów.
2) Sieć zapewniająca dostęp węzłów do wspólnej pamięci zewnętrznej – dyski (macierz dyskowa) (zwykle Fibre Channel).
3) Sieć umożliwiająca dostęp komputerom klienckim do klastra (zwykle Ethernet).

106
Q

Fibre Channel

A
  • Technologia sieciowa o dużej przepustowości (do 128 Gb/s) stosowana zwykle do łączenia komputera z pamięcią zewnętrzną (szybkie bezstratne przesyłanie nieprzetworzonych danych blokowych)
  • Standard magistrali szeregowej definiujący wielowarstwową architekturę
  • Powstał w 1988 jako uproszczona wersja HIPPI
  • Łącza światłowodowe i miedziane
  • Głównym stosowanym protokołem jest SCSI, ponadto ATM, TCP/IP
107
Q

Sieci łączące węzły w klastrach

A

• Sieci wielostopniowe
• Elementy składowe sieci
– przełączniki (stanowiące przełącznice krzyżowe)
• Różne topologie połączeń przełączników
– ważna własność nieblokowalności (sieć nieblokująca)
– topologia grubego drzewa (fat tree) - najpopularniejsza

108
Q

Sieci łączące w klastrach - różnice

A

Parametry
– przepustowość, czas opóźnienia
Topologia
– Ethernet – magistrala, gwiazda, struktury hierarchiczne
– Sieci specjalizowane – sieć przełączników (switched fabric) – popularna topologia „grubego drzewa”

109
Q

InfiniBand

A
  • Standard otwartego, szeregowego, wielokanałowego interfejsu I/O o wysokiej przepustowości i krótkim czasie dostępu
  • Stosowany jako sieć łącząca w systemach HPC (HighPerformance Computing)
  • Stosowane są łącza miedziane oraz optyczne
  • Sieci InfiniBand tworzą topologię sieci przełączników (switched fabric or switching fabric), w której węzły łączą się przez jeden lub wiele przełączników sieciowych – w przeciwieństwie do wczesnych rozwiązań Ethernetu ze współdzielonym medium transmisyjnym.
110
Q

Opis elementów (sieci klastrów)

A
  • Adaptery węzłów posiadają sterowniki DMA dla szybkiego odczytu pamięci oraz mikroprocesory sterujące
  • Przełącznikami sa przełącznice krzyżowe
  • Posiadają adapter kanałowy urządzenia zewnętrznego
111
Q

Cechy transmisji (sieci klastrów)

A
  • Każda transmisja w oddzielnym kanale przy realizacji połączenia punkt – punkt
  • Komunikat dzielony na pakiety (4 KB)
  • Pakiet rozpoczyna 128-bitowy nagłówek adresowy, dekodowany w każdym przełączniku
  • Przesył pakietu przez przełącznik do kolejnego przełącznika (punktu) bez kompletowania całego pakietu w przełączniku (cut through routing, wormhole routing)
112
Q

Warstwy protokołów sieci Infiniband

A

fizyczna, łączy, sieci, transportowa

113
Q

Rodzaje komunikatów (sieci klastrów)

A
  • Operacja odczytu lub zapisu bloku danych w trybie RDMA (Remote DMA) pomiędzy pamięciami operacyjnymi dwóch węzłów
  • Kanałowa operacja send lub receive
  • Transmisja komunikatu w trybie rozgłaszania (multicast)
  • Operacja oparta na modelu transakcji (z możliwością wycofania)
114
Q

Parametry łączy (sieci klastrów)

A
  • Opóźnienie przesyłu między punktami rzędu 1 mikrosekundy

* Struktura sieci często jest oparta o topologię grubego drzewa (”fat tree”)

115
Q

Czynniki tworzące wysoką niezawodność klastrów

A
  1. Redundancja węzłów (mocy obliczeniowej)
  2. Dostęp do wspólnych zasobów (pamięci zewnętrznych)
  3. Macierze dyskowe - RAID
  4. Mechanizmy kontrolujące funkcjonowanie węzłów
  5. Redundancja sieci łączących (dla 3 rodzajów sieci)
  6. Redundancja zasilania
116
Q

Redundancja węzłów (mocy obliczeniowej) (sieci klastrów)

A
  • Model klastra „aktywny - pasywny”
  • Model klastra „aktywny - aktywny”
  • Modele mieszane
117
Q

Warianty modelu mieszanego (sieci klastrów)

A
  • N +1 – jeden węzeł dodatkowy, o uniwersalnych możliwościach zastąpienia każdego z pozostałych (jak na poprzednim rysunku)
  • N + M – zwiększenie liczby dodatkowych węzłów do M w celu zwiększenia redundancji w przypadku dużej różnorodności usług świadczonych przez węzły
  • N – to – N – kombinacja modeli „aktywny - aktywny” oraz „N + M” – redystrybucja zadań węzła uszkodzonego na kilka innych węzłów aktywnych
118
Q

Warianty dostępu do wspólnych zasobów (sieci klastrów)

A
  • Zasada „współdziel wszystko”

* Zasada „nie współdziel nic”

119
Q

Macierze dyskowe (sieci klastrów)

A

Mirroring

RAID

120
Q

Mechanizmy kontrolujące funkcjonowanie węzłów

(sieci klastrów)

A
  • Programy agentów + mechanizm „heartbeat”

* Procedura redefiniowania klastra po awarii („fail-over”)

121
Q

Heartbeat

A

– Regularne sygnały wysyłane przez każdy węzeł w sieci łączącej węzły klastry, świadczące o poprawnej pracy węzła
– Mechanizm ”heartbeat” jest wykorzystywany w procedurze ”fail-over”
– Heartbeat – równiez system (program) zarządzania klastrami o wysokiej niezawodności, oparty na Linux-HA (High-Availability Linux)

122
Q

Fail-over

A

– Zdolność do automatycznego przełączenia systemu, który uległ awarii (również aplikacji, serwera lub sieci) na system rezerwowy
– Operacja przełączania jest podejmowana na podstawie śledzenia sygnału ”heartbeat”
– Wniektórych rozwiązaniach operacja ”fail-over” wymaga częściowego nadzoru administratora ”automated with manual approval”
– ”Fail-back” – powrót do stanu początkowego po usunięciu awarii

123
Q

Problem rywalizacji o zasoby po awarii (sieci klastrów)

A

Tzw. problem split-brain.

124
Q

Mechanizm quorum

A
  • Quorum disk – zawiera bazę danych (plik) z opisem konfiguracji klastra i informacjami o wszystkich obiektach zarządzanych przez klaster.
  • W danej chwili quorum disk może być w posiadaniu tylko jednego węzła.
125
Q

Klastry - podsumowanie

A
  • Węzły – typowe serwery SMP „z półki” + pełna instancja systemu operacyjnego
  • Sieci łączące – standardy: Gigabit Ethernet, Infiniband, Omni-Path • Komunikacja między węzłami (procesami) – przesył komunikatów
  • Wydajna realizacja algorytmów z równoległością poziomu zadań
  • Bardzo wysoka skalowalność
  • Cele budowy: wysoka wydajność lub/i wysoka niezawodność, równoważenie obciążenia
  • Korzystny wskaźnik: cena/wydajność