Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
distcc veramente distribuito
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
theRealMorpheu5
l33t
l33t


Joined: 26 Feb 2004
Posts: 841
Location: Vicenza, IT

PostPosted: Sun Apr 25, 2004 8:09 pm    Post subject: distcc veramente distribuito Reply with quote

l'idea che sta dietro a distcc e' veramente ottima ma vediamo di sfruttarla un po' meglio.

stavo pensando ad una sorta di calcolo parallelo distribuito via internet sul modello, per dirne uno, del SETI@home. in pratica un server centrale invia ai client i pacchetti da analizzare, i client li analizzano e restituiscono gli output al server centrale. ora mettiamola cosi': io ho bisogno di compilare KDE sul vecchio PIII 500Mhz. Un po' epocale, come impresa, no? ma se potessi contare sull'appoggio di altri tre PIII 500Mhz potrei incrementare le prestazioni di un bel po'. e fin qui distcc ci arriva.

l'idea mia e' questa: una rete per lo scambio di potenza di calcolo. ogni client agisce anche da server, nel caso volesse compilare qualcosa per se'. un "server" equipaggiato con distcc va in cerca di client disponibili ad accogliere la sua richiesta e si fa compilare una certa porzione di dati. a sua volta potra' compilare una certa porzione di dati proveniente da un altro "server" e quindi funzionare come client. un client puo' essere configurato per non sfruttare piu' di una data percentuale di risorse di sistema cosi' da non incidere troppo sul lavoro normale. ovviamente si potranno allestire, ove possibile, grossi "client" con molta potenza di calcolo e risorse praticamente dedicate a distcc in modo da alleggerire ulteriormente il carico per i client "minori", quelli che funzionano principalmente come workstation.

ora i problemi e' questo: bisogna dotare distcc di un meccanismo per distribuirsi in Internet, per ora lo fa solo su LAN e verso host conosciuti: la ricerca di client disponibili dev'essere dinamica. nel senso che se uno, ad un certo punto, accende il suo computer e lo rende disponibile alla rete, automaticamente distcc se lo becca e redistribuisce il lavoro anche su di lui. ovvio il caso opposto: prima di sconnettersi dalla rete nel corso di una compilazione, il client informera' tutti i suoi "server" che non puo' completare il job e quindi lo rimandera' indietro come non processato. ovviamente un "server" che si sconnette dalla rete informera' tutti i suoi "client" della cessazione dell'attivita' salvando al contempo la cache di lavoro gia' svolto.

se ci sono altri problemi ora non mi vengono in mente.

a voi che pare? realizzabile? utile?
Back to top
View user's profile Send private message
blackfede
Apprentice
Apprentice


Joined: 29 Dec 2003
Posts: 178

PostPosted: Sun Apr 25, 2004 8:38 pm    Post subject: Reply with quote

Problema uno:
Se va via la corrente e (caso sfigatissimo) uno sbazo di tensione mi frigge l'hd. Come possono fare i server a capire che il client si è sconnesso se non ha madato il segnale, e dato che probabilmente al prossimo riavvio avro un sistema pulito il client non è in grado di avvertire il server che lui è tornato...per il server lui è "uno nuovo"... :?
Back to top
View user's profile Send private message
theRealMorpheu5
l33t
l33t


Joined: 26 Feb 2004
Posts: 841
Location: Vicenza, IT

PostPosted: Sun Apr 25, 2004 9:34 pm    Post subject: Reply with quote

Boh... uhm... hashing dei client su qualche base peculiare del sistema più timeout?

Nel caso di "uno nuovo" che problema c'è? Tanto la compilazione va avanti a... chunk? Si può dire? Ovviamente - e di questo mi rendo conto solo adesso - gran pochi linkaggi possono essere deferiti ai client, il linking vero e proprio sarà effettuato necessariamente dal computer che ha richiesto la compilazione. Questo perché potrebbe essere che alcune funzioni siano sparse in altri punto della rete.

Il processo di compilazione è questo: ricevo un pacco di file, li compilo e restituisco il prodotto. Non ho mai due pacchi contemporaneamente dallo stesso richiedente per cui non rischio di perderne uno già finito su cui il richiedente conta.
Back to top
View user's profile Send private message
hardskinone
Guru
Guru


Joined: 02 Jan 2004
Posts: 460

PostPosted: Sun Apr 25, 2004 9:56 pm    Post subject: Reply with quote

Sarebbe strautilissimo ma difficile realizzazione.
_________________
Playlinux.net
Back to top
View user's profile Send private message
theRealMorpheu5
l33t
l33t


Joined: 26 Feb 2004
Posts: 841
Location: Vicenza, IT

PostPosted: Sun Apr 25, 2004 10:07 pm    Post subject: Reply with quote

hardskinone wrote:
Sarebbe strautilissimo ma difficile realizzazione.


Non ricordo dove l'ho letto ma: cos'è l'impossibile se non una questione di tempo? :P
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Mon Apr 26, 2004 12:10 am    Post subject: Reply with quote

Avevo avuto la stessa idea tempo addietro ma nn l'ho mai realizzata..
Probabilmente intercettere pc on line non dovrebbe essere difficile, la macchina che avvia il software client/server da un segnale al server centrale ogni tot e si scollega per timeout o per logout.

Il problema in questo caso potrebbe essere che sulla compilazione di un software piccolo mandare pacchetti a una macchina che sta "timeoutando" puo' rivelarsi una perdita di tempo non da poco.

Inoltre probabilmente sarebbe necessario un controllo + preciso per la potenza delle macchine, ovvero per uno che ha un pc potente compilare in distcc coi 486 puo' essere + dannoso che utile, quindi secondo me ogni macchina dovrebbe compilare solo coi pari e superiori.

Questo introduce un paio di problemi: chi ha una macchina potente è super sfruttato dagli altri e ha meno probabilita' di sfruttare gli altri, inoltre se uno dichiara il falso in fase di registrazione (se hai un k6 e dici di avere un k7 ad esempio) il gioco va a farsi benedire.

Che ne pensate?
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
theRealMorpheu5
l33t
l33t


Joined: 26 Feb 2004
Posts: 841
Location: Vicenza, IT

PostPosted: Mon Apr 26, 2004 8:58 am    Post subject: Reply with quote

federico wrote:
Avevo avuto la stessa idea tempo addietro ma nn l'ho mai realizzata..
Probabilmente intercettere pc on line non dovrebbe essere difficile, la macchina che avvia il software client/server da un segnale al server centrale ogni tot e si scollega per timeout o per logout.

Sì, il meccanismo potrebbe essere questo.

federico wrote:
Il problema in questo caso potrebbe essere che sulla compilazione di un software piccolo mandare pacchetti a una macchina che sta "timeoutando" puo' rivelarsi una perdita di tempo non da poco.

Anche questo è vero e non è un problema da poco. Ma si può risolvere settando timeout ragionevoli dell'ordine, che ne so, di trenta secondi... Ovviamente se interviene un timeout non voluto dalla macchina in questione, essa cercherà di riconnettersi automaticamente ovvianto così a spiacevoli inconveniente del tipo "non ho risposto in tempo perché avevo le risorse strapiene". Ma per non rispondere in trenta secondi uno dev'essere preso parecchio male...

federico wrote:
Inoltre probabilmente sarebbe necessario un controllo + preciso per la potenza delle macchine, ovvero per uno che ha un pc potente compilare in distcc coi 486 puo' essere + dannoso che utile, quindi secondo me ogni macchina dovrebbe compilare solo coi pari e superiori.

Beh, ovviamente ogni PC dichiara una soglia massima per lo sfruttamento e questa è pubblica e potrebbe venire usata per calcolare la conveniente a far compilare ad una tale macchina una certa percentuale di sorgenti. Tipo ad un Dual Xeon ne mando tre mega, ad un 486 ne mando tre k.

federico wrote:
Questo introduce un paio di problemi: chi ha una macchina potente è super sfruttato dagli altri e ha meno probabilita' di sfruttare gli altri, inoltre se uno dichiara il falso in fase di registrazione (se hai un k6 e dici di avere un k7 ad esempio) il gioco va a farsi benedire.


/proc/cpuinfo esiste per questo :P a meno che non si possa tweakare... :D Poi è ovvio che qualche buon'anima con un bel clusterone potrà decidere di lasciare un buon 50% di risorse alla rete e così creare un supernodo che funzioni solo da client.
Back to top
View user's profile Send private message
g
n00b
n00b


Joined: 25 Mar 2003
Posts: 16

PostPosted: Mon Apr 26, 2004 9:34 am    Post subject: Reply with quote

il problema più difficile da affrontare è invece la sicurezza:
come prevenire che un utente "malvagio" ti inserisca delle backdoors in fase di compilazione?

e temo che non esista soluzione
Back to top
View user's profile Send private message
Flonaldo
Guru
Guru


Joined: 21 Nov 2003
Posts: 572
Location: Bologna

PostPosted: Mon Apr 26, 2004 10:46 am    Post subject: Reply with quote

bhè, prendetevi un bel manuale di programmazione socket in C ed il lavoro é gia fatto per metà!
non per demoralizzarti morfeo ma non é solo una questione di tempo...
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Mon Apr 26, 2004 2:14 pm    Post subject: Reply with quote

g wrote:
il problema più difficile da affrontare è invece la sicurezza:
come prevenire che un utente "malvagio" ti inserisca delle backdoors in fase di compilazione?

e temo che non esista soluzione


Non capisco il problema...
Se ti mando una back, tu me la compili e me la rimandi indietro compilata!
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
federico
Advocate
Advocate


Joined: 18 Feb 2003
Posts: 3272
Location: Italy, Milano

PostPosted: Mon Apr 26, 2004 2:15 pm    Post subject: Reply with quote

Flonaldo wrote:
bhè, prendetevi un bel manuale di programmazione socket in C ed il lavoro é gia fatto per metà!
non per demoralizzarti morfeo ma non é solo una questione di tempo...


Quali altre questioni vedi?
_________________
Sideralis www.sideralis.org
Pic http://blackman.amicofigo.com/gallery
Arduino http://www.arduino.cc
Chi aveva potuto aveva spaccato
2000 pezzi buttati là
Molti saluti,qualche domanda
Semplice come musica punk
Back to top
View user's profile Send private message
hardskinone
Guru
Guru


Joined: 02 Jan 2004
Posts: 460

PostPosted: Mon Apr 26, 2004 3:34 pm    Post subject: Reply with quote

federico wrote:
g wrote:
il problema più difficile da affrontare è invece la sicurezza:
come prevenire che un utente "malvagio" ti inserisca delle backdoors in fase di compilazione?

e temo che non esista soluzione


Non capisco il problema...
Se ti mando una back, tu me la compili e me la rimandi indietro compilata!


Se deleghi al computer B la compilazione del file ciccio.c B potrebbe in realta' compilare una sua versione, infetta, rimandando indietro un ciccio.o con una backdoor o qualsiasi altra cosa.

Ho detto una cavolata? Mi rimangio tutto. lol:
_________________
Playlinux.net
Back to top
View user's profile Send private message
theRealMorpheu5
l33t
l33t


Joined: 26 Feb 2004
Posts: 841
Location: Vicenza, IT

PostPosted: Mon Apr 26, 2004 4:06 pm    Post subject: Reply with quote

Flonaldo wrote:
bhè, prendetevi un bel manuale di programmazione socket in C ed il lavoro é gia fatto per metà!
non per demoralizzarti morfeo ma non é solo una questione di tempo...

Se mi facessi demoralizzare da queste cose... è da quando avevo l'Amiga 500 che cerco di costruire un dischetto di boot. Ora, a distanza di quasi dieci anni, ce l'ho fatta. Per x86, ok... ma basta studiare il manuale :)

Che problemi vedi, tu? Raccolgo pareri ben volentieri, per questo ho aperto il thread. ;) Non è che domattina mi metto e lo faccio. Non so neanche se e quando lo farò. Però per il momento ci si fa un'idea della fattibilità e dei vari problemi.
Back to top
View user's profile Send private message
theRealMorpheu5
l33t
l33t


Joined: 26 Feb 2004
Posts: 841
Location: Vicenza, IT

PostPosted: Mon Apr 26, 2004 4:09 pm    Post subject: Reply with quote

hardskinone wrote:
Se deleghi al computer B la compilazione del file ciccio.c B potrebbe in realta' compilare una sua versione, infetta, rimandando indietro un ciccio.o con una backdoor o qualsiasi altra cosa.

Ho detto una cavolata? Mi rimangio tutto. lol:

No, no, può essere benissimo che un cattivone lo faccia. Il problema è che, se il linkaggio verrà fatto dal computer richiedente, il codice maligno deve trovare il modo di linkarsi ad una qualunque funzione del programma. Ovvio che se ha la fortuna di beccarsi la parte col main() il gioco è fatto. Però non sempre si ha questa fortuna, no? ;)

No, voglio dire... non è che adesso ci si possa basare sulla sfiga, eh... Proposta: hashare il pacchetto di sorci prima di inviarlo, far hashare il pacchetto di sorci dopo averlo compilato - così vengono hashate eventuali modifiche ai sorci - e restituire l'hash al richiedente: se differiscono, rifiutare la compilazione ed avvertire il client maligno e/o il suo utente.
Back to top
View user's profile Send private message
plexiglass
n00b
n00b


Joined: 26 Apr 2004
Posts: 2

PostPosted: Mon Apr 26, 2004 6:22 pm    Post subject: Reply with quote

:arrow: theRealMorpheu5, bwahahahahahahahahahahahahahah, hai disperato bisogno di cpu, huh?

-- questa risposta non ha alcuna utilità ne fine filosofico-politico, ciao moppeo --

e io non ho proprio nulla da fare, vero? uff... :D
Back to top
View user's profile Send private message
theRealMorpheu5
l33t
l33t


Joined: 26 Feb 2004
Posts: 841
Location: Vicenza, IT

PostPosted: Mon Apr 26, 2004 6:25 pm    Post subject: Reply with quote

plexiglass wrote:
:arrow: theRealMorpheu5, bwahahahahahahahahahahahahahah, hai disperato bisogno di cpu, huh?

-- questa risposta non ha alcuna utilità ne fine filosofico-politico, ciao moppeo --

e io non ho proprio nulla da fare, vero? uff... :D


Già, disperatissimo. Pensa che tempo fa ero in procinto di comprarmi un bi-froc :P E comunque l'idea nacque con darkangelo (quello che ti ha chiesto di Fibonacci)... insomma, se non hai niente da fare... dà il tuo contributo, no? :P
Back to top
View user's profile Send private message
plexiglass
n00b
n00b


Joined: 26 Apr 2004
Posts: 2

PostPosted: Mon Apr 26, 2004 7:10 pm    Post subject: Reply with quote

ti dirò, non mi va tanto di dare il mio contributo, sai, troppa fatica, e poi, bho, non prenderla dal verso sbagliato, quando metterete su una struttura del genere chiamami pure, sarò ben lieto di mettere a disposizione 4 athlonxp e un pentium 4, e se proprio vogliamo, anche un bel g4 nuovo nuovo... :)

cmq, che voleva di fibonacci? mi dimentico sempre di chiederlo, fammi da tramite comunicazionale, dai... 8)
Back to top
View user's profile Send private message
I-Ching
n00b
n00b


Joined: 16 Mar 2004
Posts: 50

PostPosted: Tue Apr 27, 2004 9:26 am    Post subject: Reply with quote

Sta cosa l'avevano gia avviata quelli si gentoo-italia.org, ma e fallita perche alla fine pochissimi mettevano la macchina in rete a disposizione di altri.. come a dire: finche uso la macchina di altri ok, la mia non si tocca !!

Ue-Tsi
Back to top
View user's profile Send private message
g
n00b
n00b


Joined: 25 Mar 2003
Posts: 16

PostPosted: Tue Apr 27, 2004 5:53 pm    Post subject: Reply with quote

theRealMorpheu5 wrote:
No, no, può essere benissimo che un cattivone lo faccia. Il problema è che, se il linkaggio verrà fatto dal computer richiedente, il codice maligno deve trovare il modo di linkarsi ad una qualunque funzione del programma. Ovvio che se ha la fortuna di beccarsi la parte col main() il gioco è fatto. Però non sempre si ha questa fortuna, no? ;)

No, voglio dire... non è che adesso ci si possa basare sulla sfiga, eh... Proposta: hashare il pacchetto di sorci prima di inviarlo, far hashare il pacchetto di sorci dopo averlo compilato - così vengono hashate eventuali modifiche ai sorci - e restituire l'hash al richiedente: se differiscono, rifiutare la compilazione ed avvertire il client maligno e/o il suo utente.


Non è una soluzione:
M riceve il sorgente da compilare
M fa la hash del sorgente
M lo cambia in modo che le funzioni facciano qualcosa di diverso
M lo compila
M invia il compilato modificato assieme alla hash dell'originale calcolata prima
Back to top
View user's profile Send private message
theRealMorpheu5
l33t
l33t


Joined: 26 Feb 2004
Posts: 841
Location: Vicenza, IT

PostPosted: Tue Apr 27, 2004 6:58 pm    Post subject: Reply with quote

g wrote:
M invia il compilato modificato assieme alla hash dell'originale calcolata prima

Sì, avevo pensato anche a questa eventualità e in effetti non si risolve il problema così. Uhm...

Bisognerebbe poter generare un una chiave pubblica e usarla così: hasho i sorci, cripto l'hash con la chiave pubblica della macchina a cui voglio delegare la compilazione, lei prende, compila, hasha i sorci, cripta l'hash con la sua chiave pubblica e mi rimanda il pacchetto compilato. Così io decripto l'hash e posso verificare che i sorci non sono stati toccati...

uhm... ho sonno, ho detto cazzate, non risolvo ancora... uffa... domani torno all'uni e pongo il problema. :D
Back to top
View user's profile Send private message
hardskinone
Guru
Guru


Joined: 02 Jan 2004
Posts: 460

PostPosted: Wed Apr 28, 2004 12:16 am    Post subject: Reply with quote

Oltretutto, come si potrebbe fare ad essere sicuri che qualcuno non usi il sistema per compilare software proprietario o illegale (i sorci di HL2 per esempio)? Si potrebbe introdurre un server centrale che controlli il software compilato, ma sarebbe un'impresa titanica.

Una soluzione potrebbe essere quella di centralizzare(?) con dei server: A chiede alla rete di compilare il software pippo, viene mandata una rischiesta al "server" che controlla se e' software legale/libero e da l'ok a tutta la rete di assecondare le richieste di A.
_________________
Playlinux.net
Back to top
View user's profile Send private message
FonderiaDigitale
Veteran
Veteran


Joined: 06 Nov 2003
Posts: 1710
Location: Rome, Italy

PostPosted: Thu Apr 29, 2004 1:13 am    Post subject: Reply with quote

macchinoso... e poi chi controlla i controllori? :)
_________________
Come disse un amico, i sistemisti sono un po' come gli artigiani per l'informatica :)
Back to top
View user's profile Send private message
hardskinone
Guru
Guru


Joined: 02 Jan 2004
Posts: 460

PostPosted: Thu Apr 29, 2004 8:56 am    Post subject: Reply with quote

FonderiaDigitale wrote:
macchinoso... e poi chi controlla i controllori? :)


beh.. e allora chi controlla che su ibiblio non ci siano binari maliziosi? Il discorso potrebbe continuare all'infinito...

Ognuno sarebbe libero di usare questa rete per compilare il proprio codice pero' dovrebbe trovare gente disposta a cedergli gratuitamente il proprio tempo macchina. La questione pero' rimane... come evitare abusi di un tale sistema?
_________________
Playlinux.net
Back to top
View user's profile Send private message
silverfix
Tux's lil' helper
Tux's lil' helper


Joined: 19 Mar 2003
Posts: 146
Location: born: Foggia - now: Bari

PostPosted: Thu Apr 29, 2004 1:41 pm    Post subject: Reply with quote

salve,
a mio avviso, potrebbe essere davvero una cosa di notevole importanza/utilità per tutta la comunità di user gentoo.. però a quanto ho capito l'unico vero problema (gli altri a parer mio sono solo questione di tempo, e un po d'ingegno.. :? ) è proprio la sicurezza... da perfetto ignorante in campo posso rimandare la parola, e appofittare del post per iscrivermi alla discussione, per il cosidetto "stay up" per l'interessantissima discussione.
:wink:

in caso metto a disposizione 24/24 di un k6-2 350mhz e 12/24 di un athlon-xp 1800 :twisted:
_________________
SilverFix - a happy Linux user!
Back to top
View user's profile Send private message
theRealMorpheu5
l33t
l33t


Joined: 26 Feb 2004
Posts: 841
Location: Vicenza, IT

PostPosted: Sun May 02, 2004 8:30 pm    Post subject: Reply with quote

silverfix wrote:
in caso metto a disposizione 24/24 di un k6-2 350mhz e 12/24 di un athlon-xp 1800 :twisted:


Ti voglio già bene :P

No, in ogni caso sono passato per dare un'occhiata e vedo che il tema ha preso... sono contento... per un po' avrò da fare quindi non seguirò attivamente ma chiunque volesse mettere in campo idee, soluzioni e nuovi problemi... beh, il thread è qui, no? :D
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum