Indicatorii de performanta ai unui algortim parallel
Principalul cirteriu de apreciere este timpul de executie: T(n, p)
n dimensiunea problemei care reprezinta nr datelor de intrare p nr de procesoare t timpul de executie a) cresterea de viteza Sx(n,p)= Ts(n) supra Tx (n.p) Ts(n) timpul de executie al celui mai rapid algoritm secvential care rezolva problema cu n dare de intrare pe un calc cu un singur procesor Tx (n.p) timpul de executie a algoritmului paralel care rezolva problema cu n date pe p procesoare b) eficienta: x epsilon x(n,p)= Sx(n.o) supra P = Ts(n,p) supra pTx(n) c) costul volumul de lucru W(n,p)=pT(n,p) T timpul de executie cumulat pe cele doua procesoare W volumul de lucru d) eficienta relative a paralelizarii x epsilon x(n,p)= Txs(n,p) supra PTxp(n,p) e) raport de viteza Sr(n)=Ty(n) supra Tx(n) x,y cei doi algortmi x este mai relative decat y -> raportul de viteza este subunitar f) volumul de lucru Wr(n.p)- PyTy(n) supra PxTx(n) py,px reprezinta nr de procsoare pe care alg, x si y sunt executati Wr(n)>1 volumul de lucru pe processor este mai mic pentru X si Algoritmul X poate fi considerat mai rapid Fenomenul Overhead. Overhead-ul este de mai multe feluri: Overhead algoritmic care se datoareaza partilor secventiale ale algoritmului Overhead datorat incarcarii inegale a procesoarelor Cazul ideal il reprezinta faptul cand calculele sunt reprezentate uniform pe fiecare processor astfel incat sa aiba acelasi numar de operatii de efectuat, Incarcarea inegala duce la cresterea timpului de executie Overhead datorat comunicatiei Comunicarea este o activitate specifica architect. de calcul paralel si distribuit. Contribuie la ineficienta algoritmului Overhead datorat software-ului Se datoreaza repatarii unor operatii care se executa o singura data in caz secvential pe fiecare processor al arhitect. Parallel Etapele de elaborare ale unui algoritm parallel 1, gruparea in task-uri a operatiilor ce trebuie executate 2. identificarea ordinii de executie a task-urilor + task-uri executate parallel (grafuri de executie a task-urilor) 3, planificarea executiei task-urilor, adica stabilirea unui mod de descriere a procesorului pe care se descrie fiecare task.