490 likes | 606 Views
Capitolul 3 Aspecte de organizare fizica a sistemelor paralele. Organizarea fizica a sistemelor paralele. Sisteme cu spatiu de adrese comun -> consistenta datelor “cache coherence” Sisteme cu comunicare prin mesaje -> retele de interconectare Maparea topologiilor.
E N D
Capitolul 3Aspecte de organizare fizica a sistemelor paralele
Organizarea fizica a sistemelor paralele • Sisteme cu spatiu de adrese comun -> consistenta datelor “cache coherence” • Sisteme cu comunicare prin mesaje -> retele de interconectare • Maparea topologiilor
Problema memoriilor cache in sisteme multiprocesor • Prezenta memoriilor cache conduce la posibilitatea ca mai multe copii locale ale aceleiasi date sa fie modificate independent de catre mai multe procesoare in acelasi timp => problema consistentei memoriilor cache (cache coherence)
Exemplu ilustrativ pentru problema Cache Coherence Cand se modifica valoarea unei variabile, toate copiile sale trebuie fie invalidate fie actualizate • Invalidate protocol (b) Update protocol Din: [Grama,Gupta,Kumar&Karypis]
Cache Coherence: Protocoalele Update si Invalidate • Daca un procesor citeste o valoare o singura data si apoi nu o mai utilizeaza, protocolul tip Update genereaza o regie excesiva • Daca doua procesoare realizeaza alternativ testari si actualizari pe o variabila, protocolul de tip Update este mai bun • False sharing: procesoare diferite actualizeaza parti diferite ale aceleiasi linii de cache. Problema apare la ambele protocoale • Alegerea intre protocol tip Update si tip Invalidate: tradeoff intre surplus de regie (update) si procesoare in stare idle (invalidate) • Majoritatea implementarilor se bazeaza pe protocoale tip invalidate
Protocolul Invalidate • Fiecare copie de date este asociata cu o stare • Exemplu de set de stari: shared, invalid, dirty. • In shared: exista mai multe copii valide. O actualizare a unei copii (comanda write a procesorului) marcheaza copia in cauza ca dirty si duce la generarea comenziii de invalidare pentru toate celelalte copii (prin comanda c_write) • In dirty: exista o singura copie valida, la manipularea acesteia nu este necesar sa se genereze comenzi de invalidare • In invalid: copia a fost invalidata deja, in consecinta o cerere de tip read asupra ei genereaza comanda de actualizare, ea devenind copie valida
Protocolul Invalidate Processor actions Coherence actions State diagram of a simple three-state coherence protocol. Din: [Grama,Gupta,Kumar&Karypis]
Implementarea Cache coherence protocols • De regula implementarile se fac prin mecanisme hardware • Snoopy cache systems • Directory based systems Pt detalii v. [GGKK] 2.4.6
Retele de interconectare • Retelele de interconectare furnizeaza mecanismule de transfer de date intre procesoare sau intre procesoare si memorii • Topologia retelelor de calculatoare: • Statica : legaturi directe(point-to-point) intre nodurle procesoare • Dinamica : contin legaturi si elemente de comutare (switch) • Un element de comutare (switch): • set de porturi de intrare si porturi de iesire => gradul sau (numarul total de porturi) • Costuri: • costul unui switch creste cu patratul gradului sau • Costul echipamentelor periferice este direct proportional cu gradul • Costul impachetarii este direct proportional cu numarul de pini
Retele cu topologie statica/dinamica Din: [Grama,Gupta,Kumar&Karypis]
Tipuri de topologii • Retea complet conectata (Completely connected) • Retea stea • Masiv linear (Linear array) • Masiv bidimensional (2D mesh) • Masiv k-dimensional (k-D mesh) • Hipercub • Retea arborescenta (Tree-Based network) • Magistrala partajata (Bus-based) • Retea crossbar • Retea multietape (Multistage network)
Metrici ale retelelor • Diametrul: • Distanta maxima intre 2 noduri procesoare • Distanta intre 2 noduri procesoare se defineste ca fiind calea cea mai scurta (in termenii numarului de legaturi directe) intre acestea • De dorit sa fie cat mai mic • Conectivitatea: • Numarul minim de drumuri diferite intre oricare 2 noduri • Numarul minim de arce care trebuie inlaturate oentru a rupe reteaua in 2 retele deconectate • De dorit sa fie cat mai mare • Latimea bisectiei (bisection width): • Numarul minim de legaturi care trebuie eliminate pentru a rupe reteaua in 2 jumatati egale (cvasi-egale daca reteaua are un numar impar de noduri) • De dorit sa fie cat mai mare
Metrici ale retelelor (cont) • Latimea de banda a unui canal (channel bandwidth): • rata maxima de comunicare intre capetele unei legaturi directe • Bisection bandwidth: • Bisection bandwidth = bisection width * channel bandwidth • De dorit sa fie cat mai mare • Cost: • numarul de legaturi • De dorit sa fie cat mai mic
Metrici ale retelelor – cazul retelelor dinamice • Diametrul: • distanta maxima intre doua noduri procesoare • Aproximata prin distanta maxima intre oricare doua noduri (procesoare sau switch) • Conectivitatea • De nod: Numarul minim de noduri (switch-uri) care trebuie eliminate pentru a fragnenta reteaua • De arc: Numarul minim de arce care trebuie eliminate pentru a fragmenta reteaua • Latimea bisectiei: • numarul minim de muchii care trebuie eliminate pentru a partitiona reteaua in doua jumatati cu acelasi numar de noduri procesoare (nodurile switch nu conteaza !)
Retea complet conectata si retea stea Din: [Grama,Gupta,Kumar&Karypis]
Retea complet conectata • Fiecare procesor este conectat cu toate celelalte procesoare • Diametrul = 1 • Conectivitatea = p-1 • Latimea bisectiei = p*p/4 • Cost : Numarul de legaturi este proportional cu O(p*p) • Complexitatea hardware nu permite realizarea acestui tip de retea pentru valori mari ale lui p • Asemanatoare cu retelele crossbar (diferenta e ca legaturile aici sunt statice)
Retea stea • Fiecare nod este conectat numai cu un nod comun (“centrul”) • Diametrul = 2 (Distanta intre oricare doua noduri este O(1)) • Conectivitatea = 1 • Latimea bisectiei = 1 • Cost = p-1 • Nodul central este punctul slab al retelei • Din acest punct de vedere, reteaua stea este asemanatoare cu magistrala comuna
Masive de procesoare: lineare, bidimensionale, k-dimensionale • Linear: fiecare nod are 2 vecini cu care este conectat direct. • Daca sunt legate si nodurile de la extremitati, reteaua se numeste inel sau tor 1-D • Masiv 2-D (2D mesh)(grila 2-D): fiecare nod “interior” are 4 vecini (N, S, E, V) • Exista si varianta de grila periodica (tor) (wraparound mesh) • Masiv k-D: prin generalizare, fiecare nod are 2k dimensiuni • Hipercub: caz special de masiv k-dimensional: K=log p, unde p este numarul total de noduri
Masive lineare Din: [Grama,Gupta,Kumar&Karypis]
Masive 2- si 3-dimensionale Din: [Grama,Gupta,Kumar&Karypis]
Hipercuburi Din: [Grama,Gupta,Kumar&Karypis]
Hipercuburi (cont) • Distanta maxima intre 2 noduri este log p • Fiecare nod are log p vecini • Distanta intre 2 noduri este data de numarul de pozitii binare in care difera numerele nodurilor (dist Hamming)
Retele arborescente (Tree-Based Networks) Din: [Grama,Gupta,Kumar&Karypis]
Retele arborescente (cont) • Distanta maxima intre doua noduri este 2logp. • Legaturile situate mai aproape de radacina au un trafic mai mare decat cele aflate mai aproape de baza • Varianta de arbore gras (fat tree): legaturile mai aproape de radacina constau din mai multe canale de comunicare • Topologiile arborescente sunt planare
Fat Trees Din: [Grama,Gupta,Kumar&Karypis]
Comparatie intre retelele cu topologie statica Din: [Grama,Gupta,Kumar&Karypis]
Magistrala partajata (cont) • Avantaje: cost redus, costul comunicarii intre oricare 2 noduri este acelasi, adecvata ptr operatii de broadcast, scalabilitate • Dezavantaje: probabilitate mare de conflict • Evaluare: • Diametru: O(1) • Conectivitate: O(1) • Latimea bisectiei: O(1) • Cost: O(p)
Retea crossbar Din: [Grama,Gupta,Kumar&Karypis]
Retea crossbar (cont) • Evaluare: • Diametru: O(1) • Conectivitate: O(1) • Latimea bisectiei: O(p) • Cost: O(p*p) => dezavantaj pentru numar mare de procesoare • Non-blocking: daca un procesor este conectat la o memorie, aceasta nu impiedica celelalte procesoare sa se conecteze la celelalte blocuri de memorie
Multistage Networks • Un compromis intre avantajele si dezavantajele retelelor crossbar si magistrala comuna: • Crossbar: scalabil in performanta, nu si in cost • Magistrala comuna: scalabil in cost, nu si in performanta
Multistage Networks (cont) • Retea Omega: • Conecteaza p procesoare la p blocuri de memorie • Are logp etape • Fiecare etapa contine p/2 comutatoare • Fiecare etapa conecteaza p intrari si p iesiri dupa un tipar de interconectare de tip perfect shuffle
Rutarea in retea omega • Rutarea unui mesaj de la sursa nr s la destinatia nr d • Se considera reprezentarile binare ale lui s si d => au log p biti, numar egal cu numarul de etape • La fiecare etapa, daca bitul curent din s = bitul curent din d comutatorul este in regim pass through, altfel este in regim cross-over • Este posibil ca accesul la un bloc de memorie de catre un procesor sa blocheze accesul la alt bloc de memorie al altui procesor => reteaua se numeste de tip blocking network
Comparatie intre retelele cu topologie dinamica Din: [Grama,Gupta,Kumar&Karypis]
Tehnici de mapare pentru grafuri • Ideal: prin asignarea de procese la procesoare, legaturile de comunicare directa intre procese sunt transpuse pe legaturi fizice directe intre procesoare • In practica: difera tiparul de comunicare intre procesele programului paralel de topologia retelei de interconectare • Se utilizeaza tehnici de mapare prin inglobare (embedding) a grafului programului pe graful retelei fizice
Metrici pentru operatia de inglobare a grafurilor • La maparea prin inglobare a grafului G(V,E) (graf oaspete) intr-un graf G’(V’,E’) (graf gazda) se definesc metricile: • Congestia: numarul maxim de muchii ale lui G mapate la orice muchie a lui G’. • Dilatarea: numarul maxim de muchii a lui G’ la care este mapata o muchie din G • Expansiunea: raportul dintre numarul de noduri a grafului gazda si a grafului oaspete • Incarcarea: numarul maxim de noduri ale grafului oaspete care este mapat pe acelasi nod al grafului gazda • Ideal: congestia, dilatarea, expansiunea, incarcarea -> 1
Inglobarea unui masiv linear in hipercub • Un masiv linear (sau inel) compus din 2d noduri (etichetate de la 0 la 2d − 1) poate fi inglobat intr-un hipercub d-dimensional hypercube prin maparea nodului i al masivului linear in nodul G(i,d) al hipercubului • Functia G(i, x) este definita: 0
Inglobarea unui masiv linear in hipercub (cont) Functia G: binary reflected Gray code (RGC). G(i,d) = a i-a intrare in secventa de coduri Gray pe d biti Tabela codurilor Gray pe d+1 biti se obtine din tabela codurilor Gray pe d biti, prefixata de un bit de 0 si respectiv de un bit de 1 Deoarece valorile adiacente (G(i, d) and G(i + 1, d)) difera doar printr-o pozitie binara, nodurile corespunzatoare sunt mapate la noduri vecine in hipercub => Congestia, dilatarea, expansiunea sunt 1.
Inglobarea unui masiv in hipercub • Un masiv (tor) 2r × 2s poate fi mapat pe un hipercub cu 2r+s noduri prin maparea nodului (i, j) al masivului la nodul G(i, r− 1) || G(j, s − 1) al hipercubului (operatia || denota concatenarea celor 2 coduri Gray).
Inglobarea unui masiv multidimensional intr-un liniar • Apare situatia de congestie datorita maparii unui graf mai dens pe unul mai rar