Nu stiu cum se face, dar mereu cand scriu un post nou, ma pot lega cumva de postul anterior
O scurta introducere.
Calculatoarele personale din ziua de azi au o putere de calcul mult peste ce era considerat posibil in urma cu 30, 20 sau chiar 10 ani. Nu atat din punct de vedere al puterii individuale a fiecarui calculator, care a devenit previzibila de la o vreme, cat puterea de calcul rezultata din suma totala a lor. Problema este ca din toata puterea asta colosala de calcul, o buna parte ramane nefolosita. Majoritatea calculatoarelor isi petrec in medie 85% din timpul cat sunt pornite fara a face nimic. Multe din cele care nu prea apuca sa stea fara sa faca nimic sunt pc-uri cu … setari proaste de securitate ce fac parte din botneturi, care nu numai ca nu fac nimic util, ci chiar dauneaza (am citit eu asta undeva, credeti-ma pe cuvant). In rest, majoritatea pc-urilor sunt folosite pentru divertisment. Joci ceva, te uiti la un film pe youtube, asculti o piesa, citesti stirile… totul intra la categoria divertisment.
Nu va lasa o imagine de copil rasfatat imaginea utilizatorului obisnuit, cand stiti ca are la indemana rezultatul muncii a zeci de ani de inovatie in domeniul tehnologic, o putere de calcul la care oamenii de stinta de acum 40 de ani nu puteau decat visa, deoarece ar fi ocupat probabil cat o camera, iar aceeasi putere de calcul acum e ingramadita intr-un mic laptop, dar e folosita pentru ca cei mai multi dintre noi suntem… plictisiti? Mie nu-mi lasa exact o imagine de copil rasfatat (ok, ma simt putin cu musca pe caciula… considerand cat timp mi-am petrecut jucandu-ma, nu cred ca pot sa am o parere obiectiva). Dar totusi, e doar semi-rasfatat. Omul cauta sa obtina o placere, o distractie din orice inventie. Privit din punct de vedere psihologic, ar trebui sa fie destul de normal. Atata vreme cat avem ce manca, unde locui, cu ce sa ne imbracam, ce ne ramane de facut? Trebuie sa ne vina cheful sa facem ceva, caci in absenta nevoii nu prea ne miscam fundul. Dar nu se poate combina divertismentul cu utilul?
Pentru ca nu-mi place sa consider ca pierd tot timpul si toate resursele pe care le am la dispozitie fara sa fac si eu ceva care sa aiba ceva utilitate, m-am interesat de celebrul proiect folding@home al celor de la Standford University. Mai auzisem eu de folding@home, dar initial credeam ca e ceva legat de infasurat si impaturit. Daca s-ar fi numit “protein folding@home”, poate ma prindeam de prima oara cand am auzit despre ce e vorba.
Ce este folding@home?
Pe scurt, in caz ca nu stiti, e un proiect distribuit care urmareste sa inteleaga prin simulari dezvoltarea multor boli care afecteaza celulele umane. Mult mai multe informatii sunt, ca de obicei, pe wikipedia, precum si pe site-ul dedicat din cadrul universitatii.
Cine si cum participa?
Pai… cam toata lumea. Inclusiv subsemnatul
. Tot ce trebuie sa faci este:
- sa ai un PC sau un PS3.
- sa downloadezi clientul lor pentru procesoare x86 sau (mult, mult, mult) mai bine cel pentru placi grafice (ATI de la seria 2000 in sus, sau nVidia… cred ca orice suporta CUDA). Daca ai PS3 cu versiune mai noua de 1.6, il ai deja.
- sa instalezi programul ![]()
- sa rulezi programul si sa lasi pc-ul pornit sa lucreze in interesul stiintei.
Cat te costa?
Nu te costa nimic direct, dar indirect tot te costa ceva: curent electric. Cat va fi consumat, va depinde de eficienta sistemului. In cazul meu, consumul a crescut de la 148W in idle (ceea ce include un monitor de 22″ de aprox 40W si o lampa de 17W) pana la 215W in timpul calculelor. Fara lampa si monitor ar fi cam 165W. Nu e chiar putin, dar acum ca e iarna, mai fac si eu mai cald in camera cu ocazia asta, precum Sergiu.
Observatii personale
Pe cat de nobil pare sa fie proiectul acesta (zic pare, deoarece nu pot fi sigur niciodata ca de fapt nu e o conspiratie, si ceea ce incearca sa calculeze astia sunt toate posibilitatile de a-mi gasi parola si sparge casuta postala de yahoo), tot mi se pare ca e o pierdere de vreme sa rulezi proiectul asta pe un procesor obisnuit… sau dual-core, sau quad, hexa, sau octa-core. Nu prea isi are rostul, deoarece exista alternative mult mai bune.
O scurta privire aruncata pe statistile client (vezi aici) e suficienta pentru a observa ca asta e inca un task la care un procesor masiv paralel se descurca exponential mai bine. Nici nu inteleg de ce pagina principala contine downloadul pentru CPU cand procesoarele grafice contribuie cu peste 60% din rezultate, iar consolele cu 32% (cel putin cam astea erau datele cand am scris). Cred ca ar trebui sa fie invers.

Jocul Clientul de folding@home ofera si posibilitatea de a iti alatura un nume efortului tau ca sa stii si tu la finalul zilei, ca ai ajutat sa calculezi sa zicem 3 posibilitati de combinare si sa-ti vezi numele printre contribuitori. De asemenea iti ofera posibilitatea de a te alatura unui clan unei echipe si de a vedea un clasament pe echipe. Daca te uiti dintr-un anumit unghi… parca observi un joc! Ai un id, ai un clasament ca sa te dai mare, faci puncte in fiecare zi in functie de cat efort mai adaugi la proiect… e ca un joc.
Si ca in orice joc, trebuie sa-mi prezint si eu personajul de RPG.
Acum am 19 kill-uri, 9921 de gold si sunt pe locul 48 din 214 in clan. (Nu prea am inteles cum se acorda gold-ul asta, ca altii au mai multe kill-uri decat mine, dar inca sunt noob). Iar clanul meu (Team Romania) e pe locul 491 din 152018. Cand m-am alaturat eu clanului era pe locul 501 parca. Asemenea oricarui jucator, ma mandresc cu faptul ca de cand sunt in clan, l-am ridicat putin. Si asta intr-o singura saptamana pe un ATI Radeon 3870.
Vrei si tu sa te alaturi clanului? E simplu. Tot ce trebuie sa faci este sa pui id-ul echipei (75559 pt. Team Romania) la setarile din clientul de folding@home. Nu exista restrictii.

Cei care aduc cel mai mare aport sunt cei cu placi video puternice si cei cu console de jocuri. Adica gamerii. Ma intreb: nu ar fi fost intr-o stare mai avansata azi proiectul daca se mergea de la inceput pe ideea de benchmark pentru placi video?. Un proiect stiintific deghizat intr-un joc. Genial. 3dmark arata mai frumos, dar nu ajuta la cercetarea cancerului, uite, deja o idee de marketing. Un motiv mai simplu pentru upgrade pe urma: “tata da-mi si mie niste bani sa… ajut omenirea sa cerceteze mai bine”.
Intrati si voi in joc?
Meserie. Ma bag. Si asa un core sta degeaba, mi-ar fi ciuda sa se consume numai pe Vista.
Cand lucram la Dynamic, lasam calculatorul si peste weekend in full load cu alt proiect Boinc: Rosetta. Cred ca au platit ceva din cauza mea. Am fost insa baiat fain si stingeam monitorul, care era cu tub. Acum nu am mai participat. La scoala nu pot sa instalez, iar eee-ul meu saracu’ nu cred ca trage el speranta sa salveze lumea de cancer.
Mi se pare ca la un moment dat citisem ca se urmareste (sau s-a realizat chiar) un joc interactiv, care in spate face folding, iar oamenii se joaca pe bune. nu mai gasesc insa linkul.
Eu sunt vechi rulator de SETI@home si LHC@home. Am rulat si Rosetta, dar cred ca imi crapa sistemul uneori din cauza lui. Intreaga platforma BOINC ma inspira. Incerc sa promovez in firma ideea ca simulatoarele pe care le construim pot fi distribuite asemenea proiectelor BOINC. De fapt BOINC este open source si poate fi instalat in intranet. Luci, te-am intrebat de studenti dornici de practica sau teme de diploma in ideea de a construi un prototip de simulator distribuit pentru a convinge sefii ca ideea e viabila. Pacat ca nu ai candidati potriviti.
@Palerica nu am auzit pana acum de joc cu folding in spate. Sa nu uiti sa postezi si aici daca dai de link pana la urma.
@Alex, Gusty: Cred ca asta cautati: http://fold.it/portal/
@Bogdan: exact. de fapt jocul incearca sa se foloseasca de pattern-matching-ul uman, pentru ca foldingul sa nu o mai ia razna uneori. mi se pare extrem de interesant.
Gusty, eu cred ca totul sta in numere. Diferentele intre rularea unor task-uri pe un multi-core si rularea pe un sistem paralel distribuit (cluster sau grid) sunt numeroase. Multi-core-ul are avantaje clare pentru un numar mic-mediu de procese lansate simultan. Costuri de genul separarea task-urilor in batch-uri care sa fie trimise pe retea, trimiterea lor pe retea (ptc sa nu uitam ca transferul pe retea este groaznic de lent, fata de transferul in-memory/pe magistrala) apoi recompunerea rezultatelor primite de la parti sunt foarte mari pentru cluster/grid, si foarte mici pentru multi-core.
Pe de alta parte, avand la dispozitie 2000 de procesoare simple, un multi-core incepe sa piarda teren. Implementat cum trebuie, un sistem distribuit care stie sa programeze si sa imparta task-urile celor N (cu N suficient de mare) calculatoare din lume disponibile la un moment dat are la dispozitie o putere foarte mare de calcul, putere care da rezultate ce acopera costurile induse de faptul ca cele N core-uri sunt la mari distante geografice.
Acum, pentru cazurile de fata mentionate, nu stiu exact cat succes au proiectele astea. Sigur, sunt laudabile, iar arhitectura si modul de realizare al server-ului si a clientilor mi se pare foarte interesant, dar parca nu am auzit inca niciun rezultat notabil.
Mersi de link. Am incercat jocul… nu e foarte captivant, dar ideea ca e un joc e ceva.
Legat de succesul proiectelor… exista, dar nu imediat. Dureaza pana creste reteaua de calculatoare, performanta clientului atat ca software cat si ca hardware, etc. Despre folding@home am citit ca a cunoscut o crestere exponentiala. Majoritatea efortului a fost depus in primii 5 ani de proiect (2000-2005) iar din 2005 pana azi, rezultatele au inceput sa le depaseasca mult asteptarile, dat fiind faptul ca de atunci au clienti de GPU.
Chiar recent scriau pe site la stiri un subiect pe tema asta. Asa e, totul sta in numere, iar alea tot cresc.
De curiozitate: cum ai masurat consumul?
Mi-am cumparat de prin noiembrie un aparat-stecher care masoara consumul ce trece prin el. Din ce am mai masurat pana acum, consumul pare sa fie destul de precis exprimat.
Uite si o poza.