ORR W3

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Architektury systemów komputerowych

do obliczeń równoległych

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Przegląd

komputer von Neumanna

abstrakcyjne maszyny RAM i PRAM

klasyfikacja Flynna 

komputery macierzowe

komputery wektorowe

współczesne procesory

systemy wieloprocesorowe

systemy wielokomputerowe

sieci i klastry stacji roboczych i komputerów osobistych

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Architektura von Neumanna

program i dane w pamięci komputera

pojedynczy procesor:

pobiera rozkaz z pamięci

rozkodowuje rozkaz i znajduje adresy argumentów

pobiera dane z pamięci

wykonuje operacje na danych

zapisuje wynik w pamięci

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Pomysły na równoległość 1

Teoretyczne modele obliczeń (do analizy algorytmów)

maszyna o dostępie swobodnym (RAM) 

równoległa maszyna o dostępie swobodnym (PRAM) – pominięcie 

zagadnień czasowej złożoności synchronizacji i komunikacji, 

koncentracja na współbieżności z pełną synchronizacją

EREW – wyłączny odczyt, wyłączny zapis

CREW– jednoczesny odczyt, wyłączny zapis

ERCW– wyłączny odczyt, jednoczesny zapis

CRCW– jednoczesny odczyt, jednoczesny zapis; strategie:

jednolita (common) – dopuszcza zapis tylko identycznych danych

dowolna (arbitrary) – wybiera losowo dane do zapisu

priorytetowa (priority) – wybiera dane na zasadzie priorytetów

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Pomysły na równoległość 1

Algorytm obliczania elementu maksymalnego tablicy A na n

2

 

procesorowej maszynie CRCW PRAM ze strategią jednolitą:

element_maks( A, p, k ): maks{ // uchwyt do tablicy i skrajne indeksy

DLA i= p,...,k { 

||

 m[i] := PRAWDA }

// tablica pomocnicza m

DLA i=p,...,k{

// dzięki użyciu n

2

 procesorów równoległe 

DLA j=p,...,k{

// wykonanie pętli zajmuje O(1) czasu 

||

JEŻELI( A[i] < A[j] ) m[i] := FAŁSZ

} }
DLA i=p,...,k { 

||

JEŻELI( m[i]=PRAWDA ) maks := A[i] }

ZWRÓĆ maks

}

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Pomysły na równoległość 2

zwielokrotnienie strumieni przetwarzania rozkazów i danych

klasyfikacja Flynna

SISD (oryginalna architektura von Neumanna)

SIMD – jeden strumień rozkazów i wiele strumieni danych

MISD – wiele strumieni rozkazów i jeden strumień danych (w teorii coś na 

kształt taśmy produkcyjnej, w praktyce brak przykładów)

MIMD – wiele strumieni danych i wiele strumieni rozkazów

warianty

z pamięcią wspólną – konieczna wysoka przepustowość dostępu do pamięci

z pamięcią rozproszoną – brak pojedynczej przestrzeni adresowej

hybrydowe (rozproszona pamięć wspólna – DSM, distributed shared 

memory, zwana także wirtualną pamięcią wspólną) – problem spójności

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Pomysły na równoległość 3

Rozwój architektur procesorów – procesory wektorowe

w procesorze jednostki skalarne i wektorowe (czasem adresowe)

operacje wektorowe (w tym operacje redukcji)

op V ­> V (np. a[i]:= ­b[i])

op V ­> S – redukcja (np. r:=max(b[i]))

V op V ­> V (np. a[i]:=b[i]+c[i])

V op S ­> V (np. a[i]:= s*b[i])

dostęp do pamięci: wielobankowość, przeplot, potoki

rejestry wektorowe (długość 64 do 128) – w tym maska

potokowe jednostki funkcjonalne

łączenie operacji w łańcuchy (chaining) (a[i] := b[i] + s*c[i] )

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Pomysły na równoległość 4

Rozwój architektur mikroprocesorów

prawo Moore'a

równoległość na poziomie realizacji pojedynczych rozkazów 

(ILP – instruction level parallelism)

procesory potokowe – podział realizacji rozkazu nie na dwa, ale 

na wiele etapów (Northwood – ok. 20, Prescott – ok. 30)

procesory superskalarne (wiele jednostek funkcjonalnych w 

jednym procesorze, możliwość realizacji wielu identycznych 

rozkazów w każdym cyklu)

procesory wielordzeniowe (kilka potokowych superskalarnych 

rdzeni na jednej płytce)

procesory VLIW

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Pomysły na równoległość 4

Problemy przetwarzania potokowego:

hazardy (konflikty jednocześnie wykonywanych różnych faz 

różnych rozkazów zaburzające płynne funkcjonowanie potoku):

strukturalne – klasyczna konkurencja o zasoby procesora

sterowania – związane z rozgałęzieniami 

danych – WAR, WAW, RAW

zależności danych (hazardy danych z punktu widzenia 

programowania)

anty­zależności – WAR – zapis po odczycie

zależności wyjścia – WAW – zapis po zapisie

rzeczywiste zależności (danych) – RAW – odczyt po zapisie

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Pomysły na równoległość 5

Systemy równoległe z procesorów ogólnego przeznaczenia 

(superskalarnych, wielordzeniowych, VLIW)

SMP – symetryczna wieloprocesorowość

szybki, jednolity dostęp do wspólnej pamięci i innych zasobów

DSM – systemy z pamięcią hierarchiczną

systemy masywnie równoległe – bez globalnego mechanizmu 

pamięci wspólnej, złożone z pojedynczych procesorów lub 

wieloprocesorowych węzłów przetwarzających (np. SMP lub DSM)

klastry i sieci stacji roboczych – podobnie jak systemy masywnie 

równoległe lecz złożone z odrębnych komputerów (jedno lub 

wieloprocesorowych) 

background image

Krzysztof Banaś

Obliczenia równoległe i rozproszone.

Podsumowanie

Praktyczne alternatywy:

programowanie sekwencyjne ze zrównolegleniem:

niejawnym poprzez układ procesora superskalarnego

niejawnym poprzez automatyczny kompilator zrównoleglający

programowanie w modelu z pamięcią wspólną

programowanie w modelu równoległości danych

programowanie w modelu z przesyłaniem komunikatów

programowanie w hybrydowym modelu łączącym oba powyższe


Wyszukiwarka

Podobne podstrony:
Systemy Bezprzewodowe W3
Gospodarka W3
w3 skrócony
AM1 w3
w3 recykling tworzyw sztucznych
Finansowanie W3
W2 i W3
so w3
UE W3 cut
W3 Elastycznosc popytu i podazy
reprod w3 2008
W3 Sprawozdawczosc
W3 Opakowania
zsf w3 pdf
chrobok w3

więcej podobnych podstron