Documente Academic
Documente Profesional
Documente Cultură
calcul
Cursul 6
Sisteme multi-core
Multithreading si multi-processing -
(sisteme) multifir si multiprocesor
Exploatarea diferitelor forme de paralelism:
Paralelism la nivel de date - data level parallelism (DLP) – aceeasi
operație pe un set de date – arhitectura SIMD, UAL multiple
Paralelism la nivel de instructiuni - instruction level parallelism (ILP) –
fazele instructiunilor executate in paralel – arhitectura pipeline
Paralelism la nivel de fire de executie -thread level parallelism (TLP) –
fluxuri de instructiuni executate in paralel – hyper-treading, arhitecturi
multiprocesor (multi-core, GRID, cloud, parallel computers)
t ts
S s Exemple:
tp (1 q )ts qts / n q=50%, n->∞ => S=2
1
q=75%, n->∞ => S=4
1 q q / n
q=95%, n->∞ => S=20
Hyper-threading
hyper-treading – executia paralela a mai multor fluxuri de
instructiuni pe un singur UCP (pipeline)
Idea: atunci când un fir este blocat din cauza unor cazuri de
hazard, un alt fir poate fi executat
Solutia:
două fire executate în paralel pe aceeași linie pipeline
Dupa fiecare faza se pun 2 buffere (registre) care pastreaza rezultatele
partiale pentru cele doua fire
Cresterea de performanta - Speedup – aproximativ 30%
Sistemul de operare va detecta 2 UCP-uri logice !!
Un fir de Thread IF ID Ex M Wb
executie
Thread 1
Hyper
threaded IF ID Ex M Wb
Thread 2
Multiprocesoare
Executarea în paralel a fluxurilor de instrucțiuni pe mai
multe UCP-uri
Implementari:
Arhitecturi multi-core – UCP-uri multiple intr-un singur circuit
integrat
Calculatoare paralele – UCP-uri multiple in circuite integrate
separate, dar in acelasi sistem de calcul
Sistem de calcul distribuit – UCP-uri multiple in calculatoare
diferite, conectate intr-o retea
• PC-uri in retea
• Arhitecturi GRID – Resurse de calcul distribuite pentru organizatii
virtuale, pentru procesare pe loturi (batch)
• Arhitecturi cloud– resurse de calculator(executie si stocare) oferite ca
servicii (inchiriabile in mod dinamic);
Combinatii intre toate cele de mai sus: multi-core pe calculatoare
paralele, conectate intr-un sistem distribuit
Procesoare multi-core
De ce multi-core:
Dificil de a mari frecvențele ceasului pe un core; în ultimii 4-5 ani
creșterea frecvenței ceasului s-a saturat la 2,5-3 GHz
consumul de energie ridicat și problemele de disipare (frecvența
mai mare înseamnă mai multă putere)
arhitecturile pipeline și-au atins limitele de eficiență (aproximativ
20 faze este maxim posibil)
proiectarea unui procesor foarte complex (cu mai multe scheme
de optimizare implicate) necesită coordonarea unor echipe de
proiectare foarte mari
multe aplicații noi sunt multithreaded (de exemplu, servere care
rezolvă mai multe solicitări concurente, sisteme de agenți, jocuri,
simulare etc..)
Procesoare multi-core (multi-nucleu)
Probleme (decizii posibile):
funcționalități identice sau diferite pentru procesoare (procesoare
omogene v.s. eterogene)
• symmetric cores (SMP – Symmetric multi-core processor) – fiecare
nucleu are aceeași structură și funcționalitate
• asymmetric cores (ASMP) – există nuclee de coordonare și nuclee
specializate (mai simple)
relația cu memoria
• symmetric memory access - the SYMA - acces simetric la memorie
• non-uniform memory access – NUMA - acces asimetric la memorie
conexiunea dintre nuclee
• Magistrala comuna – paralela sau de tip retea (vezi network-on-chip)
• crossbar – conexiuni multiple controlate peintr-un comutator
• Ierarhie de memorii (cache) – zone comune de memorie
Procesoare multi-core
Solutii arhitecturale
L1 L1 L1 L1
L1 L1
Switch L2 L2
crossbar
L2
L3 L3
L2 Switch Switch
Core Core
Local Local L2 L2
Store Store
Memory Memory
I/O
Module
write inconsistency
Read Memory
Procesoare multi-core
Nuclee asimetrice v.s. simetrice
Arhitectură simetrică
• toate nucleele sunt la fel
• nucleele pot îndeplini orice sarcini; ele sunt interschimbabile
• Avantaje:
ușor de construit (replicare simplă),
ușor de programat, de compilat și de executat programe
multithreaded
• Dezavantaj:
Nuclee mai putine (nu incap prea multe nuclee complexe)
• exemple:
Intel, AMD - Dual si Quad core, Core2,
SUN - UltraSparc T1 (Niagara) – 8 coruri identice
Procesoare multi-core
Nuclee asimetrice v.s. simetrice(cont.)
Arhitectură asimetrică (eterogenă)
• unele nuclee au funcționalități diferite:
1-2 nuclee master si mai multe nuclee slave (mai simple)
1 nucleu principal și mai multe nuclee specializate (grafică,
virgula flotanta, multimedia)
• compilatoarele ar trebui să ia în considerare funcționalitățile
care pot fi efectuate de fiecare nucleu
• Advantaje:
poate integra mai multe nuclee simple
• Dezavantaj:
Compilare mai dificila; compilatorul sa tina cont de tipurile de
nuclee existente
• exemple:
IBM – cell processor – folosit pentru Playstation 3
Procesoare multi-core
Arhitectură asimetrică
(eterogenă)
Arhitectura IBM cell: 9 nuclee
• 1 PPE - power processor element
coordonarea și transferul de date
• 8 SPEs - Synergistic Processing
Element
unități matematice specializate
• aplicatii:
superccalculatoare
Playstation-uri
home cinema
Interfete video
Procesoare multi-core
Avantajele procesoarelor multi-core:
Semnalele între diferite procesoare parcurg distanțe mai scurte,
aceste semnale se degradează mai puțin.