Documente Academic
Documente Profesional
Documente Cultură
Retele de interconectare:
acelasi timp;
- Exemplu de deadlock:
- conexiunile suporta un singur mesaj;
- se transmiste un mesaj A-B-C si un mesaj C-B-A;
- conexiunile pot fi deblocate doar cand conexiunea urmatoare
este libera;
- intrucat A-B este blocat de mesajul 1 si C-B de mesajul 2
deadlock
- pot apare situatii de deadlock
- prin limitarea bufferelor (input/output)
- succesiune nepotrivita de operatii SEND / RECEIVE
Descrieti paralelismul la nivel de instructiune, precizand dependintele
posibile intre
date ( flow, anti-, output dependency).
Paralelism la nivel de instructiune:
- instructiunile multiple pot fi efectuate in paralel daca sunt
independente;
- pot exista insa dependinte intre date (de la I1 la I2):
- flow dependency: I1 calculeaza o caloare intr-un registru sau
variabila, care apoi este folosita de I2 ca operand;
- anti-dependency: I1 foloseste o variabila ca operand, care
este folosita apoi de I2 pentru a stoca rezultatul calculului;
- output dependency: I1 si I2 folosesc acelasi registru pentru
a stoca rezultatul unui calcul;
Single broadcast:
- un singur procesor Pi trimite un bloc de date catre mai multe
procesoare; Pi se numeste procesor root;
- inaintea executiei operatiei de broadcast, mesajul este stocat in
memoria locala a procesorului root, iar dupa executie mesajul va fi
stocal in memoria locala a fiecarui procesor;
- pentru a efectua operatie, fiecare procesor trebuie execute o
operatie de tip broad cast in care se specifica procesorul root;
Single accumulation:
- fiecare procesor pune la dispozitie un bloc de date de acelasi tip si
aceeasi marime;
- datele sunt adunate la procesorul root (P1);
- pentru a efectua operatia de single accumulation fiecare nod
cheama operatia specificand nodul root;
Gather:
- fiecare procesor pune la dispozitie un bloc de date ;
- procesorul root (P1) va primi p mesaje ;
- nu are loc operatia de reducere (operatie comutativa, asociativa)
ca in cazul single-accumulation;
- pentru a efectua operatia de single accumulation fiecare nod
cheama operatia specificand nodul root; in plus, acesta specifica un
buffer suficient de mare pentru a primi toate blocurile;
Scatter:
- un anume procesor (root) pune la dispozitie cate un bloc de date
pentru fiecare procesor ;
- pentru a efectua operatia de scatter fiecare nod cheama operatia
specificand nodul root si un buffer unde urmeaza sa fie stocat blocul
de date;
- procesorul root specifica, de asemenea, bufferul send.
Multi-broadcast:
- operatia este echivalenta cu o serie de operatii single-broadcast
efectuate de fiecare procesor;
- nu exista un procesor root!
- pentru a efectua operatia de multi-broadcast, fiecare procesor
cheama operatia si specifica un buffer send, dar si un buffer de
receive;
- dupa incheierea operatiei, fiecare procesor va avea blocurile de
date in succesiunea data de rangul procesorului;
- operatia este utila pentru a colecta datele calculate pe toate
procesoarele;
Multi-accumulation:
- fiecare procesor executa o operatie de tip single-accumulation ;
- fiecare procesor pune la dispozitie un alt bloc;
- datele bloc pentru un anume receiver sunt combinate printr-o
operatie de reducere;
- nu exista procesor root;
- fiecare procesor cheama operatia, specifica un buffer send, un
buffer receive si o operatie de reducere;
- in bufferul de send fiecare procesor stocheaza separat blocurile de
date pentru toate celelalte procesoare;
Total exchange:
- fiecare procesor pune la dispozitia oricarui alt procesor un bloc
posibil diferit ;
- fiecare procesor executa o operatie de tip scatter;
- spre deosebire de multi-broadcast, fiecare receiver primeste
blocuri de date diferite de la acelasi sender;
Indicati ierarhia operatiilor de comunicare
Ierarhia operatiilor de comunicare