AIUTO!!!!
Andiamo con calma e proviamo a ragionare un po.
In primis devo risottolineare che il progetto e' in fase di ricerca ed e' continuamente in lavorazione. Inoltre, e' cosi' complesso che quando aggiungo bugs posso stare settimane senza che nulla funzioni piu'. NON STO SCHERZANDO SOB SOB!
Attualmente ho almeno un bug e tanto per incasinare il tutto ho avuto ulteriore idea innovativa per la mutazione genetica che ho cominciato ad implementare a partire da questo w.e.
Ergo avro' ricompilato almeno 20-30 volte negli ultimi 3gg!!! Spesso si piantavano sia i brain_server che i brain_client.
Purtoppo a volte nonostante sono a conoscenza del bug devo necessariamente far partire piu' clients per scoprirlo in un tempo decente.... (si fa per dire sigh...).
Ho pochi gg prima di iniziare le mie lez e poi ri-sigh purtroppo la mia ricerca andra' a rilento.
Cerco adesso di rispondere laddove posso.
1)
dunque dunque...
ho avuto qualche problema a far partire l'applicazione (alla prima installazione di Linux potevo vedere solo il terminale, oggi alla seconda mi è partita anche l'interfaccia grafica e le cose sono un po' cambiate)
ho come l'idea che il linux virtualizzato stia utilizzando l'hard disk perchè se io da terminale richiedo al server di scaricare il demone ottengo più file... li memorizza automaticamente come demone.2, demone.3 e così via
a) Credo che quando gli cambio le proprietà e lo faccio diventare eseguibile devo riferirmi al .2 o al .3 etc etc altrimenti lui si riferisce sempre al primo file demone... è corretto?
b) quando ho spento la macchina virtuale e lo riaccesa i file erano ancora li: questo non dovrebbe accadere se non monto l'HD vero? o comunque... sarebbe meglio cancellarli vero? o... c'è quelche procedura automatica che si può inserire perchè vengano cancellati senza un mio intervento?
-Il terminale e' sufficiente, l'ambiente grafico e' inutile!!
-Tutti i files scaricati automanticamente li metto nella cartella /tmp laddove linux mette di default la "SPAZZATURA...". Se la dir /tmp e' in memoria non intacchi l'hd! (cosi' fa' il mio CD autobootante....).
Per quanto riguarda il .2 .3 non ho abbastanza info per capire a meno che te non abbia messo il demone
proprio in /tmp e forse li ti potrebbe creare questo problema... Altra possibilità e' che te abbia scaricato il demone come un utente e lo lanci come un altro (ad esempio root ed un utente semplice...)-
- Puoi cancellare tutto. Per fare girare il tutto basta il demone. Lui fa tutto il resto!!!
P.S. lo so che sembrano domande idiote ma io le faccio ugualmente
Nessuna domanda delle tue domande e' lontanamente idiota!!!
2) se non ho capito male si esegue demone in background ma così non si riesce mai a capire se gira o no (ad esempio oggi quando davo il comando "top" per vedere i processi in esecuzione mi stoppava demone... perchè?
Ho risolto facendo partire demone non in background ma in realtà non credo che questa sia stata la soluzione... semplicemente il server prima non andava e poi andava
Ecco... questo è un po' il mio problema... non si capisce quando gira o non gira o è pronto per girare ma dorme o cos'altro.... diciamo che non è immediato
Chissa' cosa e' successo! Probabilmente ero io che stoppavo il tutto

:D Cmq. Il demone conviene sempre lanciarlo in background.... Se si e' nella cartella dove c'e' il demone con i permessi di esecuzione (e possibilmente che questa non sia proprio la /tmp) basta scrivere: nohup ./demone > /dev/null 2> /dev/null&
e poi potete anche candidamente chiudere il terminale!!!
Per capire se gira tutto basta vedere la percentuale di CPU! E' sempre al massimo quando girano clients.
Se ad esempio fai top vedrai un sacco di brain_client. Se sono tutti allo 0% di CPU allora stanno dormendo!!
3) il linux virtualizzato si ciuccia meno di 1 GB per girare ma poi altri 2 se li ciucciano Windows e il VMWare. Ho dato 2 GB a win e 2 GB alla macchina virtuale, win mi dice che sono al limite dei 2 GB, linux invece lavora tranquillo... comunque va bene, questo PC è dedicato solo a brain
A parte il ringraziamento. Puoi tranquillamente mettere meno ram. Se ricordo bene semplicemente il tutto si aggiusta da solo lanciando meno brains!! Cmq viene usata tutta dai clients se non ci sono altri processi!!
4) cosa succederebbe se:
a) l'applicazione (il demone) venisse caricata su un server BOINC (ad esempio quello di SimOne) quindi io mi collego a quel progetto BOINC e la scarico come per tutti gli altri, aggiornata di volta in volta (si lo so che stai facendo molti cambiamenti ogni giorno ma prendila come ipotesi)
b) l'applicazione venisse modificata in modo da durare 2 ore e poi interrompersi (terminando tutti i client), sarà l'utente a richiederne un'altra per lavorare altre 2 ore (in realtà questo lo fa il BOINC manager da solo, e imponendo come limite di avere una sola applicazione alla volta e dichiarando l'applicazione come multithread non ci dovrebbero essere problemi con il BOINC manager)
c) l'applicazione si ferma da sola quando il server non gira (questo per non avere il PC che sta a far nulla ma è bloccato dal sistema BOINC che non permetterebbe ad altre applicazioni di altri progetti di girare)
d) durante l'esecuzione l'applicazione comunica solo con altri PC o con il server si brain, alla fine dopo 2 ore comunica nuovamente con il server di SimOne che si occuperà di dire che il risultato è ok (o no) e assegnerà crediti, per ora fissi
Allora......
Al momento non so come grattarmi la testa.... Appena posso (ma dovete capire che devo pubblicare qualcosa sono 3/4 anni che lavoro e devo cominicare a far uscire qualche papero sull'argomento!!)
Ma contavo a breve di cominciare a pensare a 2 possibilità distinte non necessariamente mutuamente esclusive, ma obbligatoriamente l'una successiva all'altra nel tempo!
1) Implementare da solo (non e' difficile, diciamo non + di una sett di lavoro mio) un meccanismo di scoring assoluto per cui ogni IP che partecipa ha un contatore tutto suo di calcoli virtuali effettuati. Ci sarebbe una bellissima pagina web con le posizioni di tutti!! Diciamo che prima o poi questa cosa la faro' comunque!!!!
2) Studiarmi un attimino boinc o meglio chiaccherare a 4 occhi con qualcuno già pratico e far un minimo di porting... Posso fare che ogni tot tempo si blocca il tutto. Posso anche fare che quando i servers non girano si blocca il tutto. Ma durante l'esecuzione dei servers cmq questi devono comunicare col server.
Per quanto riguarda il meccaniscmo dei crediti che non conosco, potrei pensare a qualcosa proporzionale al numero di calcoli effettuati (ma forse si potrebbe imbrogliare..) oppure a qualcosa di non deterministico che tiene anche conto della "fortuna" dei clients, cioe' quante volte un client ha fornito un miglioramento della soluzione! Questo sarebbe' piu' veritiero e praticamente impossibile da manipolare in maniera malevola!! In media chi offre piu' risorse avra' piu' rewards!!! Cmq devo prima studiarmi un po boinc!! Prima o poi ci facciamo una chiaccherata cosi magari mi chiarisci un po il tutto in maniera veloce? Abbiamo i contatti di skype (io sono pitollik) e possiamo parlarci quando vogliamo!!
Buona serata
Marco