Risultati da 1 a 3 di 3
  1. #1
    Animatore L'avatar di NoxDaFox
    Data Registrazione
    07-11-04
    Località
    No man's land
    Messaggi
    2,635

    Predefinito Introduzione al calcolo distribuito e FAQ.

    Innanzitutto benvenuti!!

    Lo scopo di questo topic è introdurre i lettori al Grid Computing, includendo una breve ma essenziale FAQ list.


    Il computer è oramai divenuto un valido aiuto per la scienza, pensate quante scoperte sono state fatte grazie all'apporto del pc. Nella ricerca moderna la potenza di calcolo è uno strumento divenuto oramai essenziale. Qualsiasi esperimento o misurazione va rapidamente elaborato al computer e catalogato.

    Tuttavia vi sono ricerche scientifiche che richiedono una potenza di calcolo impossibile da raggiungere anche per i supercomputer più moderni, basti pensare alla tridimensionalizzazione e rispettiva catalogazione delle migliaia di proteine che si trovano all'interno di un corpo umano... Inoltre spesso i centri di ricerca non possono nemmeno permettersi tali macchine.


    Cos'è il Calcolo Distribuito?
    Immaginate di prendere migliaia di computer, collegati l'un l'altro tramite Internet, e di farli lavorare insieme... Otterrete un "supercomputer" la cui potenza di calcolo dipende dal numero stesso di PC che lo compongono... Un po' come un formicaio

    Dividendo una mole di dati da calcolare in tanti pacchetti, meglio noti come Work Units (WU), e distribuendola fra migliaia di PC messi a disposizione da volontari, i centri scientifici sono in grado, tramite appositi programmi, di ottenere una potenza di calcolo impressionante risolvendo molti problemi scientifici in pochissimo tempo e a costo zero.


    Questo è il principio base del calcolo distribuito. Sviluppato nella seconda metà degli anni novanta con il progetto SETI@home vide in pochi anni il moltiplicarsi dei centri di ricerca che vi aderirono.

    Al giorno d'oggi i progetti attivi sono decine. Per una breve descrizione di quelli seguiti dal TGM Team vi rimando a questo topic.

    Se invece volete approfondire:
    cd secondo Wikipedia
    sempre Wikipedia
    In pratica?
    Il tutto consiste semplicemente nel "prestare" il proprio computer alla ricerca.
    Tramite un client semplicissimo da configurare, i centri di ricerca saranno in grado di inviare al proprio computer una serie di pacchetti (chiamati Work Units, WU) che saranno automaticamente elaborati dalla macchina quando noi non la utilizziamo...
    Quando la macchina finisce di elaborare la WU la rispedisce al centro di ricerca che la catalogherà e la aggiungerà alle altre...



    Per aggiungere un po' di pepe alla cosa, ciascuna WU correttamente portata a termine attribuirà all'utente che l'ha elaborata un punteggio... Tale punteggio serve per creare una graduatoria aggiornata costantemente dei migliori utenti e dei migliori Teams di ricerca...
    Si sa che dove c'è competizione migliorano le prestazioni...

    Vi sono migliaia di team in sana competizione tra loro...
    Poteva mancare un team tutto nostro??
    Ci possiamo fidare??
    Tutti i progetti seguiti dal TGM Team sono ASSOLUTAMENTE NO PROFIT.
    I programmi utilizzati sono ASSOLUTAMENTE PRIVI DI VIRUS SPYWARE etc.

    Il tutto è per il bene della scienza, non avrebbe senso speculare su queste cose.
    Purtroppo l'unico limite del calcolo distribuito è la difficoltà dello stesso a diffondersi fra gli utenti, vuoi per l'ignoranza della cosa, vuoi per la malfidenza delle persone...
    Ultima modifica di NoxDaFox; 29-11-07 alle 19:35:08

  2. #2
    Animatore L'avatar di NoxDaFox
    Data Registrazione
    07-11-04
    Località
    No man's land
    Messaggi
    2,635

    Predefinito Re: Introduzione al calcolo distribuito e FAQ.

    Ma come funziona nel dettaglio?
    Un processore moderno è in grado di fare milioni di operazioni al secondo (il portatile da cui scrivo fa circa 7000 milioni di operazioni al secondo).
    Alcune operazioni sono necessarie al mantenimento del computer e sono richieste dal sistema operativo stesso (operazioni di routine), altre sono richieste da voi, quando ad esempio premete un tasto o eseguite un programma.


    La maggior parte purtroppo finiscono a far parte dell'idle time (cazzeggiamento del processore), poichè una CPU non può stare ferma, se non ha nulla da fare viene occupata con cicli a vuoto. Immaginate di scrivere un testo, ad ogni pressione di un tasto corrispondo X operazioni (facciamo per esempio 10)... Se siete veramente veloci quanti tasti premete al secondo?? 4? 5?? sarebbero 50 operazioni...dei restanti milioni cosa ne fate??


    Il calcolo distribuito opera sul vostro computer in due modalità, "full time" o "screensaver".

    La CPU amministra le operazioni in base alla loro priorità (più altri fattori), la modalità "full time" fa in modo che l'idle time del processore venga occupato con le elaborazioni del programma. La gestione ovviamente è dinamica: all'aumentare delle operazioni richieste da voi e dal sistema operativo diminuiscono quelle dedicate al programma. In questo modo il PC continua a lavorare sulle WU anche mentre voi siete davanti al computer senza però che voi notiate alcunchè.


    La modalità "screensaver" semplicemente fa in modo che il programma elabori solo dopo una data quantità di tempo (configurabile) che non toccate nè tastiera nè mouse. Mentre voi state usando il PC il programma resta aperto ma senza elaborare nulla.



    Come influisce il Cacolo Distribuito sul mio PC?
    Discorso molto complesso e articolato...



    Per quanto riguarda le prestazioni non noterete alcun calo.

    Ovviamente se impostate la modalità "screensaver" non potete notare nulla visto che il client lavorerà solo in vostra assenza. Se impostate la modalità "full time" il sistema operativo attribuirà al client la priorità minima eseguendo qualunque altra operazione PRIMA di quelle richieste dal client stesso, ciò vuol dire che potrete fare qualsiasi cosa, dal giocare al navigare in internet senza avvertire nulla.

    Su linux purtroppo non avviene la stessa cosa, penso dipenda dal modo in cui il sistema operativo gestisce le priorità. Si notano rallentamenti nel caso siano inizializzate operazioni che richiedono potenza di calcolo elevata, ma si può sempre mettere il progetto in pausa il tempo necessario. (Quanto detto si basa su mie esperienze personali, nel caso mi sbagli smentitemi pure, e magari spiegatemi via PM come risolvere il problema).



    Passiamo ai consumi.
    Qua se ne dicono tante. Che si consumi di più non c'è dubbio, sul quanto il discorso diventa molto più complicato.

    Bisognerebbe valutare molti fattori: la CPU, l'alimentatore e la scheda madre, l'utilizzo che fate solitamente del PC, quanto tempo lo lasciate acceso...
    A grandi linee vi posso dire che, a pari quantità di tempo che resta acceso, non dovreste notare grandi differenze nella bolletta...

    Certo poi se avete un dual quad-Xeon, o se tenete il PC acceso più a lungo di prima per scalare le graduatorie... Ma sono soldi ben spesi



    Ultimo ma non meno importante: L'usura del PC

    Lasciate che vi dica che se un microcircuito è ben conservato (corretta dissipazione, tensione costante, ambiente adatto etc) difficilmente si rompe, e sicuramente non si consuma... Perchè un oggetto si consumi deve avere parti meccaniche in movimento che sono sottoposte ad attrito...

    Un esempio di parte del PC sottoposta ad usura è l'hard disk... I programmi di Calcolo Distribuito utilizzano raramente tale componente, di solito per immagazzinare le WU complete o quelle non ancora avviate. Le richieste di accesso all'hard disk da parte di tali programmi quindi saranno più o meno un 1% rispetto alle richieste generali.

    Ultima modifica di NoxDaFox; 16-03-09 alle 23:13:57

  3. #3
    Animatore L'avatar di NoxDaFox
    Data Registrazione
    07-11-04
    Località
    No man's land
    Messaggi
    2,635

    Predefinito Re: Introduzione al calcolo distribuito e FAQ.

    Posso utilizzare anche la scheda video per elaborare?
    La risposta è: sì è ora possibile (solo per alcuni progetti) avvalersi della scheda video per elaborare le WUs ottenendo prestazioni nettamente superiori rispetto ai processori più spinti.

    Vediamo il perchè:

    Le schede video sono strutturate per elaborare una quantità di dati spaventosa nel minor tempo possibile. Le loro prestazioni in FLOPs (Floating Point Per Second = Operazioni in virgola mobile al secondo) sono ben superiori a quelle delle CPU.... Come mai?


    La differenza risiede nelle due differenti architetture utilizzate:


    Per intenderci le ALU (Arithmetic Logic Unit, le aree verdi) sono le sezioni dedicate alla computazione, maggiore è lo spazio ad esse dedicato maggiore sarà la potenza di calcolo del chip.

    Come potete notare la CPU ha un'area minore dedicata all'elaborazione, questo perchè è una unità di elaborazione "generica", deve processare una tipologia di dati molto variegata, inoltre deve coordinare diverse operazioni, quindi l'area dedicata ai registri è molto più estesa.

    La GPU invece deve semplicemente elaborare un "mare" di dati ... Quindi viene divisa in diverse "Catene di montaggio" (pipelines) (non me ne vogliano gli informatici, sto cercando di essere il più semplice possibile ) per massimizzare le prestazioni.

    Dove sta il problema?? Proprio nel fatto che la GPU non è strutturata (a livello Software) per eseguire calcoli generici, i Drivers sviluppati sono immaturi su questo fronte. Perciò i lavori procedono molto a rilento. Considerate che una VGA è in grado di offrire prestazioni dalle quattro alle dieci volte superiori ad una CPU.

    Maggiori informazioni:
    GPGPU(General Purpose Graphic Processing Units)
    per i wikipediani: Wiki GPGPU

    Aggiornamenti sul GPGPU
    Per i possessori di schede video NVIDIA vi sono ottime notizie, BOINC (dalla versione 6.4.5) supporta ufficialmente le librerie CUDA sviluppate appositamente per tale scopo, è necessario avere una scheda video compatibile con le librerie e i driver superiori ai 180.xx. Inoltre è sempre possibile partecipare a Folding@home, progetto a sè stante.


    Per i possessori di schede video ATI per ora l'unico progetto compatibile è
    Folding@home, per vedere BOINC sulle ATI bisogna ancora attendere.

    Ultima modifica di NoxDaFox; 16-03-09 alle 23:14:13

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice HTML è Disattivato