Sisteme distribuite eterogene

Un model nou-retea de statie de lucru-promite să ofere avantajul concentrării resurselor necesare executiei unui program

Dan Grigoras

O constantă a evolutiei stiintei si tehnologiei sistemelor de calcul este cererea continuă de performante tot mai mari, exprimate în primul rând prin viteză de calcul, deci timp de executie mai mic, dar si prin numărul de aplicatii terminate în unitatea de timp. Există în permanentă, pe piată, o ofertă generală, care satisface marea majoritate a utilizatorilor (de exemplu, PC-uri), dar si produse de mare performantă (cum ar fi statiile grafice multi-procesor) pentru aplicatii deosebite.

Un concept relativ nou, scalabilitatea, creează o perspectivă nouă asupra evaluării calitative a sistemelor de calcul. Scalabilitatea înseamnă modificarea liniară a performantelor unui sistem odată cu modificarea numărului sau calitătii resurselor instalate (număr de procesoare, capacitatea memoriei principale, număr de discuri de mare capacitate, procesoare mai rapide). Asigurarea scalabilitătii nu este o problemă simplă, tinându-se cont că performantele unui sistem se aliniază la performantele căii de date care este cea mai lentă (de exemplu cea stabilită pentru transferul datelor între memorie si unitătile de disc). Cresterea în timp a complexitătii unei aplicatii, sau cresterea dimensiunii ei nu mai constituie o problemă pentru programator, dacă sistemul pe care îsi execută aplicatia este scalabil. Prin utilizarea mai multor procesoare, a unui spatiu agregat de memorie mai mare, a mai multor canale de I/E, timpul de executie se poate mentine sub o valoare dorită sau se modifică liniar, fără a interveni în cod. Acomodarea aplicatiei la noua configuratie este realizată transparent, de către sistemul de operare, sau cu modificări minore în textul sursă.

Scalabilitatea a fost propusă la început pentru compararea sistemelor paralele. Se stie că un calculator multi-procesor cu memorie comună asigură scalabilitatea până la un număr de circa 30 procesoare. Dacă se instalează mai multe procesoare, performantele se degradează datorită supra-încărcării căii de acces la memoria comună. Chiar dacă noile tehnologii permit instalarea unui număr mai mare de procesoare, fenomenul se păstrează. Sistemele paralele cu memorie distribuită sunt scalabile si, în fapt, reprezintă un standard "de facto" pentru paralelism.Un exemplu este Message Passing Interface.

Un rol nou pentru sistemele paralele

Sistemele de calcul paralel multi-procesor au suscitat un interes deosebit în anii '70 i '80, datorită performantelor teoretice extrem de atractive, dar sumele investite si efortul de cercetare consumat nu au condus la rezultatele anticipate. Un număr de n procesoare nu execută o aplicatie de n ori mai repede. Un rezultat bun se obtine, de exemplu, atunci când 4 procesoare contribuie la reducerea timpului de executie de 3 ori.

Raportul de vânzări supercalculatoare/PC este de 1/30.000 pe ultimii 5 ani. Proiectantii sistemelor de mare performantă au folosit ca solutie constructivă fie un număr mic de procesoare foarte puternice (de exemplu, CRAY Y-MP, Meiko Computing Surface), fie un număr foarte mare de procesoare mai lente (Connection Machine -1, -2, -3, nCube). În primul caz, procesorul folosit este produsul cel mai performant al producătorului respectiv, realizat cu tehnologia disponibilă si în conditiile impuse de arhitectura aleasă. Dacă un program nu poate fi paralelizat, procesorul elementar mai rapid termină oricum mai repede programul, dar dacă programul poate fi paralelizat, performanta creste simtitor.

S-a demonstrat practic că eficienta unei arhitecturi paralele particulare depinde de natura aplicatiei. Codurile care au prezentat un grad înalt de paralelism si care au putut tolera viteza relativ scăzută a procesoarelor individuale au putut fi executate eficient pe sisteme masiv paralele (MPP - Massively Parallel Systems). Azi, sistemele MPP sunt colectii mari de noduri din clasa statiilor de lucru, interconectate cu o retea dedicată, de mare viteză (de exemplu, Connection Machine 5, sau Intel Paragon). Un rol important îl poate juca reteaua de interconectare, care poate corespunde sau nu modelului de comunicatie al aplicatiei. Deoarece multe sisteme paralele nu asigură mecanismele pentru comunicatii globale, interactiunea proceselor este de multe ori limitată la cele aflate pe acelasi procesor sau pe procesoare vecine. În loc ca programul dezvoltat de utilizator să reflecte solutia la o problemă, el este dominat de caracteristicile sistemului de calcul pentru care este dezvoltat. Dacă dimensiunea sistemului se modifică, este posibil să se impună modificări importante. Evident, comunicatiile ne-locale nu trebuie lăsate în grija programatorului, ci realizate de sistem. Ideal este ca nucleul sistemului de operare să includă si functii de rutare, care să folosească o interfată valabilă pentru cât mai multe arhitecturi diferite (proiectul Esprit PUMA).

Slăbiciunile supercalculatoarelor de tip MPP sunt: durata mare a realizării, ceea ce conduce la o întârziere de 1-2 ani până la comercializare, interval de timp suficient pentru aparitia unor statii de lucru competitive; costul mare al componentelor (1MB DRAM costă 40$ pentru un PC si 600 $ pentru CRAY M90), ca si al operatiilor de upgrade; stilul de programare diferit, care nu poate fi asimilat cu usurintă; lipsa unor medii de dezvoltare stabile; lipsa portabilitătii, mai ales între sisteme care implementează modele de calcul diferite (memorie comună, memorie distribuită etc.); ocupă o nisă prea mică, cel putin deocamdată. Totusi, există si câteva avantaje certe, ce nu pot fi neglijate: timp de executie redus, o calitate mai bună a rezultatelor, posibilitatea rezolvării unor probleme extrem de complexe, iar din punct de vedere al utilizării, o imagine globală oferită de către sistemul de operare asupra tuturor resurselor instalate.

Chiar dacă entuziasmul privind posibilitătile sistemelor paralele s-a mai micsorat, demonstrând poate si o maturizare a domeniului, numărul mare de sisteme instalate, ca si rezultatele excelente obtinute pentru anumite aplicatii impun căutarea unor solutii integratoare si nu abandonarea acestei căi.

Într-adevăr, cuvântul cheie este integrarea, deja realizată fizic, a sistemelor de mare performantă (masiv paralele, supercalculatoare, calculatoare vectoriale) în cadrul retelelor de calculatoare. În felul acesta se creează retele eterogene de dimensiuni foarte mari, în care rolul principal îl joacă statiile de lucru. Într-o astfel de retea, sistemele paralele reprezintă nuclee de calcul foarte puternice ce pot fi folosite pentru accelerarea executiei aplicatiilor complexe (fizică atomică, previziuni meteo, gestiunea bazelor de imagini etc.). Majoritatea sistemelor de calcul paralel sunt accesibile în retea, dar ele pot fi folosite acum numai individual, prin intermediul unui calculator gazdă. Un utilizator se conectează la gazda sistemului paralel, dacă are un cont, execută aplicatia, după care se deconectează. Prin solutia integratoare, utilizatorul îsi creează un domeniu de executie, format din mai multe statii din retea inclusiv sisteme de mare performantă. Domeniul de executie, care reprezintă o masină de calcul virtuală foarte puternică, are o evolutie dinamică: se pot introduce în domeniu sau elimina în orice moment statii de lucru, servere de baze de date, procesoare specializate etc. Domeniul de executie este conceptul software, iar corespondentul său fizic este ciorchinele (clusterul) de calculatoare. Viteza de calcul a fiecărui procesor, întârzierile de comunicatie (latencies) între statiile aceluiasi cluster sau între clustere sunt factori de performantă importanti. Când se proiectează o aplicatie distribuită, trebuie să se tină cont de acesti parametri la definirea clusterului.

Domeniul de executie al unei aplicatii, format din unul sau mai multi ciorchini este o parte a sistemului distribuit eterogen.

Mai multe statii de lucru formează un cluster care poate fi alocat unei singure aplicatii sau mai multor aplicatii. Aplicatia, formată din mai multe taskuri concurente, este alocată unui domeniu de executie a cărui configuratie poate varia de la statia initială până la zeci sau sute de statii de lucru. Domeniul include numai nodurile de calcul de interes. Pentru definirea domeniului de executie se folosesc mai multe criterii:

Domeniile de executie se pot suprapune. Dar, trebuie să se tină cont că simultan se execută mai multe aplicatii, între care interferentele trebuie să fie minime, iar timpul de executie al fiecăreia să fie semnificativ mai mic decât în varianta mono-procesor.

Actualitatea retelelor de statii de lucru

O statie de lucru din gama "top end" (ca Silicon Graphix Power Challenge) oferă acum 1/3 din performanta procesorului CRAY C90, pe care îl depăseste însă în anumite privinte. Chiar si statiile de lucru obisnuite, ca SUN 5 sau care folosesc microprocesorul Pentium, au performante din ce în ce mai mari. Deci, puterea de calcul accesibilă într-o retea egalează sau depăseste puterea de calcul a multor supercalculatoare. Ce este interesant este că studiile statistice demonstrează că o mare parte din timp, cele mai multe statii nu sunt folosite. S-a observat că în cele mai multe laboratoare universitare mai mult de 50% din statii sunt neutilizate chiar în timpul zilei. Avantajul principal al noului model de calcul propus, "reteaua de statii de lucru" - Network of Workstations (NOW) - nu este posibilitatea executiei paralele, ci mai ales posibilitatea concentrării resurselor necesare unui program. De exemplu, spatiul agregat de memorie DRAM poate fi folosit ca un cache urias pentru discuri, deoarece timpul de acces la memoria instalată în retea este cel putin cu un ordin de mărime mai mic decât timpul de acces la disc. Cu cresterea performantelor retelelor de comunicatie, această posibilitate devine si mai interesantă. Atunci când se vor putea identifica statii inactive, memoria lor va putea fi alocată aplicatiilor în executie, care solicită un spatiu mai mare decât cel disponibil local. Date experimentale furnizate de grupul NOW de la Berkeley arată că executia programelor este de 5 - 10 ori mai rapidă decât dacă s-ar folosi discurile. De asemenea, memoria suplimentară poate fi folosită pentru preluarea rolului memorie cache a statiilor server. Acest concept cunoscut cu numele de "cooperative caching", implementat pe o retea în care statiile foloseau o memorie de 16 MB, iar memoria cache a serverului era de 128 MB a condus la o reducere de două ori a numărului de citiri de pe disc (cf. acelorasi autori).

Proiectantii NOW transferă conceptul RAID din hardware în software prin scrierea redundantă a datelor pe mai multe discuri din retea. Programele paralele pot obtine un spatiu de memorie pe disc agregat egal cu suma spatiilor din interiorul clusterului pe care se execută.

NOW permite abordarea aplicatiilor de mare performantă în cadrul unei structuri de calcul uzuale. În acest sens, se folosesc curent ca elemente structurale ethernet, PVM si un SGF secvential. Partajarea retelei ethernet de un număr mare de statii limitează performantele. De aceea, trebuie să se facă trecerea la ATM. La fel, SGF-ul secvential va fi înlocuit cu unul paralel.

Se pune întrebarea dacă NOW poate rezolva aplicatii mari cu performanta sistemelor dedicate si aplicatii mici cu interactivitatea unei statii de lucru dedicate. Pentru a investiga această posibilitate, colectivul de cercetare NOW de la Berkeley a simulat impactul job-urilor de pe statiile de lucru asupra MPP si reciproca. Încărcarea unui MPP cu 32 noduri poate fi preluată de un sistem NOW cu 64 statii, timpul de executie fiind numai cu 10% mai mare.

Proiecte si realizări NOW

Un proiect NOW, important prin obiectivele sale, este abordat de un colectiv de la Universitatea Berkeley, condus de Prof. David Patterson. Ideea generală fiind de a folosi cât mai mult din tehnologiile de vârf disponibile, mediul Ethernet a fost înlocuit cu o retea ATM Synartics. Din punctul de vedere al comunicatiilor, obiectivul proiectului NOW de la Berkeley este de a realiza comunicarea utilizator-utilizator în mai putin de 10 ms pentru mesaje scurte, într-un sistem cu 100 utilizatori. Proiectantii se concentrează asupra interfetei procesorului la retea si a interfetei cu sistemul de operare. În viziunea lor, utilizatorul trebuie să comunice direct cu reteaua, fără interventia sistemului de operare. Sistemul de operare va mapa datele si controlul accesului la interfata de retea în spatiul de adrese al utilizatorului. Interfata de retea va trebui să stabilească domeniile de protectie ale comunicatiilor, prin introducerea în fiecare mesaj transmis si verificarea la receptie a unui identificator (ID) de proces de retea. De asemenea, trebuie să asigure livrarea datelor si a notificărilor direct în procesul utilizator. Dacă mesajul are scopul de a trezi un proces, vor deriva alte aspecte ale mecanismului de notificare. S-a realizat un ciorchine experimental cu statii HP 9000/735, conectate cu o interfată de retea FDDI Medusa (la magistrala grafică). Cu instrumentele Active Message timpul de overhead pentru un mesaj este de 8 ms. Prin constructia unor socluri deasupra acestui nivel, timpul necesar transmiterii unui mesaj este de aproximativ 25 ms, cu un ordin de mărime mai bun decât TCP, pe acelasi hardware.

Al doilea element important este reprezentat de modul cum se gestionează efectiv resursele în cadrul proiectului NOW. Abordarea propusă este de asigurare a serviciilor globale prin "lipirea împreună" a sistemelor UNIX ce se execută pe fiecare statie. Deasupra se plasează un strat global, GLUnix, care poate fi construit însă pentru orice sistem de operare (WINDOWS NT, DOS etc.). Versiunea experimentală s-a obtinut, astfel, în numai trei luni.

Prin independenta de sistemul de operare local se urmăreste adaptarea la cele mai noi si performante sisteme de operare. Este dezirabil ca modificările făcute să fie minime si cu un impact semnificativ asupra performantelor.

În timp ce alocarea resurselor se realizează la sistemele MPP cu ajutorul unui planificator central, la NOW Berkeley, planificarea este executată independent, în interiorul nucleului sistemului de operare local.

Pentru NOW Berkeley se propune realizarea unui nou sistem de gestiunea a fisierelor în retea, fără servere, denumit XFS. Preluând rolul serverelor, statiile client cooperează în toate aspectele privind memorarea datelor, gestiunea meta-datelor si asigurarea protectiei. Scopurile pentru XFS sunt performanta, asigurarea unui serviciu cu mare disponibilitate în retea, scalabilitatea si costul redus. Pentru a atinge obiectivele enumerate, XFS combină patru caracteristici originale:

Un alt proiect universitar este cel condus de Prof. A. Barak, de la Universitatea Hebrew din Ierusalim. Spre deosebire de alte proiecte, acesta consideră statii de lucru eterogene, mai putin procesorul care trebuie să execute aceleasi coduri de instructiuni. Sistemul experimental este constituit din 16 statii Pentium, la care se pot atasa orice alte sisteme cu procesor Intel 80X86. Efortul de proiectare s-a concentrat pe realizarea sistemului de operare MOSIX, un upgrade a sistemului UNIX pentru NOW. El asigură transparenta, distribuirea activitătilor si, extrem de important, echilibrarea încărcării statiilor de lucru prin migrarea proceselor. Procesele sunt preemptibile, iar sistemul de gestiune a fisierelor este NFS.

Există si realizări mai apropiate de mediul comercial. Astfel, unii producători de statii de lucru au adoptat OSF/1. Această decizie este semnificativă, deoarece OSF/1 contine cel putin trei componente care facilitează utilizarea retelelor de statii de lucru ca un sistem paralel. Primul este OSF Distributed Computing Environment (DCE) care asigură distributia activitătilor pe mai multe procesoare. Apoi, Andrew File System (AFS) reprezintă un sistem de gestiune a fisierelor în retea. Spre deosebire de NFS (SUN) care transferă datele înregistrare cu înregistrare, AFS păstrează fisierele solicitate în memoria cache a sistemelor solicitante. A treia componentă este Distributed Management Environment (DME) care asigură administrarea sistemului la nivel de retea. Administrarea configuratiei va trebui să asigure consistenta mediilor hardware si software pentru toate statiile instalate. Deocamdată, instrumentele realizate se ocupă mai mult de distribuirea activitătilor si nu de gestiunea sistemului.

Concluzii

Modelul NOW este fezabil si reprezintă cea mai interesantă alternativă, din punct de vedere al raportului pret/performante, la supercalculatoare. Eterogenitatea este acceptată, ceea ce permite o evolutie naturală, progresivă atât din punct de vedere hardware, cât si software. Impactul cel mai important este însă la nivelul indicelui de utilizare al resurselor de calcul instalate într-o organizatie. Chiar dacă nu se poate cumpăra cea mai modernă statie de lucru, prin mobilizarea statiilor instalate puterea de calcul potential disponibilă devine competitivă. În acest mod durata de viată a parcului de calculatoare creste, eliberând oarecum utilizatorii de presiunea ofertelor din ce în ce mai tentante ca performante, dar si mai scumpe.

Credem că solutia NOW este adecvată în mod special României, care nu poate investi o sumă mare în tehnologia reprezentată de supercalculatoare, dar are un parc semnificativ de statii de lucru (SUN, HP, IBM RS/6000 etc.).


(C) Copyright Computer Press Agora