El Volunteer Computing ve d'una idea bastant senzilla. Molta gent té ordinadors, i molta d'aquesta gent no els hi treu tot el suc que podria, per tant, estaria molt bé aprofitar tota aquesta potència restant oi ? doncs es tracta d'això.
BOINC és un software molt senzill que s'instal·la en un ordinador, hi ha versions per Windows, GNU/Linux, BSD's, etc. Un cop el software està instal·lat l'usuari s'autentifica i s'apunta a un o diversos projectes. Ja està.
El que passa llavors és que aquest software contacta amb els servidors de BOINC i demana feina. Els servidors li enviaran uns "paquets" amb un o diversos treballs de computació, un cop rebuts aquests l'ordinador començarà a processar-los. Una vegada s'hagi calculat el resultat, aquest s'enviarà de nou als servidors i demanarà més treballs. Tot això de forma totalment transparent a l'usuari i sense que aquest ho noti.
Boinc prové de SETI@Home , un programa que bàsicament va crear aquest esquema per analitzar ones de ràdio provinents de l'espai per intentar trobar vida extra terrestre. Més tard va aparèixer Folding@Home un programa de caire més... biològic per processar plegaments de mol·lècules per l'investigació de malalties i fàrmacs. El problema és que cada projecte utilitzava el seu propi client, i a mesura que anaven sortint més projectes s'havia d'anar instal·lant els seus clients. Finalment es va decidir unificar el format i tenir un sol programa a on et podies apuntar a diferents projectes, així és com va nèixer BOINC.
Passos ràpids per habilitar una conta
La manera més fàcil d'entendre com funciona (en general) és veure-ho funcionant. El software es pot descarregar des de la pàgina de BOINC, o en cas de Linux del gestor de paquets. El següent cas és triar els projectes en els quals volem participar. N'hi ha molts, aquí podeu trobar-ne una llista, n'hi ha per tots els gustos; problemes matemàtics, de salut, de recerca de vida alienígena...
Per cada projecte al que volem participar ens hi n'hem de donar d'alta a la seva pàgina, llavors ens donaran un nom d'usuari i una clau d'identificació que haurem d'introduir al programa (BOINC). De totes maneres, per fer-nos la vida més senzilla hi ha "paquets" o managers. Aquests són projectes com el World Community Grid, que és una iniciativa d'IBM que agrupa els projectes de BOINC que ténen a veure amb investigació mèdica i mediambiental. Si ens donem d'alta al WCG ens donem d'alta amb un sol identificador a una sèrie de projectes de BOINC, per tant és una forma bastant agradable de simplificar.
Per tant si algú li fa gràcia i vol provar-ho el més senzill és:
- Baixar-se el BOINC i instal·lar-lo.
- Donar-se d'alta al WCG
- Entrar l'identificador del WCG + la clau al BOINC.
Un cop a dins pots entrar a formar part d'equips. Es tracta de fer una competició sana de veure quin equip aconsegueix processar més paquets. Jo formo part de l'equip 'Catalunya', per tant, si voleu contribuir hi sereu molt benvinguts ;)
Com funciona
- Servidor de Fitxers. Cada servidor té una sèrie de fitxers que són les feines que ha de fer cada màquina. Lògicament aquests fitxers estan guardats en el servidor i són enviats quan toca a cada màquina que ha de processar-lo. Un cop el paquet s'ha processat és enviat de nou cap al servidor. El servidor, a més d'emmagatzemament té diverses funcions addicionals:
- Comprovació d'integritat: Quan es rep un resultat és necessari comprobar que el fitxer no sigui corrupte, per causa malintencionada o bé per error de transferència.
- Comprovació de correcció: En parlaré en pocs paràgrafs però cada tasca es processa més d'una vegada en més d'una màquina. Així doncs es rep el mateix resultat (o el que hauria de ser exactament el mateix resultat) en diverses ocasions. Per tant, si hem enviat una feina a processar a 5 màquines diferents hauriem de rebre 5 vegades el mateix resultat. En cas de que rebem resultats diferents cal descartar aquest resultat i tornar a calcular-lo.
- Organitzador (normalment s'utilitza el nom anglés, scheduler) Aquesta és el procés que decideix quina feina s'envia a quina màquina. Per tant, aquest és el procés que decideix quantes vegades rebrem un resultat. Aquesta redundància es per diversos motius:
- Seguretat: Podria ser que per qualsevol motiu un usuari volgués boicotejar un projecte (coses més estranyes s'han vist) i que per tant intentés enviar resultats incorrectes. Cal sempre comparar el resultat amb diverses màquines, mai ens en podem fiar d'una sola.
- Evitar colls de botella. És un punt molt relacionat amb l'anterior, pot ser que tinguem dependències entre tasques, i que per tant tinguessim una tasca molt important i sense el resultat d'aquesta no poguéssim continuar. El que no es pot fer en un entorn com aquest (Volunteer Computing) és fiar-nos de que una màquina enviarà el resultat del paquet que hem enviat. No controlem aquella màquina, i per tant, no ens podem fiar. És per això que sempre enviem el paquet més vegades de les que és necessari, i com més important és la tasca, més vegades l'enviem.
Programar la teva pròpia apliació
Una de les gràcies de Boinc és que pots programar la teva pròpia aplicació perquè corri en diverses màquines alhora, ja siguin dins la pròpia empresa o fins i tot en una xarxa més casolana. En principi no és senzill, ja que estem parlant d'una aplicació que ha de ser paral·lelitzable i que pugui còrrer en diverses plataformes, ja siguin Microsoft Windows, Mac o bé GNU/Linux.
La pàgina de Boinc posa a l'avast de qualsevol persona que ho vulgui fer una sèrie d'ajudes i tutorials per configurar l'entorn de desenvolupament així com programes d'ajuda.
No tinc experiència personal amb això, però realment m'agradaria sentir noticies d'algú que ho hagi intentat.
No hay comentarios:
Publicar un comentario en la entrada
Comenta: