Sunteți pe pagina 1din 4

Revista Informatica Economic, nr.

1(33)/2005

71

The performance analysis of parallel algorithms executed over grid networks


Asist. Felician ALECU Catedra de Informatic Economic, ASE Bucureti A grid is a collection of machines, sometimes called as nodes, resources, members, donors, clients, hosts, engines and so on. The goal is to create the illusion of a powerful computer out of a large collection of connected systems sharing resources. Some resources may be used by all users of the grid while others may have specific restrictions. The most common resource is computing cycles provided by the processors. Grid computing represents unlimited opportunities in terms of business and technical aspects. The main reason of parallelization a sequential program is to run the program faster. The first criterion to be considered when evaluating the performance of a parallel program is the speedup used to express how many times a parallel program works faster than the corresponding sequential one used to solve the same problem. Keywords: grid computing, grid network, parallel processing, performance analysis, parallel speedup, parallel efficiency. rocesarea grid creeaz utilizatorilor impresia existenei unui singur calculator virtual puternic n condiiile n care sistemul este de fapt format prin interconectarea mai multor sisteme de calcul eterogene care partajeaz o serie de resurse. Un astfel de comportament poart numele de uniprocesor virtual datorit faptului c utilizatorii nu trebuie s se preocupe de aspecte legate de localizarea resurselor, protocoalele de comunicaie folosite, modalitile de planificare utilizate, etc. Standardizarea mecanismelor de comunicaie dintre sisteme eterogene a condus la explozia internetului. Interconectarea unor sisteme individuale i standardizarea modalitilor de folosire a resurselor partajate vor conduce cu siguran la explozia procesrii de tip grid. Acest tip de procesare reprezint o modalitate de mbuntire a modului de utilizare a resurselor de calcul prezente n reea. n marea majoritate a organizaiilor exist resurse de calcul slab utilizate (procesor, memorie, discuri, etc.). Calculatoarele de tip desktop, de exemplu, au o rata de utilizare mai mic de 5%. Eficiena utilizrii unor astfel de resurse poate crete simitor prin folosirea procesrii de tip grid. Reelele de tip grid, denumite i clustere de staii de lucru, ofer un suport deosebit pen-

tru procesarea paralel prin utilizarea simultan a mai multor elemente de procesare. n felul acesta se obine o putere de calcul sporit care este folosit de aplicaii pentru minimizarea timpului n care sunt obinute rezultatele dorite [Jos03]. Procesarea de tip grid, datorit faptului c folosete resurse deja existente dar neutilizate, reprezint a alternativ mult mai puin costisitoare a calculatoarelor paralele. Aceast putere de calcul obinut prin interconectarea mai multor sisteme de calcul a deschis noi orizonturi nu numai n domeniul tiinific dar i n domenii cum ar fi biomedicina, modelarea financiar, explorarea petrolier, animaia video i multe altele [Lad04]. Pentru ca un program s poat fi rulat n cadrul unei reele de tip grid este necesar ca acesta s poat fi divizat n sarcini de calcul independente care s fie executate n paralel. Cu ct taskurile ce compun programul comunic mai puin ntre ele cu att aplicaia devine mai scalabil. Un program perfect scalabil ar fi de 10 ori mai rapid n cazul n care ar fi rulat pe 10 procesoare fa de cazul n care sar executa ntr-un sistem uniprocesor. Scalabilitatea este msura eficienei cu care sunt utilizate procesoarele din cadrul reelei de tip grid. Desigur c exist o serie de bariere ce stau n

72

Revista Informatica Economic, nr. 1(33)/2005

calea scalabilitii totale cum ar fi numrul de taskuri n care poate fi divizat programul sau existena unor taskuri care nu sunt independente unele fa de altele fiind necesar ca ele s comunice ntre ele i s se sincronizeze [Wyr04]. De asemenea, mecanismele de comunicare i sincronizare implementate la nivelul reelei grid pot sta n calea atingerii scalabilitii totale. Reelele de tip grid sunt formate din calculatoare individuale foarte diferite din punct de vedere al vitezei de calcul, capacitii de memorare i al limii de band de care beneficiaz n ceea ce privete reeaua de interconectare. Aceast eterogenitate a calculatoarelor individuale care compun reeaua de tip grid face imposibil folosirea metricilor tradiionale pentru exprimarea indicatorilor de performan. O reea de tip grid poate fi privit ca un graf G = (V, M), unde V este mulimea vrfurilor (staiile individuale, n numr de p) iar M mulimea muchiilor (conexiunilor) realizate cu ajutorul reelei de interconectare. O muchie ntre dou noduri exist numai dac cele dou noduri sunt direct conectate. Datorit faptului c n general fiecare staie este conectat cu oricare alta, graful astfel obinut este n majoritatea cazurilor unul complet conectat. Timpul de execuie al unui algoritm secvenial se exprim ca funcie de dimensiunea datelor de intrare (numrul acestora). Timpul secvenial de execuie va fi notat n cele ce urmeaz cu Ts. Un algoritm paralel este evaluat tot pe baza timpului de execuie ns acesta depinde nu numai de dimensiunea intrrilor ci i de arhitectura calculatorului paralel i de numrul de procesoare existente n sistem. Timpul de execuie paralel (Tp) reprezint timpul scurs din momentul n care programul paralel este lansat n execuie pn cnd ultimul procesor i ncheie execuia. Atunci cnd se realizeaz analiza teoretic a algoritmilor, timpii de execuie sunt exprimai cu ajutorul numrului de pai de calcul (operaii elementare) ce se execut, n cazul cel mai defavorabil, pentru rezolvarea unei probleme de dimensiune dat.

Cel mai important criteriu luat n considerare atunci cnd se dorete evaluarea performanelor unui program paralel este accelerarea paralel care exprim de cte ori programul paralel este mai rapid fa de varianta secvenial [Dod02]. Accelerarea paralel se noteaz cu S i reprezint ctigul de vitez ce se obine datorit execuiei algoritmului pe un sistem paralel n comparaie cu timpul de execuie n varianta secvenial. Acest indicator se exprim ca raport ntre timpul de execuie n cazul cel mai defavorabil al celui mai rapid algoritm secvenial care rezolv o anumit problem i timpul de execuie necesar unui algoritm paralel pentru a soluiona aceeai problem pe un sistem cu p procesoare identice cu cel al calculatorului secvenial: T S= s Tp Valoarea maxim a accelerrii paralele este egal cu numrul de procesoare din sistem. O astfel de valoare poate fi atins ntr-un sistem ideal n care nu exist costuri de comunicare iar procesoarele sunt ncrcate echilibrat. Teoretic, accelerarea paralel nu poate avea o valoare mai mare ca p, numrul de procesoare. O accelerare paralel egal cu numrul de procesoare din sistem poart numele de accelerare liniar. Cu toate acestea, n practic se pot obine i valori mai mari ca numrul de procesoare n anumite situaii speciale [Jor02]. Un astfel de fenomen poart numele de accelerare supraliniar i apare n situaii n care algoritmul secvenial este pus n dificultate de factori hardware. Astfel, dac datele programului nu pot fi memorate n ntregime n memoria principal, algoritmul va pierde timpi importani pentru accesarea memoriei secundare. Varianta paralel nu se va confrunta cu aceast problem deoarece datele vor fi distribuite procesoarelor i vor fi memorate n memoriile interne ale acestora fr a mai fi necesar s se acceseze memoria secundar. n conformitate cu legea lui Amdahl, chiar si ntr-un sistem paralel ideal este foarte dificil de obinut o accelerare paralel egal cu numrul de procesoare datorit faptului c n cadrul oricrui program exist o fracie ca-

Revista Informatica Economic, nr. 1(33)/2005

73

re nu poate fi paralelizat i care trebuie executat secvenial. Restul de (1 - ) pai de calcul se pot executa n paralel pe procesoarele disponibile n sistem. n aceste condiii, accelerarea maxim care se poate obine atunci cnd o fracie a programului nu poate fi paralelizat este 1/ indiferent de numrul de procesoare din sistem. Legea lui Amdahl exprim n mod clar necesitatea minimizrii fraciei ce nu poate fi paralelizat prin stabilirea unei limite superioare a accelerrii paralele. Pentru ducerea la bun sfrit a unei sarcini de calcul este necesar ca procesoarele sistemului s comunice ntre ele. Transferul de date ntre dou procesoare ale sistemului este o operaiune mare consumatoare de timp care poate genera inactivitate la nivelul elementelor de procesare. Din acest motiv, algoritmii paraleli ar trebui s fie proiectai astfel nct majoritatea acceselor la memorie s nu necesite transportul datelor solicitate prin reeaua de interconectare. Existena n cadrul unui program a unui punct de sincronizare ntre mai multe procesoare va genera timpi de ateptare deoarece execuia programului va continua numai dup ce toate procesoarele au atins punctul respectiv. Principal cauz pentru care la nivelul elementelor de procesare se nregistreaz timpi de inactivitate o constituie ncrcarea neechilibrat a procesoarelor care survine atunci cnd procesoarele din sistem au asociate sarcini de calcul de dimensiuni inegale. ntr-un astfel de caz, unele procesoare i vor ncheia execuia mai devreme i vor rmne n ateptare n timp ce altele vor fi nc n faza de execuie. O alt surs care genereaz timpi de inactivitate i implicit o ncrcare neechilibrat a procesoarelor o reprezint variaia gradului de paralelism pe parcursul execuiei programului, unde prin gradul de paralelism al unui program paralel nelegem numrul de procesoare care sunt utilizate pentru execuia acestuia. Chiar i prezena n cadrul unui program a unei pri ce nu poate fi paralelizat atrage dup sine o astfel de ncrcare neechilibrat a

procesoarelor deoarece fracia respectiv va trebui s fie executat secvenial, de ctre un singur procesor. O astfel de situaie este exprimat de ctre legea lui Amdahl. Din aceste motive, pentru obinerea unui program paralel care s fie executat ct mai rapid este necesar s se reduc ct mai mult posibil fracia de program ce nu se poate paraleliza i n plus s se asigure o distribuie ct mai uniform a sarcinii de calcul pe elementele de procesare n condiiile n care se are n vedere minimizarea timpilor de comunicaie [Tan95]. Considerm un program paralel ce este executat ntr-un timp T p pe o reea grid format din p calculatoare individuale numerotate de la 1 la p. Timpul secvenial de execuie al programului pe sistemul individual cu indicele i va fi notat cu Tsi . Accelerarea execuiei programului pe cluster-ul de staii poate fi exprimat prin raportul dintre cel mai bun timp secvenial i timpul paralel de execuie: min ip=1 Tsi S grid = Tp Datorit faptului c staiile individuale nu sunt identice, acestea vor avea puteri de calcul diferite [Dod02]. Ponderea puterii de calcul a unei staii de calcul individuale n comparaie cu cea a celui mai rapid calculator din cadrul reelei grid se poate calcula utiliznd formula urmtoare: j min p j =1 Ts , i = 1..p Pi = Tsi Valorile pe care le pot lua aceste ponderi satisfac inegalitatea Pi 1 . Gradul de eterogenitate a calculatoarelor ce intr n componena reelei grid se poate cuantifica cu ajutorul diferenei de putere de calcul ce exist ntre acestea:

p Variaia gradului de paralelism pe parcursul execuiei unui program genereaz ncrcarea neechilibrat a procesoarelor sistemului, unde prin gradul de paralelism al unui program paralel nelegem numrul de procesoare care

GE =

(1 P )
i =1 i

74

Revista Informatica Economic, nr. 1(33)/2005

sunt utilizate pentru execuia acestuia. Gradul mediu de paralelism al unui program se definete ca fiind numrul mediu de staii de lucru active pe tot parcursul execuiei acestuia:
GPm =

T
i =1

i p

Tp

unde T pi reprezint timpul ct staia i a fost activ. Formula urmtoare exprim accelerarea paralel n funcie de eterogenitatea reelei grid i de gradul mediu de paralelism al programului ce se execut pe cluster-ul de staii: S grid = GPm (1 GE ) .

Bibliografie [Lad04], S. Ladd, Guide to Parallel Programming, Springer-Verlag, 2004 [Wyr04], R. Wyrzykowski, Parallel Processing And Applied Mathematics, Springer, 2004 [Jos03], J. Joseph, C. Fellenstein, Grid Computing, Prentice Hall, 2003 [Dod02], Gh. Dodescu, B. Oancea, M. Raceanu, Procesare paralel, Editura Economica, Bucureti, 2002 [Jor02], H. F. Jordan, H. E. Jordan, Fundamentals of Parallel Computing, Prentice Hall, 2002 [Tan95], A. S. Tanenbaum, Distributed Operating Systems, Prentice Hall, 1995