Experiment Grila este pe dietă; Fraunhofer IAO - BLOG
După ce World Wide Web a revoluționat internetul în anii 1990, ne confruntăm cu o altă dezvoltare revoluționară de câțiva ani acum: calculul pe rețea (de.wikipedia.org/wiki/Grid-Computing). În calculul cu rețea, computerele descentralizate și clusterele de calcul sunt combinate într-un „supercomputer virtual” prin internet. Aceasta oferă acces direct la resursele rețelei, cum ar fi calculatoare, stocare, instrumente științifice și experimente, aplicații, date și senzori.

Începând cu 2001, IAO operează rețeaua de resurse Fraunhofer (www.fhrg.fraunhofer.de) împreună cu alte câteva institute Fraunhofer. De când a fost lansată inițiativa D-Grid (www.d-grid.de/) în 2005, Fraunhofer IAO a fost, de asemenea, implicată în diverse domenii ale calculului de rețea. Accentul este pus pe îmbunătățirea utilizabilității serviciilor, îmbunătățirea arhitecturii de securitate și dezvoltarea modelelor de afaceri pentru furnizorii de resurse și servicii.
În acest context, am dori să vă prezentăm o abordare experimentală a grilei: LiDiC - Computere ușoare distribuite. Cu această abordare, se creează un mediu de rețea „ușor” utilizând browsere de internet normale, cu JavaScript activat. Oricare dintre aceste browsere sunt direcționate către o anumită adresă URL, iar pachetele de lucru sunt transmise browserului utilizând tehnologia JavaScript și AJAX. Pachetele de lucru sunt procesate de browsere și rezultatele sunt apoi trimise înapoi la server.
Marele avantaj al acestei abordări este că nu necesită instalarea unui client, astfel încât, spre deosebire de alte proiecte de rețea, cum ar fi SETI @ home sau World Community Grid, fiecare utilizator al internetului poate participa imediat la calcule. Datorită abordării ușoare, s-ar putea spune: LiDiC este un mediu de rețea pe dietă!
Figura 1 arată structura subiacentă: un master master creează pachetele de lucru distribuite către browserele web disponibile (lucrători) de către un server HTTP. Rezultatele lucrătorilor sunt trimise înapoi la server, care apoi le pune la dispoziția masterului de job.
Cum poate o astfel de rețea să fie utilizată cu succes în viața digitală de zi cu zi de către companii și persoane fizice? O posibilitate ar fi să-l utilizați intern, deoarece în zilele noastre multe computere rulează procesoare multicore care nu sunt utilizate la maximum de aplicațiile de birou de zi cu zi. Browserele moderne acceptă alocarea eficientă a ferestrelor deschise către diferite nuclee de procesor, ceea ce înseamnă că fiecare angajat poate calcula grila internă a companiei într-una sau mai multe ferestre de browser fără ca aceasta să aibă un impact asupra performanței aplicațiilor rămase sau să navigheze pe internet.
Fig. 1
O utilizare optimă a resurselor informatice ale companiei ar fi rezultatul și, datorită abordării ușoare, nu ar fi necesară instalarea unei aplicații client pe toate computerele angajaților.
În plus, au existat încercări izolate de a utiliza o astfel de rețea comercial. Un exemplu în acest sens este compania PluralProcessing, care oferă bani operatorilor de site-uri web dacă integrează un applet Java în site-ul lor web. Folosind acest applet, calculele distribuite sunt apoi efectuate în browserul web al vizitatorului site-ului.
Abordarea prezentată în acest articol ar trebui privită ca un experiment. În timpul funcționării productive, trebuie prelucrate sarcini mari și trebuie luate în considerare și aspectele de sincronizare și siguranță. În plus, protocolul HTTP ales și calculele în JavaScript au ca rezultat o cheltuieli generale mari, motiv pentru care abordarea poate deveni rapid ineficientă dacă este aplicată domeniului problemei greșit. Cu toate acestea, infrastructura de rețea bazată pe browser oferă posibilitatea tentantă că, potențial, fiecare computer cu o conexiune la Internet poate contribui la timpul de calcul al unei rețele.
Detalii despre experiment
Am ales calculul celei mai scurte căi ca sarcină pentru experiment
între un nod de pornire și orice nod dintr-un grafic direcționat (de.wikipedia.org/wiki/Graphentheorie). De obicei, algoritmul Dijkstra [Dijkstra59] este utilizat pentru a căuta distanța minimă într-un grafic direcționat, dar nu poate fi paralelizat suficient. De aceea am implementat prima căutare largă propusă într-o discuție Google (nl.youtube.com/watch?v=BT-piFBP4fE), în care paralelismul este introdus prin modelul MapReduce [Dean04].
Fig. 2
Cu acest algoritm, masterul de job execută mai multe iterații de căutare pe lățime și determină astfel optimul global al celor mai scurte căi din grafic. Ca set de date folosim un grafic generat sintetic de „Small-World“ conform [Wenzel02] cu 100.000 de noduri și 400.218 margini direcționate (vezi Figura 2).
[Dijkstra59] E. W. Dijkstra. O notă despre două probleme legate de grafice. Matematică numerică 1. pp. 269-271. 1959.
[Wenzel02] L. Wenzel. Cât de mică este lumea. Trusa de scule. 2002.
[Dean04] J. Dean, S. Ghemawat. MapReduce: Prelucrare simplificată a datelor pe clustere mari. OSDI. 2004.