Teză De Doctorat
Transcrição
Universitatea Politehnică Bucureşti Facultatea de Automatică şi Calculatoare Teză De Doctorat Advanced techniques for modelling and simulation of Grid systems Tehnici avansate de simulare pentru sisteme Grid Rezumat CONDUCĂTOR ŞTIINŢIFIC Prof. Dr. Ing. Valentin CRISTEA AUTOR Ing. Ciprian Mihai DOBRE - Ianuarie 2008 - CUPRINS 1. INTRODUCERE ...........................................................................................................................................3 2. NECESITĂŢI SPECIFICE SISTEMELOR DISTRIBUITE ....................................................................5 2.1. Simularea sistemelor distribuite..............................................................................................................5 2.1.1. Problematica sistemelor distribuite ................................................................................................5 2.1.2. Caracteristicile sistemelor Grid ......................................................................................................8 2.2. Necesităţi specifice experimentelor LHC şi a altor aplicaţii ştiinţifice.................................................10 2.2.1. Experimentele LHC......................................................................................................................10 2.2.2. Necesitatea optimizării transferurilor de date...............................................................................12 2.3. Simularea modelelor de calcul complexe..............................................................................................13 3. INSTRUMENTE DE SIMULARE PENTRU SISTEME GRID .............................................................14 3.1. 3.2. 3.3. 4. Sinteza lucrărilor anterioare ..................................................................................................................14 Taxonomia modelării sistemelor Grid ..................................................................................................15 O analiză critică a instrumentelor de simulare pentru sisteme Grid......................................................17 SIMULATOR PENTRU SISTEME DISTRIBUITE ...............................................................................18 4.1. Componentele şi arhitectura simulatorului ...........................................................................................19 4.2. Motorul de simulare ..............................................................................................................................21 4.3. Componente de simulare.......................................................................................................................23 4.3.1. Modelul sarcinilor de lucru ..........................................................................................................23 4.3.2. Modelul de date ............................................................................................................................25 4.3.3. Modelul de reţea...........................................................................................................................27 4.4. Teste de evaluare...................................................................................................................................29 4.4.1. Validarea folosind teoria cozilor ..................................................................................................29 4.4.2. Validarea folosind sisteme de test ................................................................................................30 4.4.3. Performanţa motorului de simulare ..............................................................................................30 4.5. Experimente de simulare.......................................................................................................................32 4.5.1. Experimente de modelare a planificării........................................................................................32 4.5.2. Experimente de modelare a replicării de date ..............................................................................33 4.5.3. Experimente de modelare a transferurilor de date........................................................................35 5. EXPERIMENTE DE SIMULARE CE FOLOSESC MONITORIZAREA ...........................................36 5.1. 5.2. 5.3. MonALISA ...........................................................................................................................................36 LISA......................................................................................................................................................37 US LHCNet – un experiment de simulare ce foloseşte monitorizarea..................................................39 6. STUDIU DE SIMULARE PENTRU ACTIVITĂŢILE DE REPLICARE & PRODUCŢIE A DATELOR CONFORM EXPERIMENTELOR LHC LA CERN...................................................................40 7. CONCLUZII ................................................................................................................................................43 7.1. 7.2. Contribuţii originale ..............................................................................................................................44 Dezvoltări ulterioare .............................................................................................................................45 BIBLIOGRAFIE SELECTIVĂ ..........................................................................................................................45 2 1. INTRODUCERE Sistemele distribuite de mari dimensiuni ce presupun agregarea şi partajarea resurselor folosind reţele globale prezintă noi provocări pentru oamenii de ştiinţă. Această lucrare prezintă soluţii la problema studierii ştiinţifice şi sistematice a tehnologiilor distribuite prin folosirea modelării ca instrument pentru testarea de nivel înalt a aplicaţiilor, resurselor şi reţelelor specifice acestor sisteme. Contribuţiile majore ale acestei lucrări vizează controlul inteligent al sistemelor distribuite, simularea fiind folosită în procesul decizional ca o modalitate de predicţie a performanţelor unor astfel de sisteme aflate sub controlul unor diverse legi ipotetice. Contribuţiile originale prezentate in cadrul lucrării au culminat cu crearea unui instrument de evaluare prin simulare a sistemelor distribuite de mari dimensiuni. Valoarea ştiinţifică a cercetării este dată atât de metodele şi tehnicile revoluţionare folosite în procesul de creare a acestui instrument, cât şi de rezultatele experimentelor de simulare obţinute prin folosirea acestuia, rezultate de o reală valoare ce au dus la verificarea şi ulterior la înglobarea în realitate a unor tehnologii de sisteme distribuite. Teza descrie de asemenea combinarea originală a acţiunilor a două domenii ştiinţifice, simularea şi monitorizarea sistemelor distribuite. Monitorizarea a fost folosită cu succes la crearea unor scenarii de simulare realistice iar rezultatele experimentelor de simulare au condus, de exemplu, la observarea necesităţii unui sistem de agenţi pentru optimizarea transferurilor de mari dimensiuni, lucru ce ulterior, pe baza recomandărilor noastre, a şi fost pus în practică. Modelul de simulare original dezvoltat în contextul cercetării prezentate în această lucrare este deosebit de generic, incorporând toate componentele şi mecanismele necesare creării şi execuţiei cu succes a unei game largi de experimente realistice de simulare a unor diverse arhitecturi de sisteme distribuite de mari dimensini, cuprinzând multe resurse şi diverse tehnologii ce pot varia de la transferuri de date la planificare şi replicări de date, în care resursele conlucrează împreună pentru furnizarea unui set comun de caracteristici. Instrumentul de simulare prezentat în cadrul lucrării, MONARC 2, înglobează o gamă largă de algoritmi şi tehnologii de ultimă oră, permiţând simularea realistică a unei game largi de tehnologii şi sisteme distribuite, în conformitate cu componentele şi caracteristicile specifice acestora. Dezvoltarea instrumentului de simulare a fost realizată în contextul unei colaborări fructuoase între Universitatea Politehnică din Bucureşti, Centrul European pentru Cercetări Nucleare din Elveţia şi California Institute of Technology din SUA. Designul original al instrumentului de simulare permite modelarea unei game largi de arhitecturi distribuite, pornind de la testarea unor protocoale de reţea până la validarea functionalităţii unor sisteme de tip Grid. Maturitatea simulatorului este demonstrată de numărul mare de scenarii executate cu succes. O serie de experimente ce au vizat testarea unor tehnologii pentru replicarea de date au fost prezentate in [Legrand, et al, 2003]. Rezultatele unor experimente de planificare au fost prezentate în diverse lucrări precum [Legrand, et al, 2003], [Pop, et al, 2006] sau [Dobre şi Stratan, 2004]. Unul dintre cele mai impresionante experimente a fost prezentat in [Legrand, et al, 2005]. Experimentul a urmărit testarea cu succes a posibilităţii simulării unui sistem de mari dimensiuni, conform cu arhitectura de tip tiers propusă spre utilizarea în cadrul experimentelor LHC, precum şi a posibilităţii sistemului de a susţine multitudinea de activităţii ce vor începe anul viitor in cadrul experimentelor de fizică. Rezultatele obţinute in cadrul acestui experiment de simulare au condus la observaţii interesante şi părtinitoare ce au influenţat pozitiv luarea unor decizii privind atât necesitatea îmbunătăţirii capacităţilor reţelelor folosite, cât şi privind introducerea unui sistem inteligent pentru transferul datelor între centrele de procesare dispersate în toată lumea. Prin comparaţie cu alte instrumente de simulare ce se adresează sistemelor distribuite, soluţia prezentată în cadrul acestei lucrări oferă o serie de avantaje. Una dintre problemele cu care se confruntă astfel de aplicaţii ţine de scepticismul utilizatorilor în legătură cu validitatea rezultatelor obţinute. MONARC 2 a fost cu succes testat în diverse experimente ce au urmărit atât verificarea validităţii modelului folosit şi a soluţiilor de implementare, cât şi a verificării performanţelor superioare oferite de instrumentul de simulare. De asemenea majoritatea instrumentelor de simulare existente sunt focusate pe anumite aspecte ale sistemelor distribuite de mari dimensiuni (precum replicarea datelor sau planificarea execuţiei proceselor) şi nu permit modelarea decât a unui set restrâns de posibile scenarii. MONARC 2 este un instrument generic ce poate fi folosit cu succes pentru simularea unei game largi de posibile scenarii, de la modelarea de protocoale de reţea până la sisteme distribuite de mari dimensiuni cuprinzând o varietate mare de resurse sau aplicaţii din cele mai diverse domenii. În cadrul 3 acestei teze prezentăm o analizp originală a instrumentelor de simulare existente, demonstrând superioritatea designului original de simulare oferit de MONARC 2. Lucrarea este structurată dupa cum urmează. Capitolul 1 prezintă o introducere în tematica lucrării. Capitolul 2 prezintă caracteristicile modelului de simulare propus. În scopul oferirii unui suport generic pentru simularea sistemelor distribuite, modelul de simulare înglobează multe dintre caracteristicile sistemelor distribuite. Capitolul prezintă caracteristicile unor astfel de sisteme şi influenţele acestora asupra modelului de simulare. În cadrul acestui capitol demonstrăm că modelul de simulare include componentele necesare pentru descrierea corectă a unei game variate de tehnologii pentru sisteme distribuite şi furnizează mecanismele adecvate pentru descrirea traficului concurent, pentru evaluarea diverselor strategii pentru replicarea datelor şi pentru analizarea procedurilor de planificare a sarcinilor de lucru. Ca studiu de caz demonstrăm de asemenea că modelul de simulare propus conţine toate componentele şi caracteristicile ce permit modelarea corectă a unei game variate de experimente specifice analizelor de fizicp LHC. În cadrul capitolului prezentăm de asemenea problemele şi soluţiile adoptate în definirea modelului de simulare pentru a permite simularea unor scenarii realiste, cuprinzând multe din necesităţile de funcţionare ale sistemelor distribuite de mari dimensiuni, precum cele de tip Grid. Capitolul 3 prezintă un studiu comparativ al celor mai importante instrumente de simulare pentru sisteme distribuite. În cadrul capitolului prezentăm o taxonomie originală ce este focusată îndeosebi pe simulatoarele specifice pentru sistemele distribuite de mari dimensiuni. Plecând de la categoriile taxonomiei propuse prezentăm de asemenea un studiu comparativ a şapte dintre cele mai reprezentative instrumente de simulare în domeniu. Analiza reliefează caracteristicile specifice acestor instrumente, de la tipurile modelelor de simulare sau structurile interne folosite până la particularităţi de implementare ale acestora. Capitolul 4 prezintă detaliile de implementare ale simulatorului MONARC 2. Capitolul evidenţiază în principal aspecte legate de arhitectura acestuia, motorul de simulare folosit, componentele de simulare încorporate şi caracteristicile acestora ce permit modelarea de diverse tehnologii pentru sisteme distribuite. Capitolul prezintă de asemenea o serie de experimente de simulare ce au ca scop validarea, testarea performanţelor şi evidenţierea capabilităţilor de modelare a diverselor tehnologii pentru sisteme distribuite folosind instrumentului prezentat. Capitolul 5 prezintă rolul vital jucat de instrumentele de monitorizarea în validarea şi designul simulatorului MONARC 2. MonALISA, o aplicaţie de monitorizare dezvoltate în cadrul unei colaborări cuprinzând şi Universitatea Politehnica din Bucureşti, a fost în mod excepţional folosită cu succes la validarea instrumentului de simulare şi la crearea condiţiilor realistice de rulare ale experimentelor prezentate în cadrul acestei lucrări. De asemenea rezultate obţinute prin execuţia diverselor experimente de simulare au furnizat informaţii de un real folos în implementarea diverselor funcţii de control ale instrumentului de monitorizare. În cadrul capitolului 6 prezentăm rezultatele obţinute în cadrul unui experiment de simulare ce are ca scop descrierea exactă a condiţiilor de rulare ale experimentelor de fizică aşa cum sunt prevăzute de către modelele computaţionale LHC. Experimentul de simulare prezentat urmăreşte evaluarea posibilităţilor prin care experimentele conlucrează la rezolvarea diverselor probleme de natură tehnică precum analizarea necesităţilor de stocare, de accesul şi de calcul. Rezultatele obţinute în aceste experimente s-au dovedit de un real folos comunităţii LHC, în special experimentului CMS, deoarece au demonstrat necesitatea îmbunătăţirii infrastructurii de reţea trans-Atlantică, precum şi rolul important al folosirii unei platforme de agenţi capabile de a lua decizii inteligente pentru transferul de cantităţii impresionante de date generate de către experimentele de fizică. Capitolul 7 prezintă concluziile lucrării, sintetizează contribuţiile originale ale lucrării şi indică direcţiile de dezvoltare ulterioară a cercetărilor începute în prezenta lucrare. Se cuvine să amintesc că forma actuală a lucrării se datorează în mare parte conducătorului ştiinţific al doctoratului, Domnul Profesor Doctor Inginer Valentin Cristea, căruia doresc să-i mulţumesc în mod deosebit pentru sprijinul acordat în elaborarea tezei. Acest sprijin s-a manifestat îndeosebi prin orientarea autorului către un domeniu atât de generos şi de dinamic al cercetării ştiinţifice. În acelaşi timp, discuţiile profesionale avute cu domnia sa, precum şi indicarea unei bibliografii cuprinzătoare şi bine direcţionate, au condus la lărgirea perspectivei autorului asupra problematicii modelării sistemelor distribuite şi în consecinţă au 4 contribuit în bună măsură la obţinerea rezultatelor prezentate. Aştept cu nerăbdare să colaborez cu domnia sa în viitor. Doresc de asemenea să exprim mulţumirile mele deosebite Domnului Iosif C. Legrand, conducătorul echipei şi prieten sincer din partea California Institute of Technology, pentru sfaturile întelepte acordate de domnia sa şi pentru atmosfera deosebită în care s-a desfăşurat colaborarea noastră de cercetare. Mulţumiri deosebite doresc să îi adresez Domnului Profesor Inginer Nicolae Ţăpuş care a avut răbdarea să mă asculte şi mi-a oferit numeroase sugestii interesante. Nu în ultimul rămd se cuvine să amintesc meritele deosebite avute de colectivul extraordinar de cercetare din cadrul laboratorului RoGRID, alături de care am împărţit multe momente frumoase în aceşti ani. Mulţumiri speciale se cuvine să adresez soţiei mele Iulia pentru suportul necondiţionat pe care mi l-a acordat în toată această perioadă. Iubirea, înţelegerea şi răbdarea primite din partea ei m-au ajutat să suport cu stoicism perioada de studii doctorale. 2. NECESITĂŢI SPECIFICE SISTEMELOR DISTRIBUITE Tehnicile avansate de modelare şi simulare a sistemelor distribuite de mari dimensiuni propuse în cadrul acestei lucrări permit simularea realistă a unei game largi de tehnologii specifice unor astfel de sisteme, în concordanţă cu componentele şi caracteristicile specifice acestora. Modelul de simulare propus include componentele necesare pentru a descrie o mare varietate de tehnologii şi furnizează mecanismele adecate pentru modelarea tehnologiilor de transfer, pentru evaluarea de diverse modele de replicare de date şi pentru analizarea procedurilor de planificare a sarcinilor de lucru. Obiectivele principale al acestui capitol sunt prezentarea componentelor şi caracteristicilor modelului şi demonstrarea capabilităţii modelului de a simula corect şi complet o gamă largă de sisteme distribuite complexe, cuprinzând multe resurse şi diverse tehnologii ce conlucrează la atingerea unui set comun de caracteristici. De asemenea prezentăm în cadrul acestui capitol o analiză originală a experimentelor de fizică desfăşurate la CERN şi demonstrăm că modelul de simulare propus poate fi folosit cu succes în testarea cerinţelelor complexe ale modelelor de calcul propuse de către aceste experimente. În finalul capitolului prezentăm soluţiile de simplificare şi optimizare adoptate de către modelul de simulare propus ce permit modelarea realistă a sistemelor distribuite de mari dimensiuni. 2.1. Simularea sistemelor distribuite 2.1.1. Problematica sistemelor distribuite O caracteristică importantă a modelului de simulare propus o reprezintă generalitatea acestuia, designul modelului permiţînd modelarea unei game variate de tehnologii de sisteme distribuite. Proiectarea modelului de simulare s-a bazat pe studierea în prealabil a diverselor arhitecturi de sisteme distribuite existente, pe analiza caracteristicilor sistemelor distribuite din perspectiva simulării şi modelării acestora. Arhitectura originală de sistem distribuit constă într-o colecţie de programe şi procese ce comunică prin intermediul unei reţele şi care cooperează în rezolvarea anumitor probleme. Sistemele distribuite permit cooperarea şi coordonarea acţiunilor utilizatorilor în mod practic şi eficient. Caracteristicile cheie ale unor astfel de sisteme sunt: partajarea resurselor, deschiderea, suportul pentru concurenţă, scalabilitatea, toleranţa la defecte şi transparenţa ([Coulouris, et al, 1994]). Aceste caracteristici sunt bine mapate pe modelul de simulare după cum se poate observa şi din Tabelul 2.1. Grid computing este considerat a fi etapa avansată a calcului distribuit, un domeniu în plin avânt în care standardele şi tehnologiile sunt încă în stadiul de dezvoltare a viziunii cercetătorilor. Calculul pe Grid a fost impus de problemele pentru a caror rezolvare era nevoie de o putere de calcul imposibil sau greu de oferit de un singur sistem. S-a plecat de la ideea găsirii posibilităţilor prin care mai multe calculatoare să lucreze simultan, conform principiilor calcului paralel pe structuri distribuite. Introdus în anul 1997 ca o metaforă pentru a descrie 5 accesibilitatea la puterea de calcul precum într-o reţea electrică (grid, în engleza), termenul de Grid a devenit public pe scara largă în anul 1998 odată cu lansarea cărţii "The Grid - Blueprint for a new computing infrastructure", editată de Ian Foster si Carl Kesselman. Tehnologia Grid oferă servicii prin seturi de programe utilitare prin care se coordonează resurse distribuite de putere de calcul şi de stocare, prin utilizarea de interfeţe şi protocoale standardizate. Caracteristica Influenţa acesteia asupra modelului de simulare Partajarea resurselor Includerea în model a componentelor de reţea şi a entităţilor ce permit schimbul de date. Deschidere Adoptarea infrastructurii de modelare orientată pe obiecte şi folosirea de interfeţe standard ce permit accesul la componente chiar în timpul execuţiei unui experiment de simulare. Suportul pentru concurenţă Înglobarea mecanismului de întreruperi ce permite modelarea concurenţei proceselor şi a transferurilor de date pe reţea. Scalabilitatea Adoptarea unui model de simulare orientat pe obiecte şi folosirea de structuri interne de ultimă generaţie ce permit obţinerea de performanţe ridicate. Toleranţa la defecte Planificatorul de sarcini de lucru inclus în model consideră această proprietate pentru asigurarea succesului execuţiei acestora. Transparenţa Adoptarea de algoritmi de rutare avansaţi, de diverşi algoritmi de replicare de date şi de planificare ce iau în considerare problema asigurării transparenţei la defecte. Tabelul 2.1. Caracteristicile sistemelor distribuite şi relaţia acestora cu modelul de simulare. Modelul de simulare încorporează elementele diverselor arhitecturi Grid, păstrând caracteristicile acestora. Acest aspect, corelat cu flexibilitatea de a încorpora noi componente în modelul de simulare, face ca instrumentul de simulare să fie capabil de a modela o mare varietate de tehnologii caracteristice sisteme Grid. Figura 2.1. Arhitectura Grid şi influenţele acesteia asupra modelului de simulare. Din punct de vedere istoric cea mai importantă arhitectură de sistem Grid este cea descrisa de Ian Foster, Carl Kesselman şi Steven Tuecke în [Foster, et al, 2001], cunoscută sub denumirea de arhitectura orientată pe protocoale. Conform acestei accepţiuni sistemele Grid se concentrează pe partajarea resurselor pe scară largă, intre diverse organizaţii, în scopul livrării unor performanţe ridicate. Această partajare pe scară largă a resurselor 6 poate facilita crearea de organizaţii virtuale, ceea ce conform autorilor este adevărata problemă pe care calculul pe Grid incearcă să o rezolve. O organizaţie virtuala defineşte resursele disponibile participanţilor şi regulile de acces şi de folosire ale acestora. Pentru interoperabilitatea între potenţialii participanţi la o organizaţie virtuală autorii au propus folosirea unor “protocoale ce definesc mecanismele de bază prin care utilizatorii organizaţiilor virtuale şi resursele disponibile negociază, stabilesc, gestionează şi exploatează relaţiile de partajare“. Arhitectura orientată pe protocoale se bazează pe nivele, după cum se prezintă şi în Figura 2.1. În figura prezentată se observă relaţia între nivelele de protocoale şi componentele specifice acestora ce sunt incluse în modelul de simulare. Arhitectura orientată pe protocoale este structurată pe câteva nivele şi conectează diverse aplicaţii Grid cu resursele necesare execuţiei acestora. Pe poziţia cea mai de jos a acestei ierarhii întâlnim nivelul Fabric, constând în resurse (ferme de procesare, calculatoare de birou, medii de stocare, resurse de reţea, senzori, samd) ce sunt puse la dispoziţia sistemului Grid. Subnivelul superior al acestui nivel este compus din totalitatea instrumentelor de gestiune a resurselor locale, diferite de aplicaţiile middleware de la nivelul imediat superior (sisteme de operare, sisteme locale de planificare precum PBS şi biblioteci software). Modelul de simulare înglobează componente specifice acestui nivel. Echivalentul în simulare al resursei computaţionale îl reprezintă unitatea de procesare, caracterizată prin putere de procesare şi memorie disponibilă. În plus, pentru simularea comportamentului unui sistem de operare, modelul de simulare consideră pentru această resursă şi posibilitatea existenţei unui algoritm de paginare. Elementele de stocare a datelor sunt modelate prin servere de baze de date ce pot folosi medii precum discuri sau benzi magnetice. Modelul de simulare presupune organizarea datelor în baze de date ce înglobează conteinere. Conteinerele pot modela comportamentul unei game largi de tehnologii de organizare a datelor. De exemplu conteinerele pot fi vizualizate ca fişiere iar baza de date poate modela comportamentul structurii de directoare a sistemului simulat; sau conteinerele pot reprezenta i-nodurile unui sistem de fişiere de tip Unix iar baza de date poate modela în acest caz un fişier. Multitudinea de scenarii ce pot fi concepute folosind modelul de baze de date poate ajunge până la simularea realistă de diverse tehnologii ce ţin de bazele de date, conteinerele în acest caz modelând comportamentul segmentelor de date. Resursele de calcul şi cele de stocare a datelor sunt interconectate prin componente de reţea. Modelarea completă a unui sistem de calcul este de asemenea posibilă, de exemplu prin includerea în cadrul aceluiaşi centru regional atât a componentelelor computaţionale, cât şi a elementelor de stocare a datelor. În acest fel pot fi modelate chiar şi arhitecturi de nivel înalt. Un alt exemplu îl constituie modelarea comportamentului unui cluster prin includerea în scenariul de simulare a mai multor resurse computaţionale în acelaşi centru regional. Planificatorul inclus în modelul de simulare poate fi de asemenea util în simularea unei game largi de tehnologii, de la planificarea proceselor în cadrul unui sistem de operare până la planificarea execuţiei sarcinilor de lucru specifice Grid în sistemul local. Toate aceste componente considerate de modelul de simulare pot fi cu uşurinţă extinse de către utilizator, posibilităţile de modelare fiind practic virtual nelimitate. Nivelul Connectivity defineşte mecanismele de bază pentru comunicaţie şi protocoalele de autentificare specifice tranzacţiilor în sisteme Grid. Protocoalele de comunicaţie facilitează schimbul de date între resursele fizice iar protocoalele de autentificare furnizează mecanismele de control pentru verificarea identităţii utilizatorilor şi a resurselor. Modelul de simulare presupune existenţa unei stive de protocoale (IP, TCP şi UDP) ce înlesnesc schimbul de date între diversele componente simulate. Protocoalele de autentificare nu sunt incluse încă în modelul de simulare. Una dintre extensiile planificate în viitorul apropriate ale modelului de simulare presupune şi includerea de diverse modele de securitate. Nivelul Resource include setul de protocoale (incluzând API-uri si SDK-uri) necesare negocierii, iniţializării, monitorizării, controlului, contabilizării şi plăţii operaţiilor partajate efectuate asupra resurselor individuale. Aceste protocoale apelează funcţiile nivelului resurselor pentru accesul şi controlul componentelor locale. Acest nivel consideră numai resursele individuale, nu şi starea globală a întregului sistem distribuit. Procoalele acestui nivel pot fi de mai multe tipuri: protocoale ce sunt folosite pentru obţinerea de informaţii legate de configurare, de încărcarea sistemului sau de politici de folosinţă; pot fi protocoale de gestiune folosite pentru negocierea accesului la resursele partajate conform necesităţilor resurselor sau operaţiilor efectuate. Modelul de simulare include componente specifice acestui nivel al arhitecturii. Modelul simulat al centrului regional conţine un catalog de resurse disponibile ce este folosit de către meta-planificatoare. Catalogul datelor globale şi cel al bazelor de date, de asemenea incluse în modelul de simulare, sunt reponsabile cu gestiunea globală a datelor. Modelul include de asemenea posibilitatea monitorizării permanente a stării sarcinilor de lucru submise spre execuţie. 7 Nivelul Collective conţine protocoalele şi serviciile ce sunt asociate cu interacţiunile între colecţii de resurse. Componentele acestui nivel pot implementa o mare varietate de metodologii de partajare fără a impune cerinţe suplimentare resurselor partajate. La acest nivel modelul de simulare furnizează funcţionalitatea de metaplanificator ce permite execuţia sarcinilor de lucru într-o manieră distribuită. Această componentă poate suporta o mare varietate de algoritmi de planificare conform cu cerinţele scenariilor utilizatorilor, modelul incluzând de altfel un set bogat de proceduri predefinite. Ultimul nivel, Application, referă aplicaţiile utilizatorilor ce rulează în mediul oferit de sistemul Grid. Aceste aplicaţii pot defini protocoale, servicii şi/sau API-uri şi în general impun un grad ridicat de complexitate. În cazul modelului de simulare la acest nivel utilizatorii pot defini diverse activităţi, compuse din sarcini de lucru, ce modelează diverse comportamente. Posibilele tipuri de activităţi pot fi cele consumatoare de date, de resurse sau combinaţii ale acestora. Utilizatorii pot cu uşurinţă modela o mare varietate de aplicaţii, cuprinzând diverse tipuri de operaţii şi de comportamente, modelul de altfel oferind o mare varietate de activităţi predefinite. Arhitectura bazată pe protocoale a sistemelor Grid a fost ulterior îmbunătăţită de către autori cu o alta bazată pe servicii. Conform acestei arhitecturi sistemul Grid este considerat a fi "un set extensibil de servicii ce răspund mesajelor protocoalelor" ([Foster, et al, 2002]). Arhitectura presupune că serviciile Grid pot fi agregate pentru a întruni necesităţile organizaţiilor virtuale. În modelul de simulare definiţiile sarcinilor de lucru urmează anumite seturi de reguli bine definite. Descoperirea resurselor este simulată prin folosirea unui catalog de resurse iar componentele sunt accesate prin intermediul unor puncte de acces bine definite, similar conceptelor prezentate de arhitectura bazată pe servicii. Generalitatea modelului de simulare permite încorporarea elementelor specifice acestei architecturi. Un exemplu de serviciu Grid generic, descris în [Foster, et al, 2004], presupune un client ce accesează un serviciu de transferuri de fişiere pentru a efectua o serie de acţiuni precum transferul unui fişier de la un serviciu de stocare la altul. Un scenariu de simulare ce presupune un comportament similar, sub forma unor agenţi ce modelează servicii de transfer, a fost cu succes executat folosind instrumentul de simulare prezentat în această lucrare ([Dobre, et al, 2005]). Aceasta demonstrează capacitatea modelului de a permite simularea folosirii unei mari varietăţi de paradigme specifice serviciilor Grid. Astăzi mai mult ca oricând se întrevede o creştere a interesului pentru tehnologiile Grid. Ultimele descoperiri în domeniul tehnologiilor Grid au necesitat mai mult ca niciodată folosirea simulării ca instrument pentru testarea şi validarea mai rapidă a diverselor probleme, cu costuri mult mai mici. Tehnologiile de planificare, replicare de date, transferuri de date, sunt astăzi subiecte de mare interes şi este de aşteptat ca în viitor interesul comunităţii ştiinţifice în folosirea tehnicilor de simulare să crească vertiginos, mai ales în ceea ce priveşte domeniul modelării sistemelor distribuite. 2.1.2. Caracteristicile sistemelor Grid Sistemele Grid sunt sisteme complexe ce prezintă o serie de caracteristici particulare. Conform lucrării [BoteLorenzo, et al, 2002], caracteristicile unui sistem Grid pot fi clasificate în 10 categorii principale. Un sumar al acestor caracteristici şi al influenţei acestora asupra designului modelului de simulare este prezentat în Tabelul 2.2. Un sistem Grid trebuie să poată gestiona de la câteva până la milioane de resurse. Caracteristica de sistem de mari dimensiuni a unui sistem Grid este legată de problema evitării degradării performanţei odată cu creşterea în dimensiuni. Instrumentul de simulare conservă această caracteristică, permiţând modelarea unor scenarii ce implică un număr considerabil de noduri. Modelul permite de asemenea adăugarea dinamică de noi noduri în cadrul unui experiment de simulare. Acest aspect este facilitat de orientarea pe obiecte a modelului, ceea ce permite adăugarea dinamică de noi obiecte ce modelează diverse comportamente de resurse. Practic numărul de resurse implicate într-un experiment de simulare este limitat doar de caracteristicile fizice ale sistemului local. Motorul de simulare cuprinde însă o serie de optimizări ce permit modelarea unor scenarii cuprinzănd un număr impresionant de resurse. O altă caracteristică a unui sistem Grid este reprezentată de distribuirea geografică a resurselor, acestea fiind situate în locaţii aflate la mari distanţe una de alta. Arhitectura modelului de simulare presupune organizarea 8 resurselor în diverse centre regionale situate în diverse locaţii. Comunicarea între aceste centre este asigurată de componentele de reţea ale modelului de simulare. Eterogenitatea, multitudinea de tehnologii ce alcătuiesc sistemul Grid, atât software cât şi hardware, reprezintă o altă carateristică a acestor sisteme. Un sistem Grid cuprinde o mare varietate de resurse, de la date, fişiere, componente software până la senzori, instrumente ştiinţifice, PDA-uri, calculatoare, supercalculatoare şi reţele. Pentru a permite simularea de diverse arhitecturi hardware modelul de simulare permite gruparea mai multor componente în ansamble de nivel înalt. Centrul regional reprezintă o astfel de arhitectură hardware de nivel ridicat ce înglobează resurse de calcul, de date şi de reţea. Eterogenitatea software este modelată prin includerea în model de diverse distribuţii de probabilitate. Astfel de distribuţii pot fi de exemplu folosite pentru modelarea transferurilor de date în care calitatea depinde de o multitudine de factori, plecând de la aplicaţiile software folosite pentru livrarea datelor şi până la probleme de natură fizică apărute pe mediile de transmisie. Fluctuaţiile aleatoare ce pot apărea în astfel de transferuri sunt modelate prin generarea de întreruperi în simulare conform unor distribuţii de probabilitate. Caracteristica Grid Influenţa acesteia asupra modelului de simulare Sistem de mari dimensiuni, Folosirea de structuri interne optimizate şi algoritmi avansaţi ce permit modelarea experimentelor cuprinzând un număr mare de resurse. Distribuit geografic, Arhitectura de centru regional al modelului de simulare. Eterogen, Folosirea diverselor modele de componente hardware; arhitecturi software modelate folosind diverse distribuţii de probabilitate. Ce presupune partajarea resurselor, Reprezentare în cadrul modelului de reţea. Existenţa mai multor domenii de administrare Înglobarea unui planificator distribuit. Implicând coordonarea resurselor, Mecanismele de coordonare a resurselor incluse în modelul de simulare. Acces de încredere, Implementarea de diverşi algoritmi de planificare de tip DAG. Acces consistent, Folosirea mecanismelor standard pentru accesul resurselor. Acces universal Mecanismele planificatorului capabile de a detecta erori şi de a întreprinde acţiuni corespunzătoare. Tabelul 2.2. Influenţa caracteristicilor sistemelor Grid asupra modelului de simulare. O altă caracteristică specifică sistemelor Grid o reprezintă partajarea resurselor. Resursele constituente ale unui sistem Grid aparţin mai multor organizaţii ce permit altor organizaţii (utilizatorilor) accesul. Resursele diferite de cele locale pot fi folosite de către aplicaţii, aspect ce promovează eficienţa şi reduce costurile. Modelul de simulare conservă această caracteristică prin adoptarea unui model de reţea matur ce încorporează elemente ce permit simularea comunicării între diverse resurse ale sistemului Grid. Partajarea resurselor este strâns legată de caracteristica de existentă a mai multor domenii de administrare. Fiecare organizaţie poate stabili diverse politici administrative ce definesc modalităţile de acces şi de folosire a resurselor proprii, aspect ce complică şi mai mult problema asigurării securităţii aplicaţiilor. În modelul de simulare această caracteristică se traduce prin înglobarea componentei de planificare distribuită. În simulare fiecare centru regional poate include un planificator local pentru gestiunea resurselor conform unor politici locale, iar planificatorul distribuit are rolul de negiociere între acestea. 9 O altă caracteristică este aceea de coordonare a resurselor. Resurselor aparţinând unui sistem Grid sunt coordonate pentru a furniza capabilităţi de calcul agregate. Un sistem Grid colectează multe resurse şi furnizează o agregare a acestor resurse individuale într-o resursă virtuală de mai mare capacitate. În acelaşi timp capacitaţile resurselor individuale sunt păstrate. Ca o consecinţă a acestui aspect dintr-o perspectivă globală sistemul Grid permite rularea aplicaţiilor unor aplicaţii mai mari şi mai rapid (agregarea capacităţilor), pe când dintr-o perspectivă locală sistemul permite rularea de noi aplicaţii. Coordonarea resurselor este considerată şi de modelul de simulare. Capacităţile resurselor fiecărui centru regional este păstrată. La nivel global însă o aplicaţie de dimensiuni mari precum un scenariu de replicare de date, de exemplu, poate fi cu uşurinţă modelat folosind capacităţile agregate ale mai multor centre regionale, fiecare înglobând diverse servere de date. Mecanismele de coordonare ale resurselor sunt parte componentă a modelului de simulare. O caracteristică importantă a oricărui sistem Grid este dată de accesul transparent la resurse, utilizatorul vizualizând sistemul sub forma unui unic sistem de calcul virtual. Transparenţa este asigurată de modelul de simulare, aspect prezentat în secţiunea anterioară. Un sistem Grid trebuie să asigure acces de încredere sau garanţia livrării serviciilor conform unor specificaţii predefinite de Calitate a Serviciilor. Această caracteristică este conservată de modelul de simulare prin includerea de diverşi algoritmi de planificare de tip DAG, monitorizarea în permanenţă a resurselor existente şi înglobarea catalogului de stare a resurselor. Conform următoarei caracteristici, asigurarea accesului consistent, un sistem Grid trebuie implementat folosind servicii, protocoale şi interfeţe standard ce ascund eterogenitatea resurselor, permiţând în acelaşi timp scalabilitatea. Caracteristica aceasta este conservată de modelul de simulare prin definirea unor clase abstracte, conţinând metode standard definite de acces, ce trebuie extinse de fiecare clasă ce implementează comportamentul diverselor resurse simulate. Ultima caracteristică, accesul universal, presupune că sistemul Grid trebuie să furnizeze acces la resursele disponibile prin adaptarea la un mediu dinamic în care pot apărea diverse erori. În prezenţa erorilor una dintre sarcinile algoritmului de planificare este de a le detecta şi de a întreprinde măsuri corespunzătoare. Exemple de astfel de comportamente au fost cu succes executate folosind instrumentul de simulare (de exemplu în [Pop, et al, 2006]). Toate caracteristicile caracteristice sistemelor Grid sunt conservate de modelul de simulare. Prin urmare putem spune că modelul de simulare conţine elementele necesare modelării corecte a unei game variate de tehnologii Grid în conformitate cu componentele şi caracteristicile specifice acestora. 2.2. Necesităţi specifice experimentelor LHC şi a altor aplicaţii ştiinţifice Ca un studiu de caz prezentăm în cele ce urmează o analiză a experimentelor LHC (Large Hadron Collider) ce se desfăşoară la CERN din perspectiva instrumentului de simulare, demonstrând că modelul de simulare propus conţine componentele şi caracteristicile necesare ce permit dezvoltarea corectă şi completă de experimente de simulare de mare complexitate de tipul celor prezentate. 2.2.1. Experimentele LHC Marea popularitate de care se bucură astăzi sistemele Grid se datorează în bună parte experimentelor LHC ce se desfăşoară la CERN, în Elveţia, şi care vor începe producţia de date în 2008. Volumul de date ce se aşteaptă a fi generat de aceste experimente este de ordinul petaocteţilor, date ce trebuie distribuite fizicienilor din toată lumea. Deoarece sistemele Grid au fost mandatate ca infrastructura IT ce va fi folosită pentru manipularea cantităţilor impresionante de date toate naţiunile participante pun la punct diverse infrastructuri Grid. Complexitatea fără precedent a experimentelor LHC au impus necesitatea găsirii de soluţii alternative precum combinarea resurselor tuturor organizaţiilor participante. Problema gestionării într-o manieră inteligentă a folosirii resurselor dispersate în toată lumea a fost adresată de proiectul MONARC încă de la sfârşitul anilor 90. Astăzi toate experimentele LHC folosesc ceea ce a fost atunci denumit modelulul distribuirii ierarhice, prezentat 10 în Figura 2.2, conform căruia centrele dispersate în toată lumea contribuie la însumarea capacităţii de procesare şi a spaţiului de stocare necesare rulării acestor activităţi. Conform acestui model sistemul este compus dintr-un ansamblu de resurse de calcul distribuite, concentrate într-o ierarhie de centre numite Tiers şi în care Tier0 este considerat a fi CERN, nodurile Tier1 sunt centrele principale de procesare ce furnizează şi medii sigure de stocare iar nodurile Tier2 sunt centrele regionale de dimensiune mai mică. MONARC a prevăzut de asemenea si existenţa unor centre Tier3, reprezentând centrele de calcul ale departamentelor diverselor universităţi implicate, şi chiar centre Tier4 reprezentând staţiile utilizatorilor. Distincţia între aceste centre de nivel mai scăzut nu reprezintă un aspect relevant într-un model Grid, ce reprezintă până la urmă ceea ce descria această viziune, chiar dacă modelul MONARC a fost dezvoltat înaintea apariţiei domeniului sistemelor Grid. Figura 2.2. Modelul MONARC. Arhitectura distribuirii ierarhive se mapează corect pe modelul de simulare. În cadrul modelului colecţii de noduri de procesare, servere de date şi entităţi de reţea sunt logic organizate în centre regionale. Modelul de reţea permite conectarea acestor centre în diverse arhitecturi, inclusiv în forma modelului ierarhic folosit de experimentele de fizică. Sarcini de lucru specializate incluse de asemenea în modelul de simulare permit simularea comportamentului specific activităţilor LHC. Aceste elemente permit contruirea de scenarii conforme cu condiţiile de rulare presupuse de experimentele de la CERN, aşa cum sunt acestea descrise de modelele de calcul. Un astfel de experiment de altfel a fost cu succes executat folosind modelul de simulare propus ([Legrand, et al, 2005]). Un model alternativ a fost ulterior propus de către experimentul ALICE, modelul „Cloud”. Conform acestui model distribuţia sarcinilor de lucru către diversele centre implicate se face dinamic, pe baza disponibilitaţii resurselor şi a serviciilor pe care le publică, indiferent de nivelul de Tier din care face parte centrul ce le generează. Acest model este de asemenea bine mapat pe modelul de simulare. În acest caz planificatorul distribuit asignează sarcinile de lucru simulate într-o manieră dinamică diverselor centre existente pe baza disponibilităţii resurselor şi a serviciilor publicate. MONARC 2 include de altfel o serie de componente ce sunt specifice experimentelor LHC: un catalog de metadate, diverse activităţi de analiză şi un planificator distribuit. Catalogul de metadate reprezintă o componentă internă modelului ce are rolul de a stoca datele pe baza evenimentelor apărute în simulare. Acesta conţine metode pentru stocarea evenimentelor cu sau fără crearea de replici, pentru găsirea celui mai apropiat server de date ce conţine datele corespunzătoare unui anumit eveniment sau pentru aflarea celui mai optim (în termeni de costuri de transfer şi de acces) server de date ce conţine un anumit set de date. Acest catalog este folosit în asociere cu sarcinile de lucru ce modelează comportamentul procesării de date într-o manieră similară modului în care datele sunt procesate în cadrul experimentelor de fizică. Planificatorul distribuit foloseşte un algoritm bazat pe încărcarea medie minimă a unităţilor de procesare pentru aflarea celui mai optim centru unde sarcinile pot fi executate. Sarcinile de lucru pentru analiza de date folosesc catalogul de metadate pentru obţinerea datelor necesare ce sunt ulterior procesate, conform modelelor de calcul specifice experimentelor LHC. 11 Modelul de simulare mai include şi unităţi de stocare a datelor pe benzi magnetice pentru folosinţă îndelungată, similar celor existente la CERN, şi algoritmi de automatizare a stocării datelor pentru o perioadă mai lungă de timp. Dificultatea în simularea condiţiilor de lucru ale experimentelor LHC provine şi din volumul impresionant de resurse implicate în acestea. Simulatorul MONARC 2, prin folosirea unor structuri şi tehnologii avansate, poate fi cu succes folosit pentru testarea unor experimente de asemenea anvergură. Toate aceste elemente au fost încorporate în modelul de simulare pe baza necesităţilor specifice experimentelor de fizică de la CERN. 2.2.2. Necesitatea optimizării transferurilor de date Cele patru experimente LHC se presupune că vor colecta cantităţi impresionante de date ce trebuie procesate, calibrate şi analiză de mai multe ori. 5000 de cercetători din 500 ce instituţii din toată lumea se bazează pe furnizarea unui acces necondiţionat la datele specifice experimentelor de fizică. Colaborarea la un asemenea nivel nu ar fi putut fi planificată fără existenţa unei infrastructuri excepţionale de reţea ce să interconecteze grupurile de fizicieni pe toată durata experimentelor şi care să suporte transferul cantităţilor impresionante de date generate. La ora actuală CERN conduce dezvoltarea a două mari proiecte Grid, WLCG (World-wide LHC Computing Grid Collaboration) şi EGEE (Enabling Grid for E-sciencE). Nivelul reţea, parte a nivelului Fabric, joacă un rol important în cazul ambelor proiecte Grid. Una dintre cele mai mari probleme pe care aceste sisteme încearcă să le rezolve este găsirea modalităţii de distribuire a cantităţii impresionante de date produse către diversele destinaţii din toată lumea. Găsirea soluţiilor în acest caz presupune rezolvarea a două probleme. Prima constă în furnizarea infrastructurilor de reţea capabile să susţină traficul preconizat. Cea de-a doua problema constă în dezvoltarea de instrumente pentru transferul datelor peste legăturile dedicate într-o manieră eficientă. Capacităţile de bandă ale reţelelor de nouă generaţie au fost demonstrate cu diverse ocazii. Transferuri de până la 7,2 Gbps peste distanţe de până la 20,700 km au fost cu succes prezentate în timpul unei demonstraţii ce a avut loc în 2004 (recordul de transfer al Internet2). În timpul întrecerii SuperComputing Bandwidth Challenge, în anul 2005, o echipă de oameni de ştiinţă şi ingineri condusă de California Institute of Technology au reuşit stabilirea unui record de 151 Gbps pentru un transfer susţinut. Acest record a reprezentat o demonstraţie a posibilităţii obţinerii unor viteze de transfer ce sunt conforme cu necesităţile experimentelor LHC. Anul Valori în producţie Valori experimentale Tehnologii folosite 2001 0,155 0,622 – 2,5 SONET/SDH 2002 0,622 2,5 SONET/SDH, DWDM, GigE Integ. 2003 2,5 10 DWDM, 1+10 GigE Integration 2005 10 2-4 x 10 2007 2-4 x 10 ~ 10 x 10; 40 Gbps 2009 ~ 10 x 10 or 1-2 x 40 ~ 5 x 40 or ~ 20-50 x 10 λ Switch; λ Provisioning 1st Gen. λ Grids 40 Gbps λ Switching Tabelul 2.3. Evoluţia tehnologică a marilor legături de date implicate în experimentele LHC (valori în Gbps). Tehnologiile reţelelor de comunicaţie au dus în ultimii ani la o dezvoltare şi mai remarcabilă a capacităţilor de transfer. Sistemele Grid actuale încep din ce în ce mai mult să se intereseze de folosirea reţelelor „hibride”, în care aplicaţiile mari consumatoare de date sunt ajutate în mod dinamic prin construirea de căi optice dedicate să obţină capacităţi de transfer cu adevărat impresionante. În Tabelul 2.3 prezentăm un istoric al evoluţiei capacităţilor de transfer ale legăturilor majore ce vor fi folosite pentru transferul datelor generate de experimentele LHC. Cea de-a doua coloană prezintă valorile de bandwidth ce sunt furnizate aplicaţiilor de producţie. Cea de-a treia coloană prezintă valorile obţinute în diverse experimente (demonstraţii sau experimente). După cum se poate observa, tehnologia a evoluat de la SONET/SDH către Optical Provisioning, tendinţa actuală fiind de a folosi pentru transferuri direct protocoalele nivelului 2 (switching) sau chiar mai departe, de a folosi direct legăturile optice de nivel 1 (optical paths provisioning). Ultimul rând din cadrul tabelului prezintă o estimare în termeni de performanţă a echipamentelor de reţea ce vor exista cel mai probabil în 2009, conform tendinţelor actuale, atunci când mai multe legături de date de 10 Gbps şi 40 Gbps vor fi folosite în producţie. 12 Chiar dacă legăturile de 10 Gbps devin din ce în ce mai comune, atingerea unor rate de transfer cât mai apropiate de 10 Gbps sau chiar de 1 Gbps rămâne încă o problemă nerezolvată pentru cei mai mulţi utilizatori. În timpul demonstraţiei SuperComputing 2006 Bandwidth Challenge echipa noastră a reuşit stabilirea unui record de transfer de 17,177 Gbps între clustere de servere aflate la conferinţă şi la Caltech, folosind o singură legătură de 10 Gbps. Pentru controlul şi coordonarea transferurilor în timpul acestei demonstraţii s-a folosit LISA, un instrument de monitorizare dezvoltat pe baza experienţei acumulate la dezvoltarea instrumentului de simulare şi pe baza rezultatelor experimentelor de simulare ce au analizat activităţile de fizică. De asemenea echipa a folosit o aplicaţie pentru transferuri rapide, FDT, ce asemenea proiectului LISA, a fost dezvoltat în cadrul unei colaborări între Caltech şi Universitatea Politehnică Bucureşti, autorul fiind parte a echipei de dezvoltatori în cazul ambelor proiecte. Aplicaţiile ce asigură transferul de mare viteză al datelor provenite din experimentele LHC către destinaţii aflate în toată lumea sunt în permanenţă dezvoltate. Simularea se dovedeşte de cele mai multe ori un instrument important în dezvoltarea unor astfel de aplicaţii de ultimă oră. Modelul de simulare propus întruneşte de altfel toate elementele necesare dezvoltării şi testării unor astfel de tehnologii avansate. Modelul suportă extinderea prin încorporarea de noi protocoale, de noi tehnologii, de metodologii de transfer. Rezultatele prezentate în această lucrare demonstrează de altfel cu succes acest lucru. 2.3. Simularea modelelor de calcul complexe Simularea unor scenarii complexe ce implică caracterizarea realistă a unor sisteme Grid sau experimente LHC de tipul celor prezentate ridică o serie de dificultăţi. Modelul de simulare propus prezintă o serie de caracteristici ce permit rularea cu succes a unor astfel de experimente. Complexitatea modelării unui experiment este dată de o multitudine de factori, cel mai important fiind neclaritatea obiectivelor simulării. De multe ori acelaşi obiectiv poate fi atins mai eficient folosind un model simplificat de simulare. În cazul unor sisteme complexe de mari dimensiuni este important ca sistemul de simulare pe de o parte să ascundă detaliile irelevante în scopul obţinerii unor costuri reduse de execuţie şi în acelaşi timp să conţină elementele necesare asigurării validităţii rezultatelor obţinute în raport cu obiectivele simulării. F. K. Frantz, în [Frantz, 1995], clasifică tehnicile de simplificare a modelelor de simulare, pe baza componentelor modificate, în trei categorii: modificarea graniţelor, modificarea comportamentului şi modificarea formei. Modificarea graniţelor presupune reducerea spaţiului variabilelor de intrare, fie prin delimitarea plajei de valori a unui anumit parametru de intrare, fie prin minimizarea numărului de parametrii de intrare. Modelul de simulare adoptă această tehnică prin minimizarea numărului de parametrii de intrare, acesta considerând strict acei parametrii ce influenţează în mod direct rezultatul simulării. De exemplu unitatea de procesare este caracterizată de valoarea puterii de procesare, variabilă ce se consideră a nu fi influenţată de încărcarea indusă de alte procese existente. Această simplificare este permisă deoarece unitatea de măsură a puterii de procesare în modelul de simulare se consideră a fi SI95, o valoare medie a performanţei măsurată conform unor diverse experimente de benchmark a sistemelor reale. Modelul de simulare permite totuşi simularea influenţei proceselor asupra performanţei prin includerea explicită în scenariul de simulare de diverse sarcini de lucru adecvate acestui scop. Variaţiile în încărcarea sistemului pot fi de asemenea modelate prin utilizarea diverselor distribuţii de probabilitate include în modelul de simulare. Modelul de reţea nu ia în considerare în mod implicit efectul zgomotelor de fundal, dar modelul de simulare permite totuşi şi simularea acestui efect dacă experimentul de simulare necesită acest lucru. În cazul modificării comportamentului stările modelului de simulare sunt agregate, fie în domeniul spaţial, fie în cel temporal. În diverse momente ale simulării starea sistemului poate fi descompusă într-un vector de variabile de stare. Aceste variable corelate pot fi agregate şi înlocuite printr-una singură în modelul simplificat. Modelul de simulare foloseşte această tehnică de simplificare în cadrul modelului de reţea. În cazul în care dinamica transferului pachetelor nu este de interes pentru scenariul de simulare modelul de reţea consideră trimiterea unui pachet ca variabilă de stare agregată în starea execuţiei întregului transfer din care face parte. Cazul pierderii unui pachet este tratat prin inserţia în simulare de întârzieri, similar funcţionării protocoalelor TCP. 13 Tehnica modificarea formei consideră modelul de simulare sub forma unei „cutii negre”, acesta generând rezultate pe baza intrărilor furnizate. Această tehnică duce la înlocuirea modelului sau a unui submodel de simulare original printr-un surogat al acestuia ce îmbracă o formă mult simplificată ce duce la o aceeaşi sau aproximativ aceeaşi transformare între intrare şi ieşire. Modelul de simulare încorporează diverse distribuţii de probabilitate ce sunt folosite pentru implementarea acestei forme de simplificare. De exemplu funcţionarea activităţii de procesare poate fi influenţată de diverse interferenţe. În locul includerii unor activităţi suplimentare ce ar modela acest comportament modelul de simulare foloseşte diverse distribuţii pentru obţinerea aceluiaşi efect. Distribuţiile matematice sunt frecvent folosite în modelul de simulare pentru obţinerea de diverse simplificări necesare pentru execuţia cu succes a unor scenarii de simulare implicând sisteme distribuite de mari dimensiuni. Chiar dacă tehnicile de simplificare oferă posibilitatea reducerii costurilor de rulare în cazul simulării unor sisteme complexe, acestea pot duce la pierderea unor detalii şi, implicit, la incertudini asupra validităţii rezultatelor obţinute. Tocmai de aceea simulatorul MONARC 2, dezvoltat pornind de la modelul de simulare propus, prezintă o serie de rezultate ce demonstrează validitatea acestuia. Experimentele de validare ale instrumentului de simulare includ rularea de scenarii conforme cu sisteme reale şi compararea rezultatelor obţinute cu cele obţinute prin monitorizarea cazurilor reale şi validarea conform unor observaţii matematice de tipul queuing theory. Eforturile de validare, prezentate de altfel în această lucrare, demonstrează corectitudinea modelului de simulare în prezenţa diverselor tehnici de simplificare adoptate. 3. INSTRUMENTE DE SIMULARE PENTRU SISTEME GRID Acest capitol prezintă o sinteză originală asupra lucrărilor existente în domeniul modelării şi simulării sistemelor Grid. Un obiectiv al acestui capitol îl reprezintă prezentarea categoriilor unei taxonomii originale ce are ca scop analizarea mai corectă a celor mai reprezentative instrumente pentru modelarea sistemelor Grid. Această taxonomie este cu atât mai necesară cu cât, la ora actuală, se constată lipsa unor astfel de instrumente ce ar putea caracteriza corect şi complet sistemele de modelare ale sistemelor complexe ce impun caracteristici proprii. Taxonomiile anterior definite în literatura de specialitate se dovedesc a fi fie prea generice, ele urmărind caracterizarea globală a tuturor instrumentelor de simulare fără a ţine seama de particulărităţile specifice fiecărui domeniu de simulare, fie se dovedesc a fi prea subiective şi fără fundamente reale, ele fiind special construite pentru elogierea caracteristicilor unor anumite instrumente de simulare, fiind în general propuse chiar de către dezvoltatorii implicaţi în respectivele proiecte de simulare. Categoriile taxonomiei propuse sunt ulterior folosite pentru analiza celor mai reprezentative instrumente de simulare a sistemelor Grid existente la ora actuală. 3.1. Sinteza lucrărilor anterioare Una dintre cele mai citate lucrări în ceea ce priveşte analiza instrumentelor de simulare a sistemelor Grid este [Sulistio, et al, 2004]. În cadrul lucrării autorii propun o taxonomie pe care o folosesc pentru analiza instrumentelor de simulare paralele şi distribuite prezentate. Principala problemă a acestei taxonomii constă în generalitatea acesteia, autorii urmărind caracterizarea generală a instrumentelor de simulare prin categoriile acesteia. Generalitatea taxonomiei o face necorespunzătoare pentru analiza instrumentelor specifice modelării sistemelor Grid, instrumente ce impun o serie de consideraţii suplimentate. Spre a exemplifica, una dintre categoriile taxonomiei o reprezintă considerarea timpului fizic de către modelul de simulare. Această categorie nu îşi dovedeşte utilitatea în cazul sistemelor Grid, timpul reprezintând o proprietate inerentă acestora. Procese precum trimiterea pachetelor pe reţea sau planificarea sarcinilor de lucru se derulează în astfel de sisteme ca influenţă a curgerii timpului. De altfel toate modelele de simulare studiate în această lucrare includ timpul ca proprietate inerentă modelelor de simulare folosite. O altă lucrare de referinţă în domeniu este [Quetier, B., F. Cappello, 2005]. Autorii lucrării prezintă o trecere în revistă a principalelor instrumente de simulare pentru sisteme Grid fără a introduce prea multe elemente de comparaţie între proiectele prezentate. În cadrul lucrării autorii prezintă probleme specifice simulatoarelor pentru 14 sisteme Grid precum validarea sau scopul modelului. Din păcate lucrarea nu adresează decât o parte dintre problemele specifice simulatoarelor pentru sisteme Grid şi nu realizează o categorisire a elementelor prezentate. Astfel de probleme sunt corectate de către taxonomia propusă în cadrul tezei noastre. Există şi alte lucrări, însă majoritatea se dovedesc a fi părtinitoare, fiind special construite pentru elogierea caracteristicilor unor anumite instrumente de simulare. În continuare prezentăm categoriile unei taxonomii originale ce corectează deficienţele lucrărilor anterioare ce au avut ca scop analizarea proprietăţilor simulatoarelor pentru sisteme Grid. 3.2. Taxonomia modelării sistemelor Grid Obiectivul principal al taxonomiei propuse este acela de a descrie corect diversele instrumente de simulare a sistemelor Grid existente. Taxonomia propusă conţine o serie de categorii (precum motivaţia sau componentele Grid simulate) ce sunt special concepute pentru caracterizarea completă şi corectă a unor astfel de instrumente de simulare, luând în considerare caracteristicile atât ale sistemelor Grid ce pot fi modelate cât şi pe cele ce ţin de implementarea respectivelor instrumente de simulare. Figura 3.1. Categoriile taxonomiei propuse. Figura 3.1 prezintă categorii taxonomiei propuse. Proprietăţile unui simulator ce modelează sisteme Grid se împart în două categorii principale: proprietăţile simulării şi cele ale proiectării. Taxonomia simulării analizează instrumentele de simulare pe baza modelelor de simulare adoptate de acestea, în timp ce taxonomia proiectării clasifică simulatoarele pe baza proprietăţilor de proiectare şi de implementare ale acestora. Taxonomia simulării include cinci categorii. Motivaţia indică scopul principal al unui instrument de simulare. Spre exemplu un instrument de simulare poate fi folosit explicit pentru studierea unor algoritmi de planificare sau de replicare de date sau chiar a unui model particular de sistem Grid. Implementarea unui instrument pentru studierea problemelor generale ale sistemelor Grid se dovedeşte în practică de cele mai multe ori dificilă, fapt ce impune includerea acestei categorii. Această categorie a fost de altfel identificată şi de autorii lucrării 15 [Venugopal, et al, 2006], conform cărora principalele posibile valori ale acestei categorii ar fi transferul datelor, replicarea sau probleme legate de planificare. Taxonomia Componentelor Grid simulate clasifică instrumentele de modelare pe baza capacităţii acestora de a simula diversele nivele specifice unei arhitecturi Grid. Această taxonomie analizează componentele sistemelor Grid şi caracteristicile acestora ce sunt include în diversele modele de simulare. Taxonomia include patru categorii de posibile componente ce pot apărea în modelul de simulare: resurse, reţea, middleware şi aplicaţiile utilizatorilor. Taxonomia Comportamentului clasifică instrumentele de modelare pe baza procesului de desfăşurare a simulării. O simulare deterministă nu este afectată de producerea unor evenimente neaşteptate, ceea ce înseamnă că rularea consecutivă a aceluiaşi scenariu de simulare va duce la producerea de rezultate identice. O simulare probabilistică consideră şi apariţia de evenimente aleatoare, rularea unui acelaşi scenariu ducând de fiecare dată la producerea de rezultate diferite. Taxonomia bazelor valorilor specifică plaja de erori pe care entităţile simulate le pot considera. O simulare discretă conţine entităţi ce conţin valori dintr-o mulţime finită de posibilităţi, pe când o simulare continuă conţine entităţi ce pot lua valori dintr-o plajă infinită de posibilităţi. Categoria validare clasifică instrumentele pe baza eforturilor de asigurare a validităţii modelului conceptual folosit şi a procesului de implemente depuse de proiectanţii respectivelor aplicaţii. Aceasta reprezintă o măsură a siguranţei oferite utilizatorilor ce rulează diverse scenarii de simulare. Taxonomia proiectării clasifică instrumentele de simulare pe baza componentelor şi a caracteristicilor de simulare puse la dispoziţia utilizatorilor. Fiecare astfel de instrument foloseşte un motor de simulare pentru implementarea şi execuţia modelului de simulare. Execuţia se referă la capabilitatea simulatorului de a folosi arhitectura sistemului pe care rulează. Conform acestei categorii instrumentele de simulare se clasifică în centralizate şi distribuite. Idea de a folosi termenul de simulare distribuită pentru modelarea paralelă a apărut prima dată în lucrarea 1986 ([Misra, 1986]). Sistemele de simulare ce folosesc o singură unitate de procesare, indiferent dacă sistemul include mai multe procesoare, se numesc simulatoare centralizate. Cea de-a doua categorie se referă la aplicaţiile de simulare ce folosesc mai multe unităţi de procesare, posibil dispersate în diverse locaţii. Conform mecanicii adoptate, sistemele de simulare se clasifică şi în funcţie de tipul de simulare bazată pe evenimente discrete. O simulare discretă bazată pe evenimente se bazează pe folosirea unor cozi pentru gestiunea evenimentelor. Un simulator de tip trace-driven execută evenimente ce sunt introduse în cozi de către medii externe. O aplicaţia de simulare de tip time-driven avansează simularea prin incrementarea ceasului logic cu valori constante fixe. Un instrument de tip event-driven avansează ceasul logic al simulării pe baza timpilor de producere ai evenimentelor. Categoria aspectelor de proiectare clasifică aplicaţiile de simulare pe baza structurilor de cozi adoptate sau a modalităţii de mapare a sarcinilor de lucru pe procesele sau firele de execuţie fizice. Astfel de aspecte sunt importante deoarece afectează într-o măsură importantă timpii de rulare şi capacitatea modelelor de simulare de a include un număr variabil nelimitat de resurse. Taxonomia mediului de programare clasifică instrumentele de programare pe baza competenţele cerute utilizatorilor pentru folosirea corectă a acestora. Un mediu de programare structural necesită proiectarea simulării într-o manieră top-down. Un mediu de programare orientat pe obiecte solicită proiectarea simulării folosind obiecte ce comunică între ele pentru realizarea diverselor activităţi. Taxonomia mediului de proiectare clasifică aplicaţiile de simulare pe baza instrumentelor furnizate utilizatorilor pentru proiectarea experimentelor de simulare. Un bun mediu de proiectare facilitează învăţarea şi utilizarea respectivului instrument. Un limbaj furnizează un set de construcţii definite utilizatorilor pentru proiectarea modelelor de simulare. Pe de altă parte, o bibliotecă furnizează un set de rutine ce pot fi folosite în corelare cu un limbaj de programare. În general un instrument de simulare bazat pe biblioteci oferă utilizatorilor mai multă flexibilitate în crearea şi controlul simulărilor. Taxonomia interfeţei cu utilizatorii clasifică instrumentele în funcţie de modul în care utilizatorii interacţionează cu acestea. O aplicaţie de simulare poate furniza sau nu o interfaţă de legătură cu utilizatorii. O interfaţă grafică este de preferat deoarece oferă o mai bună interacţiune. O interfaţă grafică pentru proiectare permite utilizatorilor crearea modelelor de simulare într-o manieră mai uşoară şi mai rapidă, dar în acelaşi timp instrumentele ce folosesc o astfel de construţie sunt în general limitate la folosirea strictă a componentelor incluse, nepermiţând extensibilitate. O interfaţă grafică pentru vizualizarea execuţiei şi/sau a rezultatelor furnizează o înţelegere a procesului de simulare. Utilizatori pot mai uşor astfel observa şi analiza experimentul de simulare. Taxonomia suportului sistemului clasifică instrumentele în funcţie de caracteristicile acestora ce permit utilizatorului construirea mai exactă şi mai corectă a scenariilor de simulare. Generarea de cod de exemplu oferă automatizarea generării codului necesar construirii de diverse scenarii de simulare. Un astfel de 16 instrument nu necesită cunoştinţe avansate de programare din parte utilizatorilor. Depanarea permite utilizatorilor identificarea anormalităţilor şi a problemelor apărute în scenariul de simulare într-o manieră mai uşoară. Statisticile se referă la instrumentele ce permit analizarea şi justificarea modelului de simulare. Validarea este şi ea necesară deoarce ajută utilizatorii să identifice posibile erori sau inconsistenţe în modelul de simulare, facilitând încrederea în folosirea unui astfel de instrument de simulare. 3.3. O analiză critică a instrumentelor de simulare pentru sisteme Grid Această secţiune prezintă o analiză a proprietăţilor celor mai reprezentative instrument pentru modelarea sistemelor Grid. Analiza, bazată pe categoriile identificate ale taxonomiei propuse în acestă lucrare, are rolul de a prezenta cele mai reprezentative aplicaţii de simulare a sistemelor Grid existente. Un obiectiv al acestui studiu îl reprezintă acela de a evalua capacitatea taxonomiei de a investiga corect în practică proprietăţile diverselor instrumente de modelare a sistemelor Grid. Instrumentele de simulare alese sunt cele mai reprezentative în domeniul modelării sistemelor Grid. Acestea au fost alese pe baza popularităţii de care se bucură acestea şi a gradului în care acestea influenţează acest domeniu. Instrumentele analizate în cadrul acestui studiu au fost: GridSim, OptorSim, SimGrid, MONARC 2, ChicagoSim, Bricks şi EDGSim. Proiectele de simulare au fost analizate pe baza proprietăţilor acestora conform cu categoriile taxonomiei prezentate. Un sumar al proprietăţilor identificate în cazul acestor instrumente de simulare, conform taxonomiei propuse, este prezentat în Tabelul 3.1. Nr. Instrumentul de simulare Motivaţia Bazele valorilor Componentele Grid simulate Componente client-server organizate centralizat, servere şi elemente de reţea, unitate de planificare reprezentând componenta principală a modelului. Centre Grid compuse compuse din Elemente de Calcul şi din Elemente de Stocare, model complex de reţea, GS-uri incluzând componente precum Resource Broker, Replica Manager şi Replica Optimiser. Activităţi de planificare, resurse de sisteme şi de reţea. Modelul de sistem Grid poate fi generat de alte aplicaţii (suportă ENV şi NWS). Sistemele modelate sunt compuse din utilizatori, agenţi şi resurse. Modelul include sisteme Grid Computaţionale şi de Date. 1 Bricks Planificarea resurselor Valori discrete 2 OptorSim Planificarea Valori resurselor; Strategii discrete de replicare de date 3 SimGrid Planificarea resurselor Valori discrete 4 GridSim Planificarea resurselor; Algoritmi simpli de replicare Valori discrete 5 EDGSIM Planificarea resurselor Valori continue 6 ChicagoSim Planificarea Valori resurselor; Strategii discrete de replicare de date 7 MONARC 2 Simulator Grid generic Sarcini de lucru, componentă Resource Broker rulând diverşi algoritmi de planificare, Catalog de Replici, model de elemente de procesare, model simplu de reţea. Componente de procesare, de reţea şi activităţi. Gestiunea replicilor este executată la nivel local. Unităţi de procesare, de stocare, ferme, elemente de reţea, componente HEP. Include suport pentru modelarea de diverse arhitecturi Grid. Valori discrete 17 Nr. Validare Execuţie Interfaţa cu utilizatorii Mediul de programare Mediul de proiectare Suportul sistemului 1 Efectuată folosind NWS Centralizată Non-vizuală Orientat obiect Limbaj Generare de statistici 2 Teste degenerate, valori fixe, validare internă Centralizată Animaţii Orientat obiect Bibliotecă - 3 Valori fixe Centralizată Structural Limbaj şi bibliotecă - 4 - Centralizată Formulare şi distribuită Orientat obiect Bibliotecă Generare de cod, generare de statistic 5 - Centralizată Drag&drop, formulare, grafuri Objectoriented Limbaj şi bibliotecă Generare de cod, depanare, generare de statistici 6 - Centralizată Non-vizuală Orientat obiect Limbaj - 7 Validarea modelului, comparaţii între sisteme reale de test şi rezultatele simulărilor, teste de teoria cozilor Centralizată Animaţii, analiza grafică a rezultatelor Orientat obiect Bibliotecă Depanare Analiză grafică a rezultatelor Tabelul 3.1 Comparaţia proiectelor de simulare a sistemelor Grid. Analiza proprietăţilor instrumentelor evaluate a relevat printre altele motivaţiile, principiile, implementarea şi aplicaţiile practice ale fiecăreia dintre aceste aplicaţii. Analiza prezentată subliniază diferenţele între aceste instrumente pe baza caracteristicilor acestora de modelare, implementare şi proiectare. Fiecare dintre aceste instrumente prezintă avantaje şi dezavantaje. Folosirea unui instrument de simulare depinde într-o mare măsură de scopul final al scenariul de simulare ce se vrea executat şi de cunoştinţele utilizatorilor. Fiecare instrument oferă suport pentru modelarea unor aspecte ce ţin de sistemele distribuite. Dintre aceste proiecte de simulare MONARC 2 se dovedeşte a fi cel mai generic, fiind capabil să modeleze un număr mai mare de posibile scenarii de simulare. Simulatorul MONARC 2 prezintă un număr de avantaje, printre acestea fiind capacitatea de a include mai mulţi parametrii, proprietăţi şi componente decât oricare altă aplicaţie de simulare a sistemelor distribuite existentă. 4. SIMULATOR PENTRU SISTEME DISTRIBUITE Tehnicile de modelare şi simulare a sistemelor distribuite de mari dimensiuni propuse prin modelul de simulare au fost validate prin proiectarea şi implementarea unui simulator, MONARC 2. Acesta furnizează un mediu de simulare realist pentru modelarea sistemelor de calcul distribuite de mare întindere, oferind flexibilitate şi dinamism în evaluarea performanţelor unei game largi de arhitecturi de procesare. Simulatorul conţine mecanismele necesare modelării traficului concurent şi evaluării de diverse strategii de replicare a datelor sau de planificare a execuţiei sarcinilor de lucru. Proiectul este dezvoltat în cadrul unei colaborări implicând 18 Universitatea Politehnică din Bucureşti, Centrul European pentru Cercetări Nucleare – CERN, din Geneva şi California Institute of Technology, din SUA. Caracteristicile aplicaţiei precum arhitectura robustă, implementarea modulară şi extensibilă, setul bogat de componente disponibile, au făcut din MONARC 2 un instrument de modular deosebit de popular în rândul utilizatorilor din diverse domenii ştiinţifice. Folosirea tehnologiilor de monitorizare în procesele de validare şi proiectare au consolidat şi mai mult succesul de care se bucură acest proiect. Punctul de pornire al dezvoltării aplicaţiei l-a constituit instrumentul de simulare MONARC ([Legrand, 2000]), dezvoltat la CERN. Proiectul original de simulare a fost primul care a propus folosirea arhitecturii bazate pe nivele pentru agregarea puterii de calcul a tuturor organizaţiilor distribuite în toate lumea implicate în experimentele LHC. MONARC 2 îmbunătăţeşte considerabil proprietăţile oferite de proiectul anterior. Motorul de simulare original a fost rescris pentru a permite rularea de scenarii implicând sisteme de mai mari dimensiuni, cuprinzând mult mai multe componente şi activităţi executate. În acelaşi timp MONARC 2 a îmbunătăţit considerabil performanţele de rulare prin integrarea unor structuri şi algoritmi de ultimă generaţie. Componentele de simulare au fost reproiectate şi altele noi au fost adăugate pentru a permite modelarea unui set mai bogat de parametri. De exemplu, posibilitatea simulării de diverşi algoritmi de replicare de date sau planificare au fost făcută posibile de către noul proiect de simulare. Modelele de simulare au fost de asemenea regândite în scopul integrării ultimelor tendinţe din domeniul sistemelor distribuite cum ar fi arhitecturile Grid prezentate într-un capitol anterior. Reprezentările rezultatelor de simulare au fost reproiectate de asemenea pentru a oferi utilizatorilor posibilitatea folosirii unor functionalităţi de nivel mai înalt. Utilizatorii au la dispoziţie în MONARC 2 o interfaţă grafică avansată ce uşurează munca de înţelegere a caracteristicilor experimentelor rulate. MONARC 2 a introdus de asemenea posibilitatea vizualizării rezultatelor obţinute fără reexecutarea scenariului de simulare, înlesnind partajarea datelor obţinute între membrii interesaţi. Rezultatele provenind din mai multe execuţii ale scenariilor de simulare, folosind diverşi parametrii de intrare, pot fi de altfel şi ele agregate. MONARC 2 a îmbunătăţit considerabil flexibilitatea şi performanţele proiectului original de simulare, a reproiectat modelul de simulare şi aspectele de implementare şi a adăgat noi capabilităţi, rezultând într-un proiect de simulare a sistemelor Grid mult mai generic. MONARC 2 este capabil să suporte modelarea de diverse arhitecturi de sisteme Grid de procesare sau de date, modelarea de diverşi algoritmi de planificare şi replicare, protocoale de reţea, tehnologii de transfer, baze de date şi a multor alte tehnologii specifice sistemelor distribuite. 4.1. Componentele şi arhitectura simulatorului Arhitectura aplicaţiei de simulare este special proiectată pentru modelarea unor sisteme distribuite de mari dimensiuni, cuprinzând interacţii complexe şi schimbul şi procesarea unor cantităţi impresionante de date. Cea mai potrivită soluţie pentru modelarea unor astfel de sisteme a reprezentat-o adoptarea unei proiectări bazate pe obiecte. O astfel de abordare permite, printre altele, modelarea sistemelor a căror stari suportă modificări dinamice în timp, maparea directă şi facilă a componentelor logice peste programul de simulare şi furnizarea mecanismelor de interacţiune necesare modelării unor sisteme distribuite de mare întindere. Simulatorul MONARC 2 foloseşte o abordare orientată spre procese pentru implementarea simulării bazate pe evenimente discrete, aspect ce facilitează simularea aplicaţiilor concurente şi a modelelor stocastice. Obiectele ce folosesc fire de execuţie, numite şi „Obiecte Active” (ce folosesc fire de execuţie pentru implementarea secvenţei de rulare şi care încorporează un contor de program, o stivă, samd.), permit o mapare naturală a comportamentului specific procesării distribuite de date în simulator. Modelarea procesării concurente se realizează pe baza mecanismului de „întreruperi” ce este implementat la nivelul motorului de simulare. Simulatorul MONARC 2 este implementat folosind tehnologia Java, beneficind de suportul adecvat oferit de aceasta pentru dezvoltarea unor simulărilor dinamice şi distribuite orientate spre procese. Java include suport nativ pentru proiectarea multi-thread a procesării concurente, aspect ce la nivelul simulării a fost folosit în combinaţie cu implementarea unui mecanism de planificare dedicat. Motorul de simulare beneficiază astfel de proprietăţi ce îi permit instalarea uşuoară şi rularea unor scenarii complexe chiar şi pe sisteme multi-procesor. O contribuţie importantă la dezvoltarea proiectului a fost adusă de numeroşii paşi de evaluare şi de optimizare executaţi ce au dus la creşterea performanţei deosebite a motorului de simulare. 19 Simulatorul include componentele prezentate în Figura 4.1 ce permit modelarea corectă a unei game variate de sisteme distribuite. Un prim set de componente a fost creat pentru descrierea resurselor fizice ale sistemelor distribuite simulate. Cea mai mare componentă este reprezentată de centrul regional, ce înglobează o fermă de noduri de procesare (unităţi CPU), servere de baze de date cu suport pe diverse medii de stocare, precum şi una sau mai multe reţele (LAN-uri sau WAN-uri). Un alt set de componente este folosit pentru descriea comportamentului aplicaţiilor şi a interacţiunii acestora cu utilizatorii. Aceste componente sunt reprezentate de „Utilizatori” şi „Activităţi”, obiecte ce sunt folosite pentru generarea de activităţi de procesare pe baza diverselor scenarii. Sarcina de lucru reprezintă o altă componentă de bază ce este simulată cu ajutorul unui obiect activ şi planificată spre executţie pe o unitate de procesare de către un obiect de tip „Planificator”. Figura 4.1. Componentele modelului de simulare. Unul dintre avantajele simulatorului MONARC 2 este reprezentat de uşurinţa în extindere şi acest lucru este facilitat de abordarea unei structuri stratificate. Nivelele arhitecturii şi modul în care acestea sunt proiectate pentru a interacţiona, atât între ele cât şi cu un instrument de monitorizare, sunt prezentate în Figura 4.2. Figura 4.2. Arhitectura aplicaţiei de simulare MONARC 2. La primul nivel al arhitecturii regăsim „motorul de simulare” ce furnizează proprietăţile de simulare bazată pe evenimente. Nivelul înglobează componentele necesare gestionării evenimentelor de simulare, planificării execuţiei task-urilor de simulare, gestionăroo ceasului logic de simulare. Cu alte cuvinte, nivelul furnizează toate elementele ce constituie „motorul” din spatele experimentelor de simulare. Următorul nivel conţine toate componentele de bază ale oricărui sistem distribuit (unităţi de procesare, sarcini de lucru, baze de date, reţele, planificatpare, samd.). În vârful acestui nivel stau componentele create special pentru anumite modele de sisteme distribuite. Acest nivel este necesar pentru experimente ce încorporează componente specializate, precum modelarea activităţilor LHC. Toate aceste componente de simulare pot fi cu uşurinţă extinse 20 de către utilizator în funcţie de cerinţele diverselor experimente de simulare. Utilizatorii pot de asemenea să extindă arhitectura prin introducerea unor noi componente. Un alt nivel important este reprezentat de interacţiunea cu un instrument de monitorizare. Aplicaţiile de monitorizare sunt folosite pentru generarea datelor de intrare ale diverse experimente sau pentru validarea modelelor de simulare, iar rezultatele obţinute în simulare pot fi folosite în procesul decizional de control al aplicaţiilor de monitorizare. 4.2. Motorul de simulare Nivelul de jos al arhitecturii aplicaţiei de simulare este reprezentat de motorul de simulare. Acesta este responsabil cu gestionarea firelor de execuţie, a evenimentelor de simulare, a cozilor de evenimente şi cu gestionarea mecanismului prin care task-urile interacţionează şi implementeată algoritmul de simulare bazată pe evenimente discrete (DES). Motorul de simulare furnizează un mecanism dedicat bazat pe semafoare pentru gestiunea obiectelor active (sau task-uri). Acest mecanism foloseşte suportul nativ, superior în termeni de performanţă, al tehnologiei Java pentru procesarea concurentă. Tehnologia Java furnizează câteva avantaje: suport nativ pentru multithreading, paradigma programării orientate pe obiecte şi portabilitate. De altfel portabilitatea permite folosirea aplicaţiei de simulare pe o mare varietate de platforme (sisteme mono sau multi-procesor rulând Linux, Solaris sau Windows). Task-urile de simulare pot gestiona execuţia activităţilor de simulare sau pot reprezenta componente ale sistemelor simulate. Un task de simulare reprezintă o entitate ale cărei proprietăţi se modifică dinamic în timp, comportamentul acestuia fiind influenţat direct de evenimentele de simulare. În cadrul simulatorului task-urile interacţionează prin schimburi de evenimente. Execuţia acestora este gestionată de către un planificator centralizat dedicat. Acest planificatorul are rolul de a gestiona atât execuţia task-urilor, cât şi a evenimentelor de simulare produse. Pentru a elimina overhead-ul cauzat de crearea sau distrugerea firelor de execuţie motorul de simulare foloseşte un pool de fire de execuţie. Atunci când un nou task este creat planificatorul preia din pool un fir de execuţie ce este folosit pentru rularea execuţiei respectivului obiect activ. De asemenea, deoarece numărul de sarcini de lucru simulate în cadrul unui scenariu poate fi relativ mare, am implementat şi o structură dedicată ce permite reciclarea obiectelor active în scopul îmbunătăţirii eficienţei simulării (un pool de obiecte active). Resursele partajate, precum unităţile de procesare sau legăturile de reţea, sunt modelate ca obiecte normale, însă accesul la metodele acestora este sincronizat. Figura 4.3. Gestiunea evenimentelor în motorul de simulare. 21 Pentru a permite comunicarea şi sincronizarea între obiectele active motorul de simulare foloseşte evenimente de simulare. Task-urile de simulare şi evenimentele sunt coordonate de către planificatorul de simulare. Pentru coordonare planificatorul foloseşte câteva structuri de date precum o coadă de task-uri curente, un pool de fire de execuţie, o coadă de evenimente viitoare şi o alta conţinând evenimentele întârziate. Coada de evenimente întârziate este folosită pentru gestiunea evenimentelor produse în trecut şi care nu au fost încă folosite, datorită task-urilor destinatare ce nu le-au putut prelua de exemplu. Coada de evenimente viitoare este reumplută de către task-urile ce produc evenimente. Din această coadă planificatorul preia evenimente în funcţie de ştampilele de timp corespunzătoare acestora. La fiecare pas al simulării planificatorul extrage evenimente din coada de evenimente având cea mai mică valoare a ştampilei de timp şi le livrează task-urilor destinatare corespunzătoare. Un alt rol al planificatorului este de a gestiona ceasul logic al simulării ce întotdeauna avansează la valoarea ştampilei de timp a evenimentelor curent procesate. lgoritmul executat de către planificator este reprezentat schematic în Figura 4.3. Acest algoritm este deosebit de optimizat, minimizând la maxim timpul de execuţie al planificatorului. De altfel motorul de simulare include diverse structuri de cozi de evenimente, aspect ce conduce la minimizarea timpului necesar pentru efectuarea operaţiilor de gestiune a evenimentelor. Mecanismul de întreruperi implementat în MONARC 2 este util pentru descrierea mecanismelor de partajare a resurselor precum unităţi de procesare, memorii şi operaţii de intrare/ieşire între task-urile concurente. Mecanismul de întreruperi este implementat folosind de asemenea evenimente de simulare. Figura 4.4 prezintă modalitatea de funcţionare a acestui mecanism. Figura 4.4. Mecanismul de întreruperi. Atunci când o sarcină de lucru (Task1 în figură) porneşte se realizează o primă evaluare a timpului necesar procesării acesteia (prima valoare TF1) şi obiectul activ răspunzător cu execuţia acesteia intră într-o stare de aşteptare până la momentul respectiv sau până la apariţia unei întreruperi. Dacă pe aceeaşi resursă este pornită execuţia unei noi sarcini de lucru (Task2) aceasta va cauza generarea unei întreruperi. Cum ambele sarcini partajează aceeaşi resursă de procesare, timpii de terminare a execuţiei ambelor sarcini sunt reevaluaţi, presupunând fie că partajează egal resursa, fie pe baza unei politici de priorităţi de execuţie (noua valoare TF1 şi primul TF2). Acelaşi algoritm se aplică la terminarea execuţiei primei sarcini de lucru (Task1), caz în care se generează o nouă întrerupere ce va cauza reevaluarea timpului necesar execuţiei celei de-a doua sarcini de lucru. Motorul de simulare funizează de asemenea câteva distribuţii de probabilitate ce pot fi folosite pentru modelarea comportamentului stocastic al sistemului simulat. Utilizatorul are de asemenea posibilitatea folosirii de noi distribuţii de probabilitate conform necesităţilor scenariilor de simulare. Componentele simulate pot folosi diverse astfel de distribuţii în diferite situaţii: utilizatorul poate de exemplu specifica folosirea unei distribuţii pentru modelarea pierderii de pachete şi o altă distribuţie pentru oscilaţiile provocate în timpul de procesare de diverse procese rulând în fundal. O optimizare importantă a motorului de simulare este reprezentată de includerea de diverse structuri pentru implementarea cozilor de evenimente. Minimizarea timpului de gestiune a evenimentelor de către planificator este crucială în obţinerea unor performanţe adecvate modelării sistemelor de dimensiuni mari. Pentru aceasta MONARC 2 adoptă folosirea mai multor structuri de ultimă generaţie pentru cozile de evenimente. Utilizatorul poate alege între folosirea uneia dintre cele trei structuri predefinite, un vector sortat şi două structuri de tip calendar queue (SNOOPy şi FELT), structuri ce sunt printre cele mai optime în termeni de performanţă existente la ora actuală. De remarcat ar fi faptul că nici un alt instrument de simulare a sistemelor distribuite nu foloseşte 22 astfel de structuri avansate, cele mai avansate dintre acestea folosind cel mai mult structuri pe bază de arbori (de exemplu SimGrid) pentru implementarea cozilor de evenimente. 4.3. Componente de simulare Componentele furnizate de MONARC 2 sunt folosite pentru modelarea atât a resurselor sisteme distribuite cât şi a comportamentelor aplicaţiilor ce rulează pe astfel de sisteme. Pentru a furniza un cadrul generic, modelul de simulare conţine componente ce modelează comportamentul diverselor resurse de procesare, de date, de reţea şi pe cele ale diverselor activităţi corespunzătoare aplicaţiilor distribuite. Arhitectura aplicaţiei de simulare este bazată pe modelul Centrului Regional. Centrul regional reprezintă un obiect complex compozit ce conţine servere de date şi noduri de procesare, toate conectate prin intermediul unei reţele locale. Un centru regional poate fi conectat cu alte centre prin intermediul ruterelor şi al reţelelor de mare întindere. De asemenea un centru regional poate instanţia dinamic un număr de obiecte ce modelează utilizatori şi activităţile acestora. Într-un centru regional maparea sarcinilor de lucru pe nodurile de procesare se realizează conform unor scenarii de planificare. Activitatea reprezintă utilizatorii sistemului modelat. Aceştia pot genera sarcini de lucru de procesare de date pe baza unor scenarii. Fiecare centru regional poate avea una sau mai multe astfel de activităţi ce submit sarcini de lucru. Entitatea farm gestionează nodurile de procesare ale centrului regional. Rolul acesteia este de a aştepta submiterea de sarcini de lucru generate de activităţi si de a apela planificatorul adecvat pentru execuţia acestora. Obiectul CPUUnit descrie comportamentul unei staţii de lucru aparţinând sistemului modelat. Acesta este caracterizat printr-o cantitate de putere de procesare şi o cantitate de memorie. Modelarea ocupării memoriei poate include un mecanism de paginare, aspect ce asigură modelarea corectă a comportamentului specific diverselor sisteme de operare. Cantitatea de putere de procesare este alocată sarcinilor de procesare în funcţie de un mecanism de priorităţi. Utilizatorul poate astfel specifica sarnici având priorităţi mai ridicate decât altele pentru execuţie. O extensie a unităţii de procesare este reprezentată de CPUCluster. Acest obiect modelează un cluster de unităţi de procesare. În afară de puterea de procesare şi cantitatea de memorie disponibilă, el este caracterizat şi printr-o cantitate de spaţiu de stocare. Această clasă include mecanismele modelării inclusiv a defectării diverselor unităţi de procesare incluse. CPUCluster este adecvat pentru modelarea mediilor Grid de mare complexitate, în timp ce CPUUnit este mai adecvat modelării sistemelor distribuite constând într-un număr redus de noduri. 4.3.1. Modelul sarcinilor de lucru Modelul sarcinilor de lucru are rolul de a descrie diverse activităţi sau aplicaţii executate în sistemele distribuite simulate. La baza modelului stă clasa Job ce descrie comportamentul generic al unui task distribuit. Conform modelului, o sarcină de simulare poate fi procesată de către o unitate de procesare sau chiar de către însuşi centrul regional. Cea de-a doua opţiune este folosită pentru modelarea unor acţiuni particulare ce fie nu necesită executarea pe unităţi de procesare, fie sunt considerate a fi instanee şi nu ar trebui să afecteze comportamentul altor sarcini rulând în acelaşi sistem. Exemple de astfel de acţiuni sunt crearea dinamică şi instanee a unei baze de date, creare unui fişier sau instanţierea de trafic de fundal. În cazul sarcinilor de lucru executate pe unităţi de procesare, planificatorul are rolul de gestiona a mapării corecte între task şi resursă. Planificatorul foloseşte pentru aceasta două structuri: un pool de task-uri disponibile şi o colecţie de sarcini aflate în aşteptarea planificării. Planificarea efectivă presupune extragerea unei sarcini de lucru din pool şi executarea unui algoritm de planificare adecvat. Dacă decizia planificatorului este de execuţie locală a sarcinii atunci acesta va extrage şi un task şi îi va asigna acestuia sarcina pentru execuţie. Task-ul va fi mai departe responsabil cu execuţia respectivei sarcini, planificatorul doar monitorizând starea de execuţie. Modelul sarcinii de lucru conţine un număr de parametrii ce sunt folosiţi pentru estimarea timpului necesar execuţiei acesteia. Timpul necesar execuţiei unei operaţii de procesare este estimat pe baza unui număr de atribute precum puterea de procesare cerută sau memoria necesară. În timpul execuţiei mecanismul de întreruperi este folosit pentru asigurarea modelării dependeţei de procesare între task-urile concurente. 23 MONARC 2 include un număr de activităţi specifice sarcinilor de lucru predefinite. O astfel de activitate presupune modelarea comportamentului de procesare de date. Aceasta modelează activitatea de procesare de date pe baza unui număr de parametrii de intrare precum puterea de procesare necesară sau natura operaţiei de procesare. O altă activitate este cea de transfer de mesaje. Aceasta foloseşte modelul de reţea al aplicaţiei de simulare pentru simularea transmiterii de mesaje prin componente de reţea, folosind diverse protocoale de comunicaţii. Activitatea de transfer poate fi folosită pentru modelarea atât a recepţiei mesajelor, cât şi a transmiterii de mesaje pe reţea. Încă o activitate modelează comunicarea cu o bază de date. Această activitate extinde comportamentul activităţii de transfer de mesaje pentru gestiunea transferului mesajelor între unitatea de procesare şi o bază de date. Această activitate are rolul de a gestiuna limbajul de dialog cu baza de date, conţinând metode pentru trimiterea de comenzi către baza de date şi a recepţiei răspunsurilor corespunzătoare. Toate operaţiile furnizate de aceste sarcini de lucru sunt extensibile. Utilizatorul poate defini noi activităţi pornind de la cele deja existente sau le poate combina în activităţi superioare compozite. Astfel de aspecte permit modelarea unor activităţi precum transferul de date, urmate de procesarea acestora şi în final transferul înapoi al rezultatelor obţinute. Modelul de sarcină de lucru oferă posibilitatea modelării paradigmei de programare fork-join prin decompoziţia sarcinilor. Sarcina de lucru simulată poate instanţia dinamic noi sarcini de lucru. Astfel, utilizatorul poate specifica o situaţia în care o sarcină transferă o cantitate de date şi apoi crează un număr de task-uri paralele, fiecare procesând un subset al datelor obţinute, iar în final rezultatele procesării sunt trimite înapoi de un alt task. Sarcina de lucru poate specifica ce alte sarcini trebuie instanţiate şi executate după terminarea execuţiei sale. Dependinţele sarcinilor de lucru pot fi specificate sub formă de arbori sau sub formă de grafuri aciclice (structuri DAG). Formele de dependinţe sunt reprezentate în Figura 4.5. Figura 4.5. Dependinţele sarcinilor de lucru. În ceea ce priveşte performanţa de execuţie, modelul sarcinilor de lucru presupune că în oricare moment procesarea sarcinilor rulând concurent pe o aceeaşi unitate de procesare sunt executate de un unic fir fizic de execuţie. Această metodă de optimizare, unică aplicaţiei MONARC 2, are marele avantaj de a minimiza numărul comutărilor de context, permiţând execuţia unor scenarii de mare complexitate. Această optimizare permite atingerea unor performanţe superioare altor aplicaţii de simulare. Figura 4.6. Performanţele superioare obţinute prin optimizările aplicate modelului de sarcini de lucru. 24 Testarea performanţelor modelului de sarcini de lucru a fost efectuată folosind câteva experimente adecvate acestui scop. Rezultatele obţinute, prezentate în Figura 4.6, demonstrează superioaritatea performanţelor modelului în termeni de întreruperi generate, timp de execuţie sau memorie folosită. 4.3.2. Modelul de date MONARC 2 foloseşte un model de date specializat pentru simularea unei game variate de tehnologii de date, de la baze de date până la sisteme de fişiere. În acelaşi timp modelul de date permite simularea unor sisteme de baze de date de foarte mari dimensiuni. Modelul furnizează diverse mecanisme pentru accesul transparent la datele simulate, un sistem de gestiune automată a datelor stocate şi o modalitate eficientă de gestiune a cantităţilor mari de date. Modelul de date include două elemente principale de stocare: serverul de baze de date şi centrul de stocare pe benzi magnetice. Serverele de baze de date folosesc în acest model stocarea internă pe disc a datelor, în timp ce centrele de stocare pe benzi magnetice reprezintă o componentă ce modelează stocarea de lungă durată pe benzi. Utilizatorul are la dispoziţie posibilitatea de a modela interacţiunea cu astdel de entităţi. Modelul presupune şi un mecanism de backup sub forma unui algoritm ce, în mod dinamic, poate fi folosit pentru mutarea datelor de pe serverele de baze de date pe alte servere de stocare pe benzi magnetice pentru păstrarea îndelungată şi pentru crearea de spaţiu pe disc. Pe lângă aceste două elemente modelul include de asemenea şi un catalog de date folosit în diverse scopuri (replicare, optimizări de transfer de date, samd.). Toate componentele cuprinse în model comunică între ele folosind modelul de reţea al aplicaţiei MONARC 2. Figura 4.7 prezintă componentele modelului de date. Figura 4.7 Componentele modelului de date. Conform modelului datele sunt organizate în baze de date, formate din mai multe containere. Containerul pot fi folosit pentru simularea unei game variate de tehnologii de organizare a datelor. De exemplu, containerele pot fi vizualitate ca fişiere iar bazele de date ar putea reprezenta o structură de directoare; sau containerele pot reprezenta i-nodurile unui sistem de fişiere Unix iar bazele de date pot modela numele de fişiere logice. Plaja de scenarii ce pot fi simulate include până la modelarea unor tehnologii reale complexe de sisteme de baze de date, pentru care containerele ar reprezenta segmentele bazelor de date. Modelul de date include un mecanism adecvat pentru accesarea datelor bazat pe comunicaţie de tip client-server. Timpul de răspuns al servelor este modelat conform unor funcţii bazate atât pe diverşi parametrii ai datelor (paginaţie, dimensiunea obiectelor, accesul la containere, samd) cât şi pe caracteristici hardware (numărul de cereri concurente şi limitări de lungime de bandă). Modelul include şi diferite politici pentru gestiunea stocării. Serverele de date se înregistrează în catalogul de date ce poate fi folosit în diverse scopuri de către programul modelat de utilizator. MONARC 2 include de asemenea un model de sarcină de lucru ce implementează diversele operaţii de acces la baze de date, JobDatabase. Acestă activitatea extinde funcţionalitatea sarcinii de transfer de date prin adăugarea de noi metode pentru comunicaţia cu elementele de scocare. Operaţiile de acces la baza de date sunt realizate folosind un protocol de tip client-server. Aceste operaţii pot fi de următoarele tipuri: scriere (write), citire (read) şi o altă operaţie ce citeşte containere şi simultan realizează şi ştergerea acestora de pe spaţiul de stocare (get). 25 Modelul de date descrie corect diverse arhitecturi de sisteme DBMS şi modalităţi de proiectare a bazelor de date. Acesta suportă modelarea arhitecturilor de baze de date de tip ierarhic, de reţea, relaţional, relaţional-obiectual şi obiectual. În cazul modelului de date ierarhic datele sunt organizate sub formă de arbori. MONARC 2 oferă suport pentru simularea acestui model prin folosirea construcţiile oferite de bazele de date şi containere. Fiecare bază de date conţine o listă de containere şi fiecare container pot referi alte baze de date, ceea ce conferă suport pentru modelarea suportului de organizare al datelor ierarhic. De exemplu, putem simula o bază de date care stochează informaţii despre angajaţi precum nume, numărul de angajare, departament sau salariu. Putem de asemenea include în simulare o altă bază de date ce stochează informaţii legate de copii angajaţilor, precum nume şi data naşterii. În acest caz un câmp container al bazei angajaţilor ar putea adresa cea de-a doua bază de date, formând o ierarhie arbore specifică modelului ierarhic. Relaţia părinte-copil one-to-many poate fi modelată prin folosirea mai multor containere, fiecare indicând către alte baze de date copil. Modelul de simulare furnizează de asemenea o structură de tip arbore R&B adecvată acestui model de organizare a datelor. Modelul reţea reprezintă un model de baze de date conceput ca o modalitate flexibilă de reprezentare a obiectelor şi a relaţiilor existente între acestea. Acest model permite fiecărei înregistrări să conţină mai multe înregistrări de tip părinte sau copil, structura finală formând o latice. Modelul de date inclus în MONARC 2 suportă modelul reţea prin elementele de proiectare ale componentei container. În acest caz o mulţime poate fi modelată ca o bază de date. Un container al bazei de date poate adresa o înregistrare părinte ce poate fi o altă bază de date. Tipul de înregistrare membru este de asemenea modelat folosind containerul, legat de baza de date ce defineşte rolul de membru. Un container al modelului de date poate aparţine de fapt mai multor bate de date şi aceasta asigură rolul multiplu al unei înregistrări, conform cu modelul reţea de organizare. Modelul relaţional al bazelor de date permite definirea de structuri de date, a operaţiilor de stocare şi regăsire a informaţiei şi a constrângerilor de integritate. În cadrul acestui model datele şi relaţiile între acestea sunt organizate sub formă de tabele. Modelul relaţional este bine mapat peste modelul de baze de date adoptat de MONARC 2. Conform modelului adoptat o bază de date conţine un număr de containere, echivalente în simulare ale unor înregistrări relaţionale. Containerele sunt grupate în baze de date ce sunt referite prin nume. Gruparea containerelor în astfel de mulţimi modelează idea de coloane ale unei tabele. Fiecare astfel de mulţime este definită printr-un nume cheie, corespunzător modului în care o coloană aparţinând unei tabele relaţionale este definită printr-un nume. În interiorul fiecărei baze de date containerele sunt păstrate într-o structură vector ce modelează modul în care înregistrările sunt ţinute în fiecare rând al tabelei. Această organizare a datelor permite de asemenea modelarea proprietăţilor relaţiilor matematice corespunzătoare modelului relaţional. Cheie din modelul relaţional sunt simulate prin folosirea unor containere ce adresează înregistrări din alte baze de date. Limbajul de manipulare a datelor din modelul de date este la rândul său asemănător limbajului SQL, limbajul standard al bazelor de date relaţionale. Un sistem de gestiune a bazelor de date obiectual-relaţionale (ORDBMS) adaugă sistemelor relaţionale noi capabilităţi de stocare a obiectelor. Modelul de date adoptat de MONARC 2 permite simularea corectă a acestor tipuri de sisteme deoarece containerele sunt definite pentru a stoca informaţii sub formă de obiecte. Această caracteristică asigură modelarea corectă a modelelor de baze de date relaţional-obiectuale. O bază de date orientată obiect presupune stocarea informaţiei sub formă de obiecte. Atunci când proprietăţile bazelor de date sunt combinate cu cele ale limbajelor de programare obiectuală rezultatul este reprezentat de obţinerea unui sistem de gestiune a bazelor de date obiectual (ODBMS). Modelul de date adoptat în MONARC 2 este potrivit simulării unor astfel de sisteme. Containerele simulate permit maparea unu-la-unu a obiectelor Java pe obiectele ce modelează componentele bazelor de date. Modelul de baze de date adoptat în MONARC 2 permite descrierea diverselor modele de baze de date. Pentru a exemplifica, în cazul experimentelor de simulare ce au modelat activităţile de fizică LHC, modelul a fost cu succes folosit pentru simularea corectă a modelului Objectivity/DB adoptat la CERN. O bază de date ce foloseşte acest model furnizează o vedere logică unică asupra întregului ansamblu de baze de date constituente prin folosirea unui model de calcul distribuit ce are rolul de a uni o bibliotecă software de aplicaţia clientului. Modelul de date adoptat în MONARC 2 simulează corect această arhitectură, furnizând o modalitate eficientă de a descrie sisteme de baze de date de foarte mare întindere, conţinând un număr mare de obiecte stocate. Modelul emulează factori de grupare pentru diverse modele de acces. Bazele de date simulate pot fi grupate în federaţii, fiecare posibil situată în alte centre regionale. Procedura de blocare a containerelor, caracteristică modelului 26 Objectivity, este adoptată şi de modelul de simulare. Un container înglobează un mecanism de blocare, permiţând simularea de diverse proceduri de consistenţă a acceselor concurente la date. MONARC 2 permite modelarea unei game largi de sisteme de gestiune a datelor, de la procesarea datelor conform modelelor adoptate de experimentele LHC până la sisteme de fişiere şi verificarea unor tehnologii de replicare de date. 4.3.3. Modelul de reţea MONARC 2 permite modelarea traficului de date folosind o mare varietate de protocoale de reţea şi componente specifice atât reţelelor LAN, cât şi celor de tip WAN. Modelarea traficului acoperă mai multe aspecte. În cazul unor cantităţi mari de date şi fără o cunoaştere precisă a infrastructurii de reţea, cum este cazul sistemelor Grid, simularea traficului la nivel de pachete ar fi practic imposibilă (aspect demonstrat în [Riley, et al, 2002]). MONARC 2 oferă posibilitatea ascunderii traficului de pachete în cazul unor experimente de mare anvergură prin folosirea de funcţii pentru evaluarea lungimii de bandă ocupate. Simulatorul include de altfel un set bogat de astfel de funcţii şi oferă şi utilizatorului posibilitatea definirii propriilor sale proceduri. În acelaşi timp, în cazul unor reţele de mai mică întindere, MONARC 2 este capabil să modeleze traficul de date la nivel de pachete. Acest aspect este deosebit de util în testarea unor protocoale de reţea. Aceste abordări permit folosirea aplicaţiei de simulare pentru modelarea unui număr considerabil de scenarii, de la testarea sistemelor de mare întindere până la validarea unor protocoale. Figura 4.8. Mecanismul de întreruperi folosit de modelul de reţea. Modelul de reţea furnizează un mecanism adecvat pentru descrierea transferurilor concurente. Pentru simularea traficului de date modelul foloseşte o schemă bazată pe întreruperi, similar celei folosite de către motorul de simulare. Cu fiecare întrerupere sistemul reevaluează timpul de terminare al transferului ca funcţie de lungimea de bandă şi de protocolul folosit. Lungimea de bandă folosită de un transfer depinde de existenţa altor transferuri concurente. În cazul concurenţei lungimea de bandă ocupată efectiv de un transfer este evaluată prin folosirea uneia dintre cele două proceduri furnizate de MONARC 2. Utilizatorul are de asemenea posibilitatea definirii propriei proceduri de calcul a lungimii de bandă. Pentru descrierea variaţiilor de viteză a transferurilor la nivel de eveniment (modelarea mecanismelor de fereastră de exemplu) modelul presupune folosirea de diverse distribuţii de probabilitate. Acestea pot fi folosite la generarea artificială de întreruperi, mecanism util pentru implementarea unor reevaluări continue a vitezelor de transfer adecvate pentru simulări la nivel de protocol sau pentru generarea de trafic de fundal. Componentele ce fac parte din modelul de reţea sunt prezentate în Figura 4.9. Aceste componente sunt proiectate pentru a modela o mare varietate de posibile arhitecturi de reţele şi de protocoale, dar sunt în mod special adecvate modelării comportării protocoalelor corespunzătoare stivei TCP/IP. 27 Figura 4.9. The components of the network model. Arhitectura corespunzătoare modelului de reţea se bazează pe câteva nivele. Primul nivel este reprezentat de componentele ce modelează diverse arhitecturi de reţele fizice: interfeţe de reţea, reţele de tip WAN, reţele de tip LAN şi rutere. Cel de-al doilea nivel modelează comportamentul datelor schimbate prin reţea. Modelul presupune încapsularea datelor sub formă de mesaje, similar împachetării PDU-urilor. Transferul unui mesaj este modelat prin folosirea evenimentelor de simulare: task-ul sursă produce un eveniment conţinând datele transferate, eveniment ce este livrat de planificator task-ului destinaţie al mesajului de la celălalt capăt al transmisiei. Cel de-al treilea nivel cuprinde componente specifice protocoalelor de transfer. Aceste componente implementează procedurile folosite pentru controlul transferurilor de date prin reţeaua simulată. Clasa Protocol de bază are rolul la acest nivel de a implementa comportamentul stivei de reţea. Modelul include două extensii ale acestei clase ce modelează comportarea specifică protocoalelor TCP, respectiv UDP. Toate aceste componente sunt uşor de extins chiar de către utilizator. Cel de-al patrulea nivel este reprezentat de aplicaţiile ce folosesc mecanismul de comunicaţie prin schimb de mesaje. La acest nivel modelul de reţea consideră existenţa unor sarcini de lucru ce modelează activităţi de trimitere/primire de mesaje. Pentru a folosi suportul de reţea sarcinile de lucru comunică direct cu componenta de intrare a modelului de reţea, şi anume interfaţele de reţea ale unităţilor de procesare. În acest caz mesajul este schimbat numai între două astfel de interfeţele de reţea. Majoritatea resurselor simulate (servere, unităţi de procesare, samd) includ o astfel de componentă în modelul de simulare. O interfaţă de reţea este unic identificată pe baza unei scheme de adresare similară formatului folosit pentru adresele Ipv4 (pe 32 de biţi). Adresele de reţea sunt folosite de către sarcinile de lucru pentru specificarea destinaţiei de livrare a mesajelor. Pentru a furniza suport pentru multiplexare un mesaj poate de asemenea să specifice şi un port destinaţie. O sarcină de lucru ce ascultă pentru primirea de mesaje poate sau nu să asculte pe un astfel de port. Procedura aceasta de transfer este similară celor din reţele reale. Figura 4.10. Performanţele superioare obţinute prin optimizările aplicate modelului de reţea. Ca o optimizare, modelul de reţea consideră că trimiterea tuturor mesajelor generate de către o aceeaşi unitate de procesare este gestionată de către un singur fir fizic de execuţie. Această optimizare minimizează numărul firelor de execuţie necesare conducerii unor experimente de mare amploare ce implică multe aplicaţii rulând pe aceeaşi staţie, fiecare accesând reţeaua, la unul singur. Aceeaşi optimizare se aplică şi activităţilor de recepţie de mesaje. Aceste două optimizări au condus la opţinerea unor performanţe superioare altor aplicaţii de simulare. Pentru a 28 ilustra mai bine câştigul de performanţă am executat un număr de experimente de simulare. Rezultate obţinute, prezentate în Figura 4.10, demonstrează superioaritatea performanţelor modelului în termeni de întreruperi generate, timp de execuţie sau memorie folosită. 4.4. Teste de evaluare Evaluarea simulatorului MONARC 2 a urmărit două direcţii principale: validarea corectitudinii modelului şi implementării aplicaţiei de simulare şi testarea performanţelor acesteia. Pentru aceasta au fost construite o serie de experimente de simulare ale căror rezultate au fost folosite constant în procesul de proiectare şi implementare a aplicaţiei. 4.4.1. Validarea folosind teoria cozilor Formalismul furnizat de modelele matematice caracteristice teoriei cozilor reprezintă un instrument important în definirea şi validarea modelelor de simulare stocastice. Acesta furnizează un model analitic util pentru testarea gradului de hazard introdus de diverse distribuţii matematice. Modelele teoriei cozilor descriu comportarea acelor sisteme în care clienţii intră, aşteaptă o perioadă de timp şi apoi pleacă. Experimentele elaborate pentru testarea validităţii aplicaţiei de simulare pe baza acestui formalism au presupus existenţa unei singure unităţi computaţionale pe care rulau un număr de sarcini de procesare. Pe baza distribuţiilor folosite în construcţia acestor experimente au fost simulate următoarele modele de cozi: • Modelul M/D/1: În acest experiment timpii de pornire ai sarcinilor de procesare sunt distribuiţi conform unei distribuţii Poisson. Sarcinile de lucru sunt procesate într-un interval de timp având o valoare constantă. • Modelul M/M/1: În acest experiment timpii de pornire ai sarcinilor de lucru sunt din nou distribuiţi exponenţial. În plus timpii de servire sunt de această dată distribuiţi conform unei distribuţii Poisson. Pentru a valida modelul de simulare adoptat în MONARC 2 am comparat valorile teoretice şi cele experimentale obţinute pentru numărul mediu de clienţi (sau sarcini procesate în aceste experimente) şi timpul mediu de staţionare. În cadrul experimentelor am testat două combinaţii de valori (λ, μ), atât în cazul experimentelor M/M/1 (Tabelul 4.1), cât şi în cel al experimentelor M/D/1 (Tabelul 4.2). E(L), rezultate teoretice E(L), rezultate experimentale (10.000 de activităţi) E(L), rezultate experimentale (20.000 de activităţi) E(S), rezultate teoretice E(S), rezultate experimentale (10.000 de activităţi) E(S), rezultate experimentale (20.000 de activităţi) 0,5 1 0,75 0,7402 0,7538 1,5 1,4944 1,5023 1,5 2 1,875 1,8402 1,8978 1,25 1,231 1,2604 λ Μ Tabelul 4.1. Rezultatele teoretice vs. cele obţinute în simulare pentru modelul de cozi M/D/1. E(L), rezultate teoretice E(L), rezultate experimentale (10.000 de activităţi) E(L), rezultate experimentale (20.000 de activităţi) E(S), rezultate teoretice E(S), rezultate experimentale (10.000 de activităţi) E(S), rezultate experimentale (20.000 de activităţi) 0,5 1 1,0 1,0165 1,0025 2,0 2,0330 2,0050 1,5 2 3,0 3,1012 3,0726 2,0 2,0686 2,0456 λ Μ Tabelul 4.2 Rezultatele teoretice vs. cele obţinute în simulare pentru modelul de cozi M/M/1. 29 După cum se observă, valorile obţinute pentru numărul mediu de clienţo şo pentru timpul mediu de staţionare sunt apropiate de valorile teoretice calculate. Rezultatele acestor experimente demonstrează validitatea modelului de simulare prin comparaţie cu un model analitic. Similaritatea între rezultatele obţinute creşte proporţional cu numărul de sarcini de lucru. Prin urmare putem concluziona că modelul este adecvat îndeosebi modelării sistemelor de mari dimensiuni formate din multe resurse şi activităţi. 4.4.2. Validarea folosind sisteme de test Validarea aplicaţiei de simulare a fost efectuată şi prin folosirea unor sisteme de test. În cazul acestor experimente s-a urmărit îndeosebi studierea validităţii, eficienţei şi a comportamentului modelelor de simulare folosite prin construirea unor sisteme de test ale căror caracteristici puteau fi uşor modelate. Aceste experimente au urmărit validarea aplicaţiei de simulare prin execuţia unor scenarii ce modelează caracteristicile sistemelor de test reale şi prin compararea rezultatelor obţinute cu valorile monitorizate ale comportării sistemelor reale. Un prim astfel de experiment a urmărit testarea modelului de date folosit în MONARC 2, în special a serverelor de baze de date şi a interacţiunilor acestora cu potenţiali clienţi. Rezultatele obţinute în acest experiment de simulare (Figura 4.11) reproduc corect măsurările reale efectuate asupra sistemului de test folosit. Aceste rezultate s-au dovedit utile şi pentru calibrarea parametrilor aplicaţiei de simulare în scopul furnizării unui model cât mai corect. Un rezultat important obţinut în acest experiment îl reprezintă validarea modelului sarcinilor de lucru. În experiment simulatorul MONARC 2 s-a dovedit capabil de a reproduce corect caracteristice reale ale sarcinilor de lucru folosite pentru accesarea bazei de date în sistemele de test, aspect ce dovedeşte capacitatea aplicaţiei de a modela accesul concurent la unităţi de procesare şi la fişierele bazelor de date. Timpii de execuţie în simulare ai sarcinilor de lucru s-au dovedit de asemenea similari celor obţinuţi în sistemul real de test folosit. Figura 4.11. Timpii de execuţie ai sarcinilor de lucru în simulare (stânga) şi în sistemul real folosit (dreapta). O serie de alte experimente au fost de asemenea efectuate şi pentru validarea modelului de reţea folosit în MONARC 2. Rezultatele obţinute s-au dovedit de asemenea apropiate valorilor măsurate în sistemele reale de test folosite, aspect ce demonstrează corectitudinea modelului adoptat în cadrul simulatorului. Experimentele au reliefat printre altele necesitatea introducerii în modelul de simulare a câtorva aspecte ce afectează corectitudinea simulării transferurilor de date: încărcarea caracteristică protocoalelor de comunicaţie folosite, fluctuaţiile de trafic ce afectează parametrii controlului fluxului de date, caracteristicile protocoalelor aplicaţiilor modelate, viteza reţelei şi capacitatea sistemelor de a o folosi, întârzierile pe reţea. Rezultatele obţinute au demonstrat necesitatea încorporării tuturor acestor aspecte în modelul de simulare, ele fiind ulterior incluse în simulator. 4.4.3. Performanţa motorului de simulare Performanţa motorului de simulare a fost evaluată printr-o serie de experimente ce au avut ca scop testarea capacităţii aplicaţiei de simulare de a modela experimente de mari dimensiuni, incluzând un mare număr de activităţi rulând într-un mediu concurent format din multe resurse. Pentru validarea rezultatelor obţinute în urma acestor experimente, acestea au fost conduse pe mai multe platforme de operare. 30 Primele experimente din acestă serie, testarea întreruperilor, au urmărit evaluarea intervalului de timp necesar procesării în simulare a unui mare număr de întreruperi. Scenariul de simulare propus foloseşte un număr de N sarcini de lucru ce sunt submise spre execuţie într-un sistem constând dintr-o singură unitate de procesare. În acest caz numărul de întreruperi create este de N * ( N − 1) . Pe baza acestui scenariu au fost rulate patru experimente de simulare, fiecare implicând diferite valori pentru numărul sarcinilor de lucru procesate concurent (şi implicit valori diferite de întreruperi generate în experimente). Timpul de simulare obţinuţi în cele patru experimente sunt prezentaţi în Figura 4.12. Rezultatele obţinute demonstrează capacitatea aplicaţiei de simulare de a gestiona modelarea unor scenarii de mare complexitate, implicând un număr impresionant de resurse şi activităţi rulând concurent. Figura 4.12. Rezultatele obţinute în experimentele de testare a întreruperilor. Un alt experiment ce a urmărit testarea performanţelor motorului de simulare a fost testul firelor de execuţie concurente. Acest experiment a urmărit evaluarea numărului maxim de sarcini de procesare concurente ce pot fi simulate şi estimarea creşterii timpilor de execuţie ai experimentelor în raport de numărul de sarcini concurente folosite. Scenariul de simulare a presupus folosirea unui număr de sarcini de lucru rulând pe unităţi de procesare distincte. Pentru a evalua limita firelor de execuţie ce pot fi gestionate corect de aplicaţia de simulare seria de experimente realizate a presupus creşterea graduală a sarcinilor folosite de la 1 la 10.000. Rezultatele obţinute, prezentate în Figura 4.13, demonstrează capacitatea aplicaţiei de simulare de a gestiona corect un număr mare de fire de execuţie executate în paralel, similar situaţiei modelării unor scenarii de mare complexitate. Time [s] 4000.00 3500.00 Sun Enterprise 420R, Solaris 7 2X2.4GHz, Linux 2.4 3000.00 2X2.6GHz, Linux 2.6 2GHz, Linux 2.4 2500.00 2GHz, linux 2.6 2000.00 2X3GHz, Windows XP 1500.00 1000.00 500.00 0.00 1 10 100 1000 2000 4000 8000 10000 No. of simultaneous threads Figura 4.13 Results for the simultaneous threads test. Aceste experimente au demonstrat capacitatea aplicaţiei de simulare de a modela corect chiar şi situaţii extreme precum simularea unor scenarii implicând un număr foarte mare de întreruperi generate şi fire de execuţie rulând 31 în paralel. Numărul firelor de execuţie are cel mai mare impact asupra performanţelor aplicaţiei, atât asupra timpului de execuţie cât şi asupra consumului de memorie. Limitările sunt impuse doar de resursele fizice ale sistemelor pe care rulează diversele experimente de simulare. Simulatorul MONARC 2 este capabil de a simula sisteme de mare întindere, împlicând un număr mare de resurse şi de aplicaţii, similar unor sisteme Grid reale. 4.5. Experimente de simulare Evaluarea capacităţii aplicaţiei de simulare de a modela corect diverse tehnologii Grid a fost realizată într-o serie de experimente prezentate în această secţiune. Aceste experimente sunt importante deoarece ele au demonstrat posibilitatea modelării unui mare număr de situaţii şi tehnologii, de la diverse arhitecturi de sisteme distribuite şi până la testarea unor algoritmi de planificare sau de replicare de date sau chiar tehnologii de transfer de date. 4.5.1. Experimente de modelare a planificării Experimentul prezentat în această secţiune a urmărit testarea modelării unui algoritm distribuit de planificare de sarcini. Scopul experimentului a fost acela de a demonstra capacitatea aplicaţiei de simulare de a modela diverse tehnologii de planificare în sisteme distribuite. Scenariul de simulare folosit a presupus folosirea unui număr de centre regionale, fiind încorporând o componentă locală de planificare ce asignează sarcini de lucru spre execuţie pe resursele de procesare existente local. Acest experiment a folosit un planificator rulând un algoritm propriu de test. Conform acestui algoritm, atunci când toate resursele de procesare din centrul local sunt ocupate peste o anumită valoare de încărcare planificatorul încearcă trimiterea noilor sarcini de lucru create pentru execuţie în alte centre regionale. Alegerea centrului regional unde o sarcină este trimisă într-o astfel de situaţie se realizează pe baza valorii medii de încărcare publicată de fiecare centru. Experimentul a presupus existenţa unui număr n de centre regionale (în practică valorile alese au fost n =1, 2, 4 şi 6) având configuraţii similare, fiecare procesând un anumit număr de sarcini pe zi. Rata de creare a sarcinilor de lucru depinde de perioada din zi. Acest aspect, corelat cu alegerea poziţiilor centrelor în diverse zone de timp, duce la apariţia exportului de sarcini către alte centre regionale ce rulează mai puţine activităţi. Seria de experimente a presupus varierea atât a numărului de unităţi de procesare existente în fiecare centru cât şi a capacităţilor reţelelor locale fiecărui nod de procesare. Figura 4.14. Rezultatele obţinute prin varierea numărului de unităţi de procesare. 32 Figura 4.14 prezintă rezultatele obţinute prin varierea numărului de unităţi de procesare implicate. După cum se poate observa timpul de procesare şi utilizarea unităţilor de procesare tind să crească odată cu decreşterea numărulu de unităţi implicate de la 100 la 40. Atunci când sunt folosite mai puţine unităţi de procesare, acestea sunt folosite mai intens, dar în acelaşi timp rata de utilizare nu atinge niciodată 100% din cauza timpului ocupat de transferurile de date. Figura 4.15 prezintă rezultatele obţinute într-o serie de experimente ce au implicat folosirea unor diverse capacităţi de transfer pentru componentele de reţea. Figura compară timpul mediu de procesare cu valorile lungimilor de bandă asumate de scenariile folosite. După cum se poate observa, limitarea lungimii de bandă disponibilă duce la creşterea timpului necesar procesării datelor. Această condiţie duce în cele din urmă la degradarea drastică a performanţelor sistemului, aspect reliefat şi de rezultatele obţinute. Figura 4.15. Rezultatele obţinute prin varierea lungimii de bandă folosite. Aceste experimente de simulare au demonstrat capacitatea aplicaţiei de simulare MONARC 2 de a include noi proceduri de planificare. Simulatorul MONARC 2 se dovedeşte un instrument deosebit de util în analizarea eficienţei unor algoritmi de planificare, astfel de experimente ducând la diagnosticarea facilă a unei game largi de probleme şi chiar la aspecte de proiectare precum aflarea capacităţii optime a sistemelor ce folosesc algoritmii de planificare testaţi pentru obţinerea celor mai bune rezultate în materie de performanţă. 4.5.2. Experimente de modelare a replicării de date Optimizarea folosirii resurselor Grid reprezintă un aspect în care simularea joacă un rol important. Simulatorul MONARC 2 oferă capacitatea de simulare realistică de diverse strategii de optimizare a replicării de date iar rezultatele obţinute în experimentele prezentate în această secţiune vin să demonstreze această afirmaţie. Capacitatea de testare a efectelor unor strategii de optimizare a replicării de date este de altfel demonstrată şi de comunitatea de utilizatori ai instrumentului de simulare. De exemplu, în [Lin, 2005] şi [Lin, et al, 2006], simulatorul a fost cu succes folosită pentru ilustrarea posibilităţii de a încorpora în modelul de simulare o nouă abordare în replicare prin folosirea unui model de economie de piaţă. Experimentul prezentat în această secţiune a urmărit testarea influenţei politicii de acces a datelor asupra performanţelor de execuţie ale unui sistem distribuit ce implică şi replicare de date. Scenariul a presupus existenţa a două centre regionale, fiecare conţinând o cantitate de date replicate, şi a unui număr de opt centre regionale satelit. Centrele regionale satelit rulează câteva activităţi de procesare ce presupun transferul cantităţilor de date (evenimente) ce sunt procesate de la serverele replicate. În aceste experimente au fost modelate două situaţii: sarcina de lucru poate folosi un algoritm inteligent pentru găsirea celei mai optime locaţii de unde se transferă datele sau poate folosi o decizie arbitrară pentru aceasta. Rezultatele obţinute au presupus comparea rezultatelor obţinute în cele două situaţii. 33 Figura 4.16. Rezultatele obţinute pentru timpii de răspuns ai sarcinilor de lucru. Figura 4.17. Rezultatele obţinute în cazul numărului de evenimente procesate pe secundă. Primele experimente bazate pe acest scenariu au presupus că cele două servere sunt conectate prin legături de date având aceleaşi lungimi de bandă. Figura 4.16 prezintă o comparaţie a rezultatelor obţinute în cele două experimente în cazul timpilor de răspuns ai execuţiei sarcinilor de lucru. Rezultatele prezentate demonstrează utilitatea folosirii deciziilor de balansare a încărcării transferurilor. Figura 4.17 prezintă o comparaţie a rezultatelor obţinute în cazul numărului de evenimente procesate pe secundă în fiecare caz. Într-o altă serie de experimente condiţiile de rulare au fost modificate astfel încât un server de date să fie servit la o capacitate dublă faţă de celălalt. Figura 4.18 prezintă o comparaţie a rezultatelor obţinute în aceste experimente pentru timpii de răspuns ai execuţiei sarcinilor de lucru. Chiar dacă decizia de balansare a încărcării traficului s-a dovedit mai utilă şi în aceste experimente, rezultatele obţinute în urma folosirii deciziei arbitrare se dovedesc mai bune decât în primele experimente. Aceasta se explică prin aceea că algoritmul de balansare se bazează pe condiţiile sistemului la momentul începerii transferului, ceea ce poate duce la timpi de răspuns defavorabili dacă în timpul transferului condiţiile suferă modificări. O aceeaşi concluzie se poate obţine din analiza rezultatelor obţinute în cazul numărului de evenimente procesate pe secundă în cele două experimente (Figura 4.19). Figura 4.18. Rezultatele obţinute pentru timpii de răspuns ai sarcinilor de lucru. Figura 4.19. Rezultatele obţinute în cazul numărului de evenimente procesate pe secundă. Rezultatele obţinute demonstrează importanţa algoritmilor de acces la datele replicate ce pot influenţa dramatic performanţele tehnologiilor de replicare a datelor. Scenariile folosite seamănă cu multe situaţii întâlnite în viaţa reală. Rezultatele demonstrează că folosirea unor decizii bazate pe localizarea datelor nu reprezintă întotdeauna soluţii corecte, fiind nevoie de folosirea proximităţii datelor în combinaţie cu soluţii de balansare a încărcării. 34 4.5.3. Experimente de modelare a transferurilor de date În această secţiune prezentăm un experiment ce ilustrează capacitatea aplicaţiei de simulare de a modela diverse tehnologii şi protocoale de transfer. Scenariul folosit presupune existenţa unui server central ce stochează un număr de evenimente şi existenţa unui număr de sarcini de procesare. Fiecare sarcină de procesare presupune transferul datelor necesare de la serverul central prin intermediul unui protocol de transfer similar FTP-ului. Conform acestui scenariu, serverul trimite câte un fişier conţinând evenimente de procesare fiecărei sarcini în vederea prelucrării acestora. Folosind acest scenariu am simulat un număr de situaţii implicând diverse valori de sarcini de procesare existente. Experimentele au urmărit testarea comportării sistemului atunci când sunt adăugate noi staţii de procesare şi reacţia sistemului în faţa limitărilor conectivităţii. Figura 4.20 prezintă rezultatele obţinute pentru numărul de evenimente procesate pe secundă în cazul acestor experimente. Rezultatele au fost obţinute pentru experimente implicând una, şi apoi două, sarcini de lucru prelucrate pe fiecare unitate de procesare (cele două linii). Figura 4.21 prezintă rezultatele obţinute în aceste experimente pentru utilitarea unităţilor de procesare. După cum se poate observa, utilizarea scade prin adăugarea de noi unităţi de procesare, aspect ce vine de altfel în sprijinul rezultatelor teoretice şi care demonstrează validitatea modelului de reţea folosit. Figura 4.20. Rezultatele obţinute pentru numărul de evenimente procesate pe secundă. Figura 4.21. Rezultatele obţinute pentru utilizarea unităţilor de procesare. O serie de experimente ulterioare a presupus limitarea numărului de conexiuni simultane acceptate de server. Limitarea impusă reflectă o serie de cazuri reale (în general administratorii de sisteme impun astfel de limitări pentru evitarea unor probleme precum sugrumarea resurselor). Figura 4.22 prezintă rezultatele obţinute în aceste experimente pentru cazul numărului de evenimente procesate pe secundă. După cum se poate observa există o limită în care valorile obţinute ating un maxim. Aceasta înseamnă că prin adăugarea de noi unităţi de procesare în scenariul de simulare obţinem valori mai scăzute ale performanţei din cauza gâtuirii resurselor. Figura 4.22. Rezultatele obţinute pentru numărul de evenimente procesate pe secundă. Figura 4.23. Rezultatele obţinute pentru utilizarea unităţilor de procesare. Aceste experimente demonstrează capacitatea aplicaţiei de simulare de a modela diverse tehnici de transfer a datelor, precum cazul modelării unui protocol de transfer similar protocolului FTP. Rezultatele obţinute au 35 demonstratat existenţa unei valori optimale a numărului de unităţi de procesare folosite, valoare ce depinde de capacitatea serverului de a gestiona cererile de transfer, precum şi de numărul sarcinilor de lucru ce rulează concurent pe nodurile de procesare existente. 5. EXPERIMENTE DE SIMULARE CE FOLOSESC MONITORIZAREA Domeniul monitorizării a fost intens folosit în validarea şi în proiectarea aplicaţiei de simulare. Tehnologiile de monitorizare au fost folosite în special pentru obţinerea informaţiilor de stare în cazul sistemelor de test folosite şi în comparaţiile implicând sisteme reale. Experimentele prezentate în această lucrare au modelat cazuri de sisteme reale iar caracteristicile scenariilor folosite s-au bazat pe informaţiile culese folosind monitorizarea. Rezultatele obţinute în experimentele de simulare au fost intens folosite ca o modalitate de prezicere a comportării viitoare a diverselor sisteme şi tehnologii testate. 5.1. MonALISA Aplicaţia de monitorizare MonALISA, Monitoring Agents using a Large Integrated Services Architecture, reprezintă unul dintre instrumentele importante în domeniu ce a fost dezvoltat în cadrul unei colaborări implicând şi Universitatea Politehnică din Bucureşti. MonALISA ca instrument de monitorizare a fost intens folosit în relaţie cu MONARC 2, autorul fiind membru şi în echipa de dezvoltare a aplicaţiei de monitorizare. Astfel multe dintre experimentele de simulare prezentate în această lucrare au la bază condiţii de lucru ale sistemelor reale ce au fost obţinute prin folosirea aplicaţiei de monitorizare. Rezultatele obţinute în urma diverselor experimente de simulare au furnizat informaţii valoroase ce au fost folosite în implementarea diverselor funcţionalităţi de control furnizate de MonALISA. Caracteristicile componentelor de simulare au fost influenţe în bună măsură de caracteristicile observate prin monitorizarea sistemelor reale echivalente. Figura 5.1. MonALISA ca aplicaţie de monitorizare a sistemelor Grid. Aplicaţia de monitorizare MonALISA este curent folosită pentru monitorizarea multor sisteme Grid din S.U.A, Europa şi Asia. MonALISA furnizează informaţii complete, aproape în timp real, legate de starea resurselor şi de execuţia diverselor activităţi în astfel de sisteme. Instrumentul de monitorizare furnizează informaţii de trafic în cele mai importante reţele din lume şi informaţii legate de conectivitate între multe noduri Grid. La ora actuală peste 250 de organizaţii folosesc MonALISA. Sistemul colectează informaţii în timp real pentru aproximativ 250.000 de parametrii cu o rată de peste 25.000 de valori actualizate în fiecare secundă, monitorizând aproximativ 12.000 de staţii de lucru, 100 reţele de mare întindere şi sute de activităţi rulând concurent în diverse sisteme Grid. Comunităţile majore ce se bazează pe MonALISA pentru suportul de monitorizare oferit cuprind 36 printre alte OSG, CMS, ALICE, D0, STAR, VRVS, LCG Russia, SE Europe GRID, APAC Grid, UNAM Grid, ABILENE, ULTRALIGHT, GLORIAD, LHC Net şi RoEduNet. MonALISA reprezintă un instrument important de monitorizare ce a fost folosit intens în procesele de proiectare şi validare ale simulatorului MONARC 2. Pentru furnizarea unui model de simulare robust fiecare componentă a aplicaţiei de simulare a fost proiectată pornind de la seturi de observaţii obţinute în sisteme reale. De la tipurile de componente caracteristice diverselor sisteme Grid şi până la caracteristicile funcţionale şi parametrii de intrare consideraţi pentru diversele componente încorporate în modelul de simulare, toate aceste informaţii au fost obţinute prin folosirea aplicaţiei MonALISA. De altfel MonALISA a fost folosită şi în construcţia unor condiţii reale de simulare în cazul experimentelor prezentate în această lucrare. Rezultatele furnizate de MONARC 2 s-au dovedit deosebit de importante în deciziile de implementare ale unor functionalităţi specifice aplicaţiei MonALISA. Aceste aspecte evidenţiază o combinaţie unică şi originală între două proiecte aparţinând unor domenii aparent distincte, simularea şi monitorizarea, în scopul obţinerii unor soluţii de implementare net superioare oricăror alte aplicaţii existente din ambele domenii ştiinţifice. 5.2. LISA LISA, Localhost Information Service Agent, reprezintă un proiect de dimensiuni mai reduse ce furnizează soluţii complete de monitorizare a sistemelor şi aplicaţiilor ce poate ajuta la optimizarea diverselor aplicaţii distribuite. Ca parte din sistemul MonALISA, LISA este proiectată sub forma unui set de agenţi capabili de a colecta diverse informaţii legate de sistemele locale, de a le distribui şi de a lua diverse decizii. LISA foloseşte diverse tehnologii preluate din MONARC 2 pentru a oferi o platformă de agenţi ce oferă performanţe ridicate. Sistemul a fost folosit cu succes în timpul demonstraţiei Bandwidth Challenge desfăşurate în cadrul conferinţei Supercomputing 2006 pentru a coordona transferuri de mare întindere între sute de servere distribuite în noduri Grid situate în toată lumea. Arhitectura aplicaţiei se bazează pe folosirea unui număr de servicii agent ce monitorizează independent diversele sisteme unde rulează. Componentele arhitecturii sunt prezentate în Figura 5.2. Figura 5.2. Componentele aplicaţiei LISA. Agentul LISA este compus dintr-un sistem principal şi un număr de module dinamice. Sistemul principal este responsabil cu gestiunea modulelor de monitorizare în cadrul aplicaţiei. Acesta are rolul de a descoperi dinamic module curent disponibile, de a le încarca dinamic în aplicaţie şi oferă un minim suport pentru automonitorizarea condiţiilor de rulare, agentul fiind capabil de a reporni dinamic odată cu detecţia unor probleme legate de funcţionare. Agentul încorporează un număr de module ce pot fi folosite pentru monitorizarea completă şi controlul sistemului local, oferind şi posibilitatea introducerii de noi module de către utilizatori. LISA furnizează două modalităţi prin care o aplicaţie poate folosi serviciile oferite de LISA. Orice aplicaţie poate folosi funcţiile API exportate de diversele module de monitorizare. În acelaşi timp o aplicaţie ce foloseşte 37 serviciile LISA se poate conecta la serviciul daemon. Această modalitate de folosire este de altfel cea prin care LISA comunică cu serviciile de nivel înalt ale MonALISA sau cu clientul grafic. În timpul demonstraţiei „High Speed Data Gathering, Distribution and Analysis for Physics Discoveries at the Large Hadron Collider” ce a avut loc în cadrul conferinţei SuperComputing 2006 (SC06) o echipă condusă de California Institute of Technology au reuşit stabilirea unui nou record mondial pentru transferuri de date susţinute între sisteme de stocare (Figura 5.3 prezintă rezultatele oficiale obţinute). Folosind aplicaţia Fast Data Transfer pentru suportul de transfer şi LISA pentru partea de control echipa a reuşit stabilirea unui record de transfer de 17.77 Gbps folosind o singură legătură de reţea de 10 Gbps întinsă între locaţia conferinţei şi Caltech. Aplicaţia FDT are ca scop înţelegerea peformanţelor reţelelor şi furnizează o soluţie viabilă pentru pregătirea şi utilizarea mai bună a capacităţii reţelelor, în special a celor de mare întindere. Aplicaţia a fost dezvoltată în cadrul unei colaborări între Universitatea Politehnică din Bucureşti, CERN şi Caltech. În timpul acestui eveniment LISA a jucat un rol important în stabilirea recordului. Prin suportul oferit pentru continua monitorizare şi supraveghere LISA a furnizat planul de control al demonstraţiei. Acesta reprezintă un exemplu perfect de capacitate a aplicaţiei LISA de a putea ajuta la optimizarea altor aplicaţii. Figura 5.3. Rezultatele oficiale ale echipei Caltech la demonstraţia Bandwidth Challenge. Modulul de monitorizare a reţelei furnizat de LISA a fost folosit în acest caz pentru supravegherea continuă şi diagnosticarea stărilor parametrilor de reţea ai serverelor folosite. Problemele caracteristice stivei TCP/IP au fost mai repede rezolvate datorită modalităţii prin care LISA poate raporta schimbări de stare ale parametrilor monitorizaţi. Modulul a permis de asemenea ajustarea dinamică a unor parametrii de configurare importanţi de la distanţă dintr-un sigur punct de control. Figura 5.4. LISA poate ajuta clientul EVO de a detecta dinamic cel mai optim reflector la care să se conectecteze. 38 În cadrul evenimentului LISA a furnizat în timp real informaţii valoroase legate de starea sistemului: stările interne nodurilor între care au avut loc transferurile, a ajutat la executarea unor comenzi într-o manieră simplă şi ingenioasă, a ajutat la monitorizarea stării aplicaţiei FDT şi la obţinerea de informaţii legate de transferurile aflate în desfăşurare, a ajutat la ajustarea dinamică a parametrilor de rulare ale aplicaţiei FDT, a restartat transferurile sau a schimbat fişierele curent transferate, a ajutat la depistarea unor problemele legate de kernel sau probleme de MTU asimetric. Un alt exemplu de modalitate prin care LISA poate ajuta alte aplicaţii în termeni de optimizare îl reprezintă şi relaţia dintre aceasta şi sistemul de videoconferinţă EVO. LISA este folosită curent ca parte a sistemului EVO ([Dobre, et al., 2004]), ajutând la detectarea dinamică a celor mai buni reflectori la care se conectează clienţii de videoconferinţă. Lista de reflectori este obţinută prin interogarea serviciilor MonALISA, fiind actualizată dinamic pentru depistarea continuă a stării sistemelor pe care aceştia rulează. Cel mai bun reflector este ales pe baza locaţiei acestuia (apartenenţa la o reţea, domeniul AS, ţară, continent) şi pe baza valorii de încărcare, numărului de clienţi curent conectaţi, pe baza traficului observat. Algoritmul este construit pentru asigurarea unei balansări corecte a alegerii celor mai optimi reflectori în termeni de conectivitate. Sistemul de agenţi distribuiţi bazat pe LISA furnizează funcţionalitatea necesară monitorizării şi controlului dinamic în cazul unor sisteme distribuite de mare întindere. LISA a fost cu succes folosită pentru a coordona şi optimiza transferuri de date de mari dimensiuni. Reprezintă un instrument folosit curent în sistemul de videoconferinţă EVO în scopul optimizării contectivităţii şi performanţelor sistemului. MONARC 2 a jucat un rol important în proiectarea sistemului de agenţi prin furnizarea unor rezultate de un real folos în procesul de proiectare a aplicaţiei şi prin împrumutarea unei număr considerabil de tehnologii testate cu succes în simulator. 5.3. US LHCNet – un experiment de simulare ce foloseşte monitorizarea Prezentăm în această secţiune un experiment de simulare ce demonstrează interoperabilitatea dintre aplicaţia de simulare şi un instrument de monitorizate. Experimentul urmăreşte testarea capacităţii reţelei de cercetare reale US LHCNet de a susţine traficul de date ce va fi generat de analizele de fizică LHC ce vor începe la CERN. Experimentul a avut ca punct de pornire datele reale monitorizate de MonALISA, împreună cu capacităţile de trafic ce vor fi generate de analizele de fizică ce sunt descrise în modelele computaţionale ale experimentelor ATLAS şi CMS. Un obiectiv al scenariului de simulare a fost de a testa capacitatea reţelei US LHCNet de a susţine traficul generat de experimentele LHC sub valorile de trafic ce sunt curent observate în legăturile reale existente. Un alt obiectiv urmărit a fost demonstrarea folosirii datelor de monitorizare ca intrare într-un scenariu de simulare precum cel prezentat prin acest experiment. Figura 5.5. Topologia curentă a reţelei US LHCNet. 39 Reţeaua de cercetare US LHCNet este parte componentă a unui ansamblu de reţele folosite de comunitatea HEP şi reprezintă o resursă importantă a participării S.U.A. la experimentele LHC. Reţeaua a fost proiectată pentru a asigura o folosire eficientă şi corectă a legăturilor de 10 Gbps disponibile şi pentru a susţine o mare varietate de aplicaţii de reţea, incluzând: transferuri de fişiere, aplicaţii Grid, sesiuni de analize de date, trafic de reţea şi de Grid ale aplicaţiilor de cercetare, aplicaţii de videoconferinţă şi conectivitate Internet în general. Topologia curentă a reţelei este prezentată în Figura 5.5. Reţeaua de cercetare se bazează pe folosirea MonALISA pentru monitorizarea şi gestionarea tuturor legăturilor de reţea. MonALISA furnizează informaţii de monitorizare precum throughput sau cantitatea de date curent transferate, dar şi informaţii legate de topologie sau starea legăturilor existente. Experimentul de simulare s-a bazat pe informaţiile furnizate de MonALISA pentru testarea capacităţii reţelei de a susţine un trafic suplimentar precum cel ce va fi generat de experimentele LHC. Datele de monitorizare folosite sunt reprezentate de valorile pe ultimele 6 luni de funcţionare a reţelei reale (Figura 5.6). Figura 5.6. Datele de monitorizare ce au fost folosite în experimentul de simulare. Rezultatele obţinute în acest experiment sunt prezentate în Figurile 5.7 şi 5.8. Analizând lungimea de bandă consumată de către traficul simulat în legăturile de WAN (Figura 5.7) şi în legăturile majore (Figura 5.8) putem concluziona că valorile capacităţilor curente ale legăturilor existente în reţeaua US LHCNet sunt sufiente pentru a gestiona corect cantităţile de date ce vor fi generate în viitorul apropiat prin rularea experimentelor LHC. Acest experiment a demonstrat şi maturitatea aplicaţiei de simulare ce poate suporta modelarea unor scenarii bazate pe date monitorizate în sisteme reale. Figura 5.7. Lungimea de bandă în WAN. Figura 5.8. Lungimea de bandă folosită în cazul legăturilor de date majore. 6. STUDIU DE SIMULARE PENTRU ACTIVITĂŢILE DE REPLICARE & PRODUCŢIE A DATELOR CONFORM EXPERIMENTELOR LHC LA CERN În acest capitol prezentăm un experiment având ca obiectiv testarea proceselor de analiză de fizică şi a modalităţilor prin care experimentele conlucrează pentru atingerea obiectivelor tehnice impuse de stocarea, 40 accesarea şi procesarea cantităţilor impresionante de date generate de experimentele LHC. Experimentul ilustrează capacitatea aplicaţiei de simulare de a modela sisteme de mari dimensiuni, implicând o cantitate impresionantă de resurse şi aplicaţii rulând distribuit în mediul creat de acestea. Scenariul de simulare respectă modelul ierarhiei de centre ierarhice propus de cele două experimente principale, CMS şi ATLAS, pentru modelarea activităţilor importante de transfer între centrele T0 (CERN) şi un număr de centre regionale T1. Topologia folosită pentru modelarea activităţilor de fizică este prezentată în Figura 6.1. În acest experiment am presupus existenţa a trei centre regionale T1 în Europa ce sunt conectate independent. Modelul simplifică cazul real şi foloseşte un singur „mega-router” la care fiecare centru T1 este conectat printr-o singură legătură de date. În scenariu am considerat de asemenea existenţa unei legături de date transatlantice ce conectează centrul T0 de cele două centre T1 din S.U.A. şi a unei legături de date ce asigură conectivitatea cu un centru T1 din Japonia. Figura 6.1 Topologia folosită în experimentul de simulare. Pentru a eficientiza procesele de transfer de fişiere am presupus existenţa unui Agent de transfer ce rulează în toate centrele regionale. Pentru transferul fisierelor Agentul are rolul de a alege deciziile optime de transfer şi chiar să asigure un mecanism de replicare a datelor. Astfel, transmiterea unui acelasi set de date catre toate centrele din S.U.A. şi Japonia se realizează o singură dată, iar agentul are rolul de a replica dinamic datele primite şi de a le transfera ulterior către fiecare centru regional destinatar. Figura 6.2. Timpii de transfer ai fişierelor DST (stânga) şi RAW (dreapta) în diverse centre regionale T1 în funcţie de lungimea de bandă disponibilă a legăturii de date ce conectează T0 (CERN) de T1-US1. Seria de experimente au presupus următoarele scenarii de producţie a datelor: 1. Replicarea datelor RAW. Acest experiment presupune o rată medie de înregistrare a datelor RAW de 200 MB/s. Informaţia obţinută este stocată în fişiere de 2 GB. Fişierele sunt apoi replicate conform unui algoritm round robin către cele 6 centre T1. 2. Producţia şi distribuţia datelor DST. În centrul T0 toate datele RAW sunt procesate, rezultând un număr de fişiere conţinând date de tip DST. Fişierele DST sunt de 10 ori mai mici decât cele de tip RAW. Fişierele DST sunt trimise tuturor centrelor T1. 41 3. Re-producţia şi noua distribuţie a datelor DST. După un timp datele RAW din fiecare centru T1 sunt reprocesate în noi fişiere de date DST. Fiecare centru T1 va procesa 1/6 din totalul datelor RAW. Datele DST generate la nivelul fiecărui centru regional sunt apoi trimise către toate celelalte centre existente. 4. Analiza detectorilor. Această activitatea porneşte în anumite centre T1 la anumite momente de timp şi au rolul de a colecta toate datele RAW produse pe ultimele ore. În simulare am presupus ora 9 locală centrului ora de începere a aceastei activităţi şi am ales intervalul de 12 ore pentru culegerea datelor RAW. Datele RAW sunt adunate în mod dinamic prin alegerea celui mai optim centru în termeni de performanţă de unde datele sunt transferate. Seria de experimente rulate folosind scenariul prezentat a presupus execuţia activităţilor într-o primă etapă separate şi apoi combinarea acestora. Experimentele au urmărit modelarea aproximativ a unei zile de execuţie a activităţilor. Figura 6.2 prezintă rezultatele timpilor necesari transferării fişierelor DST şi RAW în diverse centre T1 în cazul folosirii unor valori a lungimii de bandă a legăturii de date ce contectează T0 (CERN) de T1-US1 cuprinse între 3 Gbps şi 10 Gbps. După cum se poate observa, timpul de transfer a fişierelor DST tinde să scadă proporţional cu lungimea de bandă disponibilă pe respectiva legătură de date. În realitate seria de experimente a început cu folosirea valorii de 2.5 Gbps pentru lungimea de bandă a legăturii disponibile între T0 (CERN) şi T1US1. După cum se poate observa şi din Figura 6.3, în acest caz sistemul întâlneşte ă gâtuire, timpii de transfer ai datelor RAW tinzând să crească la infinit. Acest lucru se explică prin faptul că datele tind să se acumuleze în sistem, numărul de noi transferuri solicitate fiind mai mare decât rata de transferuri finalizate. Figura 6.3. Timpii de transfer ai fisierelor RAW atunci când lungimea de bandă disponibilă a legăturii de date ce conectează T0 (CERN) de T1-US1 este de 2,5 Gbps (stânga) şi 5 Gbps (dreapta). Rezultate interesante au fost obţinute şi în urma comparaţiei efectuate pentru activitatea de distribuţie a datelor DST realizate prin folosirea şi prin nefolosirea Agentului de transfer. În acest caz agentul de transfer este folosit în centrul regional T1-US1 şi are rolul de a replica datele DST primite de la centrul T0 (CERN) şi de a transfera replicile către centrele T1-US2 şi T1-JP. Aceasta înseamnă că în scenariul ce presupune folosirea agentului un singur fişier va fi transfer pe legătura de date dintre T0 (CERN) şi T1-US1, pe când în scenariul ce nu presupune folosirea agentului vor fi transferate de fiecare dată trei fişiere, câte unul separat pentru fiecare centru destinatar. Rezultatele obţinute pentru lungimea de bandă medie folosită pe legăturile de date majore sunt prezentate în Figura 6.4. Rezultatele prezentate demonstrează optimizarea obţinută prin folosirea agentului de transfer. Figura 6.4. Lungimea de bandă folosită în cazul experimentelor realizate cu (stânga) şi fără (dreapta) Agentul de Transfer de Date. 42 În aceste experimente am demonstrat validitatea folosirii unui Agent de transfer pentru optimizarea transferurilor datelor generate de experimentele LHC. Am demonstrat de asemenea că valoarea lungimii de bandă de 2,5 Gbps pentru legătura de date ce conectează T0 (CERN) de S.U.A. nu este suficientă pentru a suporta traficul generat de activităţile de producţie. Pe baza recomandărilor noastre şi a rezultatelor obţinute în aceste experimente ulterior această capacitate a fost crescută la valoarea curent folosită de 10 Gbps. Cel mai important, aceste experimente au demonstrat capacitatea aplicaţiei de simulare de a modela sisteme distribuite de mari dimensiuni precum cele ce vor suporta procesarea datelor generate de experimentele LHC şi în care rulează un număr impresionant de aplicaţii, generând atât o cantitate impresionantă de trafic concurent cât şi multe procese rulând concurent pe aceleaşi resurse de calcul. În acelaşi timp aceste experimente au demonstrat capacitatea aplicaţiei de simulare de a modela corect o varietate de noi tehnologii precum modelarea unor activităţi şi tehnologiilor aferente specifice activităţilor de fizică. Simulatorul MONARC 2 este capabil să suporte modelarea cu succes a unor astfel de experimente, aspect ce demonstrează maturitatea acestuia. 7. CONCLUZII În această lucrare am prezentat problemele şi soluţiile originale propuse referitoare la furnizarea unei aplicaţii de simulare a sistemelor distribuite de mari dimensiuni, ce oferă soluţii de suport pentru studierea ştiinţifică şi sistematică a unei game variate de aplicaţii şi medii grid. În cadru lucrării am descris noi alternative la modelarea, planificarea şi implementarea aplicaţiilor de simulare ce se adresează tehnologiilor specifice sistemelor distribuite. Am demonstrat că modelul de simulare original propus integrează componentele şi mecanismele necesare pentru crearea de experimente realiste ce simulează comportări de sisteme distribuite de mari dimensiuni. Astfel de sisteme includ multe resurse şi diverse tehnologii, variind de la cele pentru transferuri de date şi până la cele pentru planificarea şi replicarea de date, încorporând resurse ce conlucrează pentru furnizarea unui set comun de caracteristici. Validitatea soluţiilor de cercetare propuse s-a materializat prin construcţia unei aplicaţii de simulare de ultimă generaţie, MONARC 2. Simulatorul este proiectat pentru modelarea generică a unei game variate de arhitecturi de sisteme distribuite. Modelul robust de simulare încorporat, arhitectura generică, modelele mature de date, reţea şi aplicaţii, furnizează mecanismele necesare descrierii multor tehnologii actuale de sisteme distribuite. Modelul de simulare adoptat în MONARC 2 urmăreşte îndeaproape caracteristicile multor tehnologii actuale din domeniul sistemelor distribuite. Modelul încorporează componentele necesare pentru conducerea unei game variate de studii de simulare, de la modelarea algoritmilor de planificare sau replicare de date şi până la cele simularea comportării unor tehnologii de transferuri de date. În această lucrare am demonstrat că modelul de simulare este perfect adaptat pentru modelarea unor scenarii realiste de simulare, a unei game bogate de tehnologii ale sistemelor distribuite, în special cele ce ţin de sistemele Grid, conţinând elementele necesare modelării tuturor componentelor şi caracteristicilor specifice acestora. În cadrul tezei am propus categoriile unei taxonomii inedite proiectate să reflecte atât caracteristicile de proiectare ale sistemelor Grid simulate cât şi proprietăţile diverselor instrumente de simulare. Taxonomia prezentată a fost ulterior folosită pentru un studiu comparativ al celor mai importante proiecte de simulare şi a condus la reliefarea caracteristicilor acestora, a avantajelor şi dezavantajelor acestora. În cadrul lucrării am demonstrat că deşi folosirea unui anumit instrument de simulare depinde în mare măsură de scopul simulării şi de aptitudinile utilizatorului, aplicaţiile analizate acoperă aspecte importante variate ale sistemelor distribuite, permiţând explorarea unor spaţii de parametrii diferiţi. Între aceste proiecte, am demonstrat că MONARC 2 este cel mai generic, fiind capabil să modeleze un număr mai mare de scenarii comparativ cu oricare altă aplicaţie de simulare. MONARC 2 oferă de asemenea cele mai multe capabilităţi, considerând mult mai mulţi parametrii, proprietăţi şi componente decât oricare alt instrument de simulare a sistemelor distribuite existent. În lucrare am prezentat apoi caracteristicile de proiectare ale simulatorului MONARC 2. Am prezentat detaliile componentelor de simulare furnizate de MONARC 2, cu un accent deosebit pus pe cele ale motorului de simulare şi ale modelelor de sarcini de lucru, de date şi de reţea. De o mare importanţă sunt rezultatele de evaluare a aplicaţiei de simulare prezentate în lucrare. Am prezentat astfel o serie de experimente ce au avut ca 43 scop evaluarea performanţelor, validităţii şi care au urmărit testarea limitelor şi capabilităţilor aplicaţiei de simulare. Maturitatea simulatorului a fost demonstrată şi prin numărul experimentelor de simulare ce au fost cu succes executate şi ale căror rezultate au fost de asemenea prezentate în lucrare. Simulatorul permite modelarea de diverse sisteme Grid, presupunând multe activităţi concurând pentru resurse şi implicând diverse tehnologii, de la cele de planificare şi replicare de date la cele de transfer de date şi procesare distribuită. În lucrare am subliniat contribuţia importantă a tehnologiilor de monitorizare în validarea şi proiectarea aplicaţiei de simulare, precum şi rolul instrumentelor de monitorizare în proiectarea unor experimente de simulare realiste. Rezultatele cercetării prezentate în această lucrare au de asemenea folosite în dezvoltarea unuia dintre cele mai importante proiecte de monitorizare a sistemelor Grid, MonALISA. Aplicaţia de monitorizare MonALISA a fost folosit îndeosebi în procesul de validare al aplicaţiei de simulare, precum şi în procesul de proiectare a diverselor experimente de simulare prezentate. În lucrare am prezentat două proiecte de monitorizare, MonALISA şi LISA, deoarece ambele au beneficiat de rezultatele cercetării prezentate în această lucrare. LISA reprezintă un sistem de agenţi de monitorizare ce poate fi folosit pentru îmbunătăţirea rezultatelor unor aplicaţii prin rezultatele de monitorizare furnizate. Ca un exemplu de capabilităţi oferite, în lucrare am prezentat modalitatea prin care în timpul demonstraţiei SuperComputing Bandwidth Challenge din 2006 LISA a ajutat la stabilirea unui nou record mondial în materie de transfer de date. Funcţionalitatea de control face din LISA un instrument ideal pentru gestionarea unor transferuri de date de mari dimensiuni. Într-un alt exemplu prezentat în lucrare aminteam cum sistemul LISA este folosit curent ca parte integrantă din aplicaţia de videoconferinţă EVO, ajutând la optimizarea performanţelor de reţea ale clienţilor aplicaţiei. O demonstraţie a capabilităţii aplicaţiei de simulare de a gestiona simularea realistă a unor sisteme distribuite prin combinarea cu rezultatele obţinute în urma unui instrument de monitoritare a fost de asemenea prezentată în cadrul lucrării. În experimentul prezentat am demonstrat că simulatorul MONARC 2 este capabil de a folosi date reale de monitorizare ca intrare pentru diverse scenarii de simulare. Această capabilitate este îndeosebi utilă în scenarii ce urmăresc testarea unor probleme ipotetice de genul ce s-ar întampla dacă în cadrul unui sistem real sar folosi o nouă tehnologie sau s-ar introduce noi componente sau aplicaţii. În final am demonstrat capabilitatea simulatorului MONARC 2 de a gestiona un scenariu de simulare de foarte mare amploare, încorporând multe resurse şi activităţi. Am demonstrat de asemenea că aplicaţia de simulare este capabilă să gestioneze corect simularea realistă a condiţiilor de procesare a datelor generate de experimentele LHC descrise în modelele computaţionale ale celor patru experimente de fizică. Rezultatele prezentate au demonstrat importanţa folosirii unui agent de transfer pentru optimizarea transferurilor datelor generate de activităţile LHC, precum şi necesitatea îmbunătăţirii legăturilor de reţea existente. Aceste rezultate au fost de altfel folosite în decizii reale, acestea conducând la dezvoltarea sistemului de agenţi LISA şi la îmbunătăţirea legăturilor transatlantice folosite de activităţile experimentelor de fizică. Deşi aplicaţia de simulare şi-a dovedit maturitatea, aspect demonstrat prin numărul mare de experimente de modelare ce au fost cu succes executate, activitatea de cercetare prezentată în lucrare nu se va opri, fiind nevoie în continuare de adoptarea unor noi posibile metode pentru îmbunătăţirea utilizării resurselor şi de studierea unor noi tehnologii de sisteme distribuite pe baza capabilităţilor oferite de aplicaţia de simulare. 7.1. Contribuţii originale Prezentăm în continuare un sumar al contribuţiilor originale ale tezei, pe care le considerăm relevante în evaluarea contribuţiilor acestei lucrări: • Dezvoltarea unor tehnici de modelare şi simulare a sistemelor distribuite de mari dimensiuni, în conformitate cu caracteristicile şi componentele sistemelor Grid; • Dezvoltarea modelului de simulare inovator ce include toate componentele necesare pentru descrierea unei game bogate de tehnologii de sisteme distribuite, furnizând mecanismele pentru descrierea traficului concurent de reţea, pentru evaluarea diverselor strategii de replicare a datelor şi pentru analizarea procedurilor de planificare a sarcinilor de lucru; 44 • Prezentarea unei analize originale a celor mai importante instrumente de simulare pentru sisteme distribuite existente la ora actuală, împreună cu demonstraţia superiorităţii conceptelor inovatoare de simulare ce reprezintă rezultatul cercetării prezentate în lucrarea de faţă; • Validarea propunerilor prin proiectarea şi implementarea unui simulator, precum şi prin optimizarea acestuia; • Implementarea unor soluţii de optimizare software inedite ce au fost implementate în aplicaţia de simulare şi care au dus la posibilitatea modelării viabile a unor sisteme de foarte mari dimensiuni, compuse dintr-un număr impresionant de resurse şi aplicaţii distribuite rulând concurent în mediile oferite de acestea, printre care menţionăm adoptarea unor algoritmi şi structuri de ultimă generaţie în procesele de proiectare şi implementare a aplicaţiei; • Proiectarea şi implementarea componentelor şi a modelelor de simulare; • Dezvoltarea soluţiilor de vizualizare şi interpretare ştiinţifică a rezultatelor experimentelor de simulare; • Evaluarea şi validarea aplicaţiei de simulare; • Modelarea şi testarea algoritmilor de planificare; • Modelarea şi testarea procedurilor de replicare a datelor; • Evaluarea calităţii diverselor tehnologii de transfer de date prin modelare; • Folosirea monitorizării ca suport pentru modelarea sistemelor distribuite de mari dimensiuni; • Contribuţiile importante în procesul de creare a unuia dintre cele mai importante instrumente de monitorizare a sistemelor Grid, MonALISA. • Dezvoltarea unui sistem de agenţi, LISA, ce urmăreşte optimizarea aplicaţiilor prin metode de monitoritare, instrument dezvoltat pe baza rezultatelor de simulare obţinute şi care încorporează o serie de algoritmi, structuri de date şi tehnologii specifice implementării aplicaţiei de modelare; • Prezentarea rezultatelor obţinute în cadrul unui experiment de simulare complex ce urmăreşte validarea procedurilor de fizică şi a sistemelor distribuite de mari dimensiuni ce suportă schimbul de date în cazul experimentelor LHC. 7.2. Dezvoltări ulterioare Cercetările prezentate în această lucrare reprezintă puncte de plecare pentru continuarea studierii problematicii abordate. Principalele direcţii pe care intenţionez să le abordez se referă la includerea unor metode mai avansate de evaluare a strategiilor de utilizare a resurselor în sisteme de şi mai mari dimensiuni. O altă dezvoltare planificată se referă la folosirea noilor tehnologii Java pentru optimizarea performanţelor motorului de simulare şi la îmbunătăţirea interfeţei grafice a utilizatorului în scopul oferirii unui dialog mai prietenos şi util în realizarea şi rularea experimentelor de simulare. Alte dezvoltări mai includ şi adoptarea unor modele de securitate, de asigurare a toleranţei la defecte, precum şi a unor modele de reţele wireless. BIBLIOGRAFIE SELECTIVĂ 1. 2. Bagchi, S., “Simulation Of Grid Computing Infrastructures: Challenges and Solutions”, Proceedings of the 2005 Winter Simulation Conference, 2005. Bote-Lorenzo, M., Y. Dimitriadis, and E. Gomez-Sanchez, "Grid characteristics and uses: a grid definition", Tehnical Report CICYT, Univ. of Valladolid, Spain, 2002. 45 3. Boxma, O., G. Koole, and Z. Liu, “Queueing-Theoretic Solution Methods for Models of Parallel and Distributed Systems”, Performance Evaluation of Parallel and Distributed Systems – Solution Methods, CWI, Amsterdam, 1994. 4. Brunengo, A., “LAN and WAN tests with Objectivity 5.1”, 1999. 5. Buyya, R., M. Murshed, D. Abramson, “A Deadline and Budget Constrained Cost-Time Optimisation Algorithm for Scheduling Task Farming Applications on Global Grids”, Proc. of the 2002 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’02), Las Vegas, USA, 2002. 6. Cameron, D. G., “Replica Management and Optimisation for Data Grids”, PhD Thesis, University of Glasgow, January 2005. 7. Dobre, C. M, R. Voicu, A. Muraru, I. C. Legrand, “A Distributed Agent Based System to Control and Coordinate Large Scale Data Transfers”, the 16th International Conference on Control Systems and Computer Science, Bucharest, Romania, 2007. 8. Dobre, C. M., “Advanced data structures for discrete event simulation events”, Master degree diploma thesis, Bucharest, Romania, 2004. 9. Dobre, C. M., C. Stratan, “MONARC 2 - distributed systems simulation”, the 14th International Conference on Control Systems and Computer Science, Bucharest, Romania, 2003, Bucharest. 10. Dobre, C. M., C. Stratan, “MONARC Simulation Framework”, RoEduNet International Conference, Timisoara, Romania, 2004. 11. Dobre, C. M., R. Voicu, A. Muraru, I. C. Legrand, “An Agent Based Framework to Monitor and Control High Performance Data Transfers”, In Proc. of IEEE EUROCON 2007, Warsaw, Poland, September 2007. 12. Dobre, C. M., R. Voicu, C. Stratan, C. Cirstoiu, L. Musat, I. C. Legrand, “A Simulation Study for T0/T1 Data Replication and Production Activities”, the 15th International Conference on Control Systems and Computer Science, Bucharest, Romania, 2005. 13. Dobre, C. M., V. Cristea, “A Simulation Model for Large Scale Distributed Systems”, In Proc. of the 4th International Conference on Innovations in Information Technology, Dubai, November 2007. 14. Dobre, C.M., R. Voicu, C.Stratan, “LISA (Localhost Information Service Agent)”, CSCS15, 2004. 15. Foster, I., “Globus Toolkit Version 4: Software for Service-Oriented Systems”, J. Comput. Sci. & Technol., July 2006. 16. Foster, I., “What is the grid? a three point checklist”, Grid Today, July 2002. 17. Foster, I., C. Kesselman and S. Tuecker, “The Grid 2: Blueprint for a new Computing Infrastructure”, Morgan Kaufmann, 2004. 18. Foster, I., C. Kesselman, and S. Tuecke, “The Anatomy of the Grid: Enabling Scalable Virtual Organizations”, Int. J. Supercomp. App., 2001. 19. Foster, I., C. Kesselmen, J. Nick, and S. Tuecke, “The Physiology of the Grid - An Open Grid Services Architecture for Distributed Systems Integration”, IEEE Computer 35, Open Grid Service Infrastructure WG, Global Grid Forum. 2002. 20. Frantz, F. K., “A taxonomy of model abstraction techniques:”, Proceedings of the 1995 Winter simulation Conference, USA, 1995. 21. Fujimoto, R. M. , “Parallel discrete event simulation: Will the field survive?”, ORSA Journal on Computing, 1993. 22. Gibson, W., “FLASH vs (Simulated) FLASH: Closing the Simulation Loop”, ACM Transactions on Modeling and Computer Simulation, 2000. 23. Grimshaw, A., “What is a grid?”, Grid Today, December 2002. 46 24. Guanhua, Yan, “Improving Large-Scale Network Traffic Simulation with Multi-Resolution Models”, Dartmouth Computer Science Technical Report, September 2005. 25. Iosup, A., “Monitoring Methods and Performance Analysis Criteria in Grids for Physical Process Control”, Master of Science thesis, Bucharest, July 2004. 26. Legrand, I. C., C. Cirstoiu, S. McKee, H. Newman, R. Voicu, C. M. Dobre, “VINCI : Virtual Intelligent Networks for Computing Infrastructures”, In Proc. of Computing for High Energy Physics, Mumbai, India, February 13-17, 2006. 27. Legrand, I. C., C. M. Dobre, C. Stratan, “MONARC 2 – Distributed Systems Simulation”, Technical Report, Switzerland, 2003. 28. Legrand, I. C., C. M. Dobre, R. Voicu, C. Cirstoiu, “LISA (Local Host Information Service Agent)”, the 15th International Conference on Control Systems and Computer Science, Bucharest, Romania, 2005. 29. Legrand, I. C., H. Newman, C. M. Dobre, C. Stratan, “Monarc Simulation Framework”, International Workshop on Advanced Computing and Analysis Techniques in Physics Research, Tsukuba, Japan, December 2003. 30. Legrand, I. C., H. Newman, F. van Lingen, C. M. Dobre, C. Stratan, K. Paschen, “A Processes Oriented, Discrete Event Simulation Framework for Modelling and Design of Large Scale Distributed Systems”, In Proc. of the IX International Workshop on Advanced Computing and Analysis Techniques in Physics Research, Tsukuba, Japan, December 1-5, 2003. 31. Legrand, I. C., H. Newman, R. Voicu, C. Cirstoiu, C. M. Dobre, “MonALISA: An Agent based, Dynamic Service System to Monitor, Control and Optimize Grid based Applications”, In Proc. of Computing in High Energy and Nuclear Physics CHEP’04 , Switzerland, 2004. 32. Lin, H., “Economy-Based Data Replication Broker Policies in Data Grids”, Bachelor of Computer Science paper, 2005. 33. Lin, H., J. H. Abawajy, R. Buyya, “Economy-Based Data Replication Broker”, eScience, 2006. 34. Newman, H. B., “Networking for High Energy and Nuclear Physics”, ICFA SCIC Report, February 2005. 35. Paxson, V., and S. Floyd, “Why We Don’t Know How To Simulate The Internet”, Proceedings of the 1997 Winter Simulation Conference, December 1997. 36. Pop, F. C. M. Dobre, G. Godza, V. Cristea, “A Simulation Model for Grid Scheduling Analysis and Optimization”, Parelec, 2006. 37. Pop, F., C. Grigoras, A. Costan, C. M. Dobre, V. Cristea, “Current technologies in Grid systems”, In Proc. of the medioGrid Conference, Cluj Napoca, Romania, 2006. 38. Quetier B., and F. Capello, “A survey of Grid research tools: simulators, emulators and real life platforms”, IMACS Survey, 2005. 39. Riley, G. F., and M. H. Ammar, “Simulating large networks – how big is big enough?”, Proceedings of First International Conference on Grand Challenges for Modelling and Simulation, January 2002. 40. Sargent, R.G., “Verification and Validation of Simulation Models”, Proceedings of the 2005 Winter Simulation Conference, 2005. 41. Sulistio, A., C. S. Yeo, R. Buyya, “A taxonomy of computer-based simulations and its mapping to parallel and distributed systems simulation tools”, Software – Practice and Experience, 2004. 42. Takefusa, A., O. Tatebe, S. Matsuoka, Y. Morita, ”Performance Analysis of Scheduling and Replication Algorithms on Grid Datafarm Architecture for High-Energy Physics Applications”, HPDC, 2003. 43. Venugopal, S., R. Buyya, K. Ramamohanaro, “A Taxonomy of Data Grids for Distributed Data Sharing, Management and Processing”, 2006. 47
Documentos relacionados
Vezi rezumatu - Carol Davila
de fuziune intervertebrală pe un nivel. Apariţia durerii radiculare, face necesară intervenţia decompresivă la unul sau mai multe nivele. Odata cu evoluţia spre restabilizare, durerea rahialgică de...
Leia mais„Speculator“-ul [i prada lui Erorile lui Russell Kirk Cultura `n
„celuilalt“ etc. Perspectiva de a asculta `n urm\toarele trei zile discursuri emancipate de campania electoral\ ni s-a p\rut fantastic\, cum ni s-a p\rut la fel de extraordinar\ ideea de a uita, m\...
Leia maisAspecte de practică privind percheziţia şi arestarea preventivă
modificărilor Constituţiei României, adoptate prin referendum în octombrie 2003. Aceste modificări au transferat responsabilitatea de a emite mandate de percheziţie şi de arestare din sarcina procu...
Leia maisRezultatele selecției cadrelor didactice la programul de formare
Dambovita nr. 555/10.05.2013 pentru selectia cadreJor didactice in vederea participdrii program nalional de mentorat Ia programul de formare,,DE LA DEBUT LA SUCCES de inserlie profesionald a cadrel...
Leia mais