Documente Academic
Documente Profesional
Documente Cultură
TIPURI DE ARHITECTURI
A. Clasificarea Flynn
1
Exemplu: nucleul SIMD la GPU Fermi (Nvidia)
2
Fig. 2.3. Structura arhitecturii MISD.
3
Exemple de sisteme MIMD cu cuplaj strâns/slab:
(a) paralelism pe cip
(b) coprocesor
(c) multiprocesor/multinucleu
(d) multicalculator/reţea
(e) grid
4
Fig. 2.5. Arhitectura sistemelor shared memory.
Fig. 2.8. Arhitectura UMA cu memorii cache locale LC-UMA (Local Cache UMA).
6
Arhitecturi cu memorie distribuită – DSM (Distributed Shared Memory)
Fig. 2.14. Organizarea datelor într-o matrice (m = nr. cuvinte, n = nr. biţi/cuvânt):
WSBS (m = 1, n = 1);
WSBP (m = 1, n > 1);
WPBS (m > 1, n = 1);
WPBP (m > 1, n > 1).
9
C. Clasificarea Tanenbaum
P1 1 2 3 4 5 6 7
P2 1 2 3 4 5 6
P3 1 2 3 4 5
P4 1 2 3 4
P5 1 2 3
t (număr impulsuri de ceas)
13
2. Calculatoare matriceale
14
3. Calculatoare multiprocesor
A. Soluţii HW
Condiţia de eficienţă:
Temă: identificaţi zonele din schemă în care se aplică paralelismul spaţial şi temporal.
19
a
c
Fig. 2.25. Modul de operare al tehnicilor: a. pipeline, b. (4) superpipeline şi c. superscalară.
20
(5) Suprapunerea operaţiilor CPU cu operaţiile I/O
(controlere DMA, canale IRQ, procesoare I/O etc.)
21
(7) Utilizarea unui sistem ierarhizat de memorie (fizică şi virtuală)
Sistem ierarhizat de memorie fizică: 5 niveluri (capacitatea şi timpul de acces cresc de sus în jos).
22
B. Soluţii SW
Temă. Refaceţi diagramele de timp ale soluţiilor software din fig. 2.27ab şi 2.28, pentru un număr
de 4 procese în paralel, cu următoarele valori ale duratelor etapelor de intrare, calcul şi ieşire
(exprimate în ms): i1 = i3 = 2, i2 = i4 = 1, c1 = 15, c2 = 5, c3 = 10, c4 = 20, o1 = o2 = 1, o3 = o4 = 2.
Rezolvaţi diviziunea în timp în două variante: cu şi fără proces dominant.
24
Noţiunea de multithreading
Thread = un set de instrucţiuni / o parte a aplicaţiei, care se execută independent în cadrul programului/sistemului.
Thread-urile răspund de multitasking-ul în cadrul unei singure aplicaţii.
Multithreading-ul presupune execuţia în paralel a mai multor procese, pentru a îmbunătăţi eficienţa sistemului.
Avantajele threading-ului:
sarcinile care cer mai mult timp de execuţie pot fi rulate în background;
interfaţa aplicaţiei este mai atrăgătoare şi mai simplă (se poate folosi o bară de progresie);
viteza aplicaţiei poate creşte;
thread-urile sunt utile dacă există decalaje între evenimente, eliberându-se resurse inactive la un moment dat.
Modelele de threading suportate de sistemele win32 sunt:
1. Modelul thread-ului unic (Single Thread Model)
Presupune rularea unui singur thread la un moment dat, iar restul thread-urilor aşteaptă.
Corespunde prelucrării pe loturi (batch processing).
2. Modelul Apartment Thread (Single Thread Apartment Model – STA)
Pot exista mai multe thread-uri execută în cadrul aplicaţiei, fiecare thread fiind izolat într-un „apartament”
separat în cadrul procesului. Fiecare proces poate avea mai multe apartamente, care pot partaja date între ele.
Cererile sunt ordonate prin Windows Message Queue, astfel încât doar un apartament poate fi accesat la un
moment dat. Corespunde multiprogramării.
3. Modelul Multithread Apartment (Free Thread Apartment Model – FTA)
Presupune existenţa unui singur apartament, în care nu este nevoie de ordonare, deoarece toate thread-urile
aparţin aceluiaşi apartament şi pot partaja resursele. Funcţionează pe principiul pipe-line. Corespunde
diviziunii în timp (time sharing). Ex.: mediul de programare Microsoft .NET Framework este de tip multithreading.
25
Evaluarea performanţelor multithreading
Utilizând de n ori mai multe resurse în paralel, un algoritm nu va rula de n ori mai repede, datorită
fenomenului de timp suplimentar (overhead), indus prin aplicarea paralelismului. Cauzele apariţiei acestuia:
interacţiunea între procese (transmiterea rezultatelor intermediare sau parţiale) şi sincronizarea proceselor;
inactivitatea temporară (idling), care înseamnă că există procesoare inactive pe anumite perioade de
timp, datorită încărcării inegale şi a aşteptării sincronizării;
calculele suplimentare, care nu apar în formularea serială a algoritmului.
Parametri de intrare:
timpul de execuţie secvenţial/serial: TS
(măsurat de la începutul şi până la sfârşitul execuţiei algoritmului pe un calculator secvenţial);
timpul de execuţie paralel: TP
(măsurat de la începutul execuţiei şi până la terminarea ultimului subtask în paralel);
numărul de procesoare: p.
Parametri de ieşire:
suprasarcina: TO (Total Parallel Overhead) = diferenţa dintre timpul total de lucru însumat al tuturor
procesoarelor şi timpul necesar celui mai rapid algoritm secvenţial: TO = Σi Ti – mini Ti, i = 1, 2, ..., p;
accelerarea: S (Speedup) = raportul dintre timpul necesar rezolvării unei probleme pe un procesor şi
timpul necesar rezolvării aceleiaşi probleme în paralel pe p procesoare (identice): Si = Ti / TP, i = 1, 2, ..., p
S = media aritmetică a valorilor Si; dacă cele p procesoare sunt identice în funcţionare S1 = S2 = ... = Sp = S;
eficienţa utilizării calculatorului paralel: E = S/p (mărime intensivă şi adimensională, care exprimă aportul
în accelerare adus pe un singur procesor, pentru orice valoare a lui p);
costul: C = TP p.
26
Exemplu de aplicare: multithreading on-chip.
(a)(c) trei thread-uri; (d) multithreading de granulaţie fină; (e) multithreading de granulaţie brută.
Temă. Fie un număr de p = 5 procesoare (care NU sunt identice), cu timpii de execuţie secvenţiali
sau seriali (în ordine): 12, 8, 16, 4, 20 [ms] şi timpul de execuţie paralel: TP = 24 [ms]. Calculaţi:
a) suprasarcina: TO
b) accelerarea: Si şi S
c) eficienţa: E
d) costul: C
Cum se modifică valorile calculate anterior dacă: 1) TP = 20 [ms]; 2) timpii de execuţie seriali sunt
toţi egali cu 10 [ms] (procesoarele sunt identice); 3) p (numărul de procesoare este foarte mare)?
29
Exemple de arhitecturi
A. Arhitecturi uniprocesor
30
Fig. 2.31. Schema arhitecturii generale pentru IBM 370/168.
45
Fig. 2.46. Arhitectura Intel Quad-core.
46
Fig. 2.47. Arhitectura AMD Quad FX.
47
Arhitectura AMD FX 8-core cu 4 module, bazată pe nucleul Bulldozer
FMAC = Fused Multiply–Add Capability (contopirea operaţiilor de şi pe 128 de biţi),
FP = Floating Point, NB = Northbridge, Scheduler = planificator de operaţii (Integer/FP)
48
D. Multiprocesare omogenă vs. multiprocesare eterogenă
Arhitectura (stânga) şi cipul (dreapta) Intel Core i7 cu 6 sau 8 nuclee (multiprocesare omogenă)
49
Arhitectura unui DVD-player, cu nuclee multiple şi funcţii diverse (multiprocesare eterogenă)