Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Arhitectura Sistemelor de Calcul
Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare
cs.ncit.pub.rocurs.cs.pub.ro
2
Cuprins
• Structura SIMD
• Probleme de Comunicatii intre Procesoareleunui Sistem SIMD
• Deplasarea Ciclica a Datelor intreProcesoare
• Intercalarea Perfecta – Shuffle
• Conectarea Inversa – Inverse Shuffle
• Permutari Elementare
3
Structura SIMD – Probleme• Arhitecturile SIMD – adecvate prelucrarilor vectoriale1. Cresterea vitezei masinii SIMD:
– Datele trebuiesc plasate in module distincte de memorie2. Utilizarea eficienta a procesoarelor:
– Datele trebuiesc permutate pt a furniza operanzi pentru calcule• Pt rezolvarea celor doua probleme: necesare RC P-P si P-M
P1 M1
UCmdP2 M2
PnMn
FI
FD1
FD2
FDn
SistemI/O
SwitchP-PP-M
4
Retele de Comutatie• Retelele de comutatie (RC) P-P sunt implementate
la nivelul procesoarelor
• Retelele de comutatie P-M pot fi implementate facilcu switch-uri Cross-Bar– Pt. n procesoare sunt necesare n(n-1)/2 SP → costul
devine prohibitiv (65k Procs → 4Mrd+ Switches)
• Sunt necesare RC adecvate fiecarei aplicatii (masinidedicate); aceste RC ofera:– Fiabilitate– Costuri reduse– Viteza mare de comutatie/transfer– Facilitati de intretinere
The Trade-off…Reduced Parallelism!
5
Cuprins
• Structura SIMD
• Probleme de Comunicatii intre Procesoareleunui Sistem SIMD
• Deplasarea Ciclica a Datelor intreProcesoare
• Intercalarea Perfecta – Shuffle
• Conectarea Inversa – Inverse Shuffle
• Permutari Elementare
6
Interconexiunea Circulara• Deplasarea ciclica a datelor intre procesoare
• Conexiunile sunt permise numai cu vecinii
• Nu exista conexiuni directe intre i si j • Sunt maxim [(i-j-1)% n] noduri intermediare
P1 P2
Pi-1
P0
Pi
Pn
Pi+1
…
…
• Exemple de domenii de aplicatie:– Adecvate rezolvarii ecuatiilor
diferentiale de ordinul 1: x[i] = x[i-1] + x[i+1] – 2x[i]
– Propagarea caldurii printr-o bara– Aplicatii meteo – prognoza vremii in
diferite puncte ale globului se face in paralel cu aceleasi date
7
Interconexiunea Matriceala• Asigura comunicarea cu patru procs vecine• Daca dependenta este de felul: x[i,j] = x[i+1,j] + x[i-1,j] + x[i,j+1] + x[i,j-1] – 4x[i,j]→ de ex: evoluatiatemperaturii in volumul unui material
• ILLIAC 4 – primul SIMD (64 procs) – 90% la fel si acum
…
…
i,j i,j+1
i-1,j
i+1,j
i,j-1
…
8
Cuprins
• Structura SIMD
• Probleme de Comunicatii intre Procesoareleunui Sistem SIMD
• Deplasarea Ciclica a Datelor intreProcesoare
• Intercalarea Perfecta – Shuffle
• Conectarea Inversa – Inverse Shuffle
• Permutari Elementare
9
Intercalarea Perfecta – Shuffle• Este adecvata pentru:
– Transformata Fourier (FFT – Fast Fourier Transformation)– Algoritmi de sortare– Transpuneri de matrice
• Asigura conectarea intre procesoarele unei structuriSIMD de n procesoare cu:– n-2 comunicatii simultane– dupa log2n iteratii datele ajung pe procesorul sursa
…P1
P0
Pnlog2n times
…P1
P0
Pn
Switch
10
Shuffle – 8 Procesoare
P1
P0
P3
P2
P4
P6
P5
P7
P1
P0
P3
P2
P4
P6
P5
P7
P1
P0
P3
P2
P4
P6
P5
P7t t + 1
11
•Doua RC:–Shuffle–Adiacenta (pt F & G):
– F e pe Yi = pare– G e pe Yi+1 = impare
–log2n iteratii
•Utilizare: sortari, FFT, transpuneri, functii cu operatii recurente
Shuffle – 8 Procesoare
P1
P0
P3
P2
P4
P6
P5
P7
P1
P0
P3
P2
P4
P6
P5
P7t t + 1
G
F
G
F
F
F
G
G
for i = 1 to log2nshuffle[y]Yi = F[Yi,Yi+1]Yi+1 = G[Yi,Yi+1]
end i loop
RC Shuffle RC F & G
12
• Pentru sortari:– F calculeaza maximul celor doi operanzi– G calculeaza minimul celor doi operanzi
• Pentru FFT:– F produce suma ponderata– G produce diferenta ponderata– Ponderile sunt calculate dinamic la fiecare pas al iteratiei
• Pentru transpunerea matricelor:– Organizarea directa a matricei– F = Yi
– G = Yi+1
Shuffle – Aplicatii
13
•Suma elementelor unui vector•Daca vectorul e intr-o singuramemorie → secvential:
•Se poate reduce O(n) pe SIMD?•Distribuim vectorul intre memorii•Probleme:
–Incarcarea neechilibrata a procs–La fiecare pas trebuie schimbata RC in mod dinamic
Shuffle – Aplicatii Iterative
sum = 0for i = 0 to n-1
sum += aiend i loop O(n)
A1
A0
A3
A2
A4
A6
A5
A7
+
+
+
+
+
+
+
Ai
O(log2n)
14
Shuffle – Aplicatii Iterative (cont)
• Sunt necesare– Comunicare liniara– RC statica
• Reconfigurareaconexiunilor e maisimpla
• Dezavantaj: este in continuare necesarareconfigurarea la fiecare pas!
• Complexitate:O(log2n)
A1
A0
A3
A2
A4
A6
A5
A7
+
+
+
+
+
+
+ Ai
+
+
+
+
+
+
+
+
+
+ Sumepartiale
15
Cuprins
• Structura SIMD
• Probleme de Comunicatii intre Procesoareleunui Sistem SIMD
• Deplasarea Ciclica a Datelor intreProcesoare
• Intercalarea Perfecta – Shuffle
• Conectarea Inversa – Inverse Shuffle
• Permutari Elementare
16
Inverse Shuffle• Adecvat pentru operatii
recurente, calculabile in log2n pasi
• Suma elementelor unui vector:
• Legatura identica pentru toateiteratiile:– O legatura directa– Un Inverse Shuffle
Yi = Ai (0 ≤ i ≤ n-1)for j = 1 to log2n
Yj = Yj + Yj-1invshuffle[Y], MASK compute MASK
end j loop
P1
P0
P3
P2
P4
P6
P5
P7
P1
P0
P3
P2
P4
P6
P5
P7t t + 1
17
Inverse Shuffle – Aplicatii Iterative
1
0
3
2
4
6
5
7
+
+
+
+
+
+
+
+
1
0
3
2
4
6
5
7
•Legatura (RC) identica pentru toate iteratiile:
–O legatura directa: Yj = Yj + Yj-1–Un Inverse Shuffle
•Mastile se modifica si ele prin Inverse Shuffle la fiecare iteratie
–MASK = 0 → procesor inactiv–MASK = 1 → procesor activ: (F & G = +)
•La anumite iteratii, unele procesoare pot fi inactivate de masti•Notam
j
ikij kAY )( O(log2n)
18
Inverse Shuffle – RC
1
0
1
1
1
1
1
1
A1
A0
A3
A2
A4
A6
A5
A7
P1
P0
P3
P2
P4
P6
P5
P7
Y11
Y00
Y33
Y22
Y44
Y66
Y55
Y77
MASK
Y01
Y00
Y23
Y12
Y34
Y56
Y45
Y67
IS 1
Y12
Y00
Y56
Y34
Y01
Y45
Y23
Y67
1
0
1
1
0
1
1
1
MASK
Y02
Y00
Y36
Y14
Y01
Y25
Y03
Y47
IS 2
Y14
Y00
Y25
Y01
Y02
Y03
Y36
Y47
1
0
1
0
0
0
1
1
MASK
Y04
Y00
Y05
Y01
Y02
Y03
Y06
Y07
IS 3
Y01
Y00
Y03
Y02
Y04
Y06
Y05
Y07
19
Concluzii Structuri SIMD
• Probleme adecvate structurilor SIMD:– Calculele trebuiesc descrise de iteratii de tip vector a.i.
majoritatea timpului sa fie ocupat cu operatii cu caracteridentic
– Operanzii (simultani) trebuiesc repartizati in module diferite de memorie
– Trebuiesc identificate conexiunile intre operanzi a.i. ele safie cat mai aproape de conexiunile fizice intre procesoare
• Clasa problemelor SIMD nu este universala → doarprobleme dedicate se preteaza!
• Algoritmii, sistemele de interconectare si structuradatelor trebuiesc adaptate in consecinta