Questo e' un semplice tutorial realizzato allo scopo di illustrare
da
subito le potenzialita' del progetto piovra v-1.02 ed avvicinarvi
ad
un utilizzo corretto dello strumento in modo semplice e intuitivo.
Il presente testo si riferisce all'utilizzo di Piovra SENZA INTERFACCIA
GRAFICA
bensi' da linea di comando.
Ipotiziamo il caso di una renderfarm costituita da:
1 pc dual processor e sistema operativo linux (generico)
1 pc portatile con sistema operativo WINDOWS(R)
1 pc fisso con sistema operativo BSD (anche MAC)
PREREQUISITI
Sara' necessario procedere all'installazione su tutti i pc di:
- Python versione uguale o superiore alla 2.34
- Blender della medesima versione su tutti i nodi
INSTALLAZIONE
A questo punto sara' sufficiente decomprimere l'archivio contenente
piovra-1.02
in qualsiasi directory del vostro sistema.
Eseguite le operazioni che seguono con permessi di amministratore:
- sui pc Linux e BSD digitare: "sh linux-install.sh"
- sui pc Windows lanciare: "Setup.exe"
Giunti a questo punto l'installazione e' terminata.
CONFIGURAZIONE
Prima di iniziare il rendering vero e proprio dovrete impostare
gli slave
lanciando piovraslave:
Prima di tutto, visto che siamo persone molto ordinati, creeremo
una directory
che ci servira' per contenere i frame renderizzati, quindi ci
spostiamo
in quella directory e procediamo come segue:
- sul dual processor digitiamo : "piovraslave 2 /usr/bin"
> ipotizzando l'esistenza dell'eseguibile /usr/bin/blender
- sul pc windows apriamo un promt di comandi, ci spostiamo nella
directory
di cui sopra e digitiamo "piovraslave 1 c:\progra~1\blende~1"
> ipotizzando che l'eseguibile di blender si trovi in c:/programmi/blender
- sull'ultimo pc digitiamo "piovraslave 1 /home/pippo/blender-2.36"
> ipotizzando l'esistenza dell'eseguibile /home/pippo/blender-2.36/blender
Questi comandi possono essere utilizzati all'interno di script
sh o file batch
da lanciare all'avvio del sistema in modo automatico. In questo
modo non dovremo
mai piu' preoccuparci di lanciare manualmente piovra sugli slave:
ci sara'
sufficiente accendere tutti i pc per avere la nostra renderfarm
pronta all'uso!
PRIMO RENDERING
Eccoci giunti al dunque: abbiamo un file "renderizzami.blend"
che vogliamo
renderizzare dal frame 1 al frame 100 sul pc dual processor.
Prima di tutto dobbiamo configurare il file blend:
nella finestra dei render facciamo in modo che il campo
"Directory/name to save rendered pics to" (a sinstra
nella finestra)sia vuoto.
Per fare in modo che le texture vengano caricate da tutti gli
slave apriamo
il menu a tendina File in alto a sinistra e selezioniamo pack
data.
Quindi selezioniamo un tipo di output che nel nostro caso sara'
jpg.
Premiamo Ctrl+W per salvare il file e procediamo nella configurazione.
Gli indirizzi ip delle macchine della renderfarm sono:
192.168.0.0
192.168.0.1
192.168.0.9
Quindi ci dirigiamo verso il pc dual processor che sara' il nostro
master
e prima di iniziare il lavoro compiliamo la lista degli slave
della
renderfarm digitando:
piovramaster -add 192.168.0.0
piovramaster -add 192.168.0.1
Se vogliamo sapere quali slave fanno parte della renderfarm digitiamo:
piovramaster -list
e l'output nel nostro caso sara':
192.168.0.0
192.168.0.1
questo file restera' sempre a disposizione anche per le prossime
sessioni di
rendering dunque controllate che contenga tutti gli slave prima
di ogni
sessione.
Ora non ci resta che iniziare il rendering vero e proprio:
piovramaster -wakeall /home/pippo/renderizzami.blend 1 100 2
Il risultato dopo pochissimi secondi sara' l'inizio del rendering
distribuito.
Ma ci accorgiamo che ci siamo dimenticati del pc con BSD, quindi
per aggiungerlo alla renderfarm sara' sufficiente digitare:
piovramaster -wake 192.168.0.9
Per evitare di fare troppa confusione i comandi che seguono possiamo
digitarli
su un secondo terminale in modo da non confondere i diversi output
di piovramaster in una unica schermata.
Ora abbiamo la nostra renderfarm a pieno regime!
Ma come al solito vostro padre rivendica il portatile con Windows(R)
e voi
dovete staccarlo dalla renderfarm.
Digitate:
piovramaster -del 192.168.0.1
Attendete che il portatile richieda un nuovo frame e leggerete
sull'output
di piovramaster che e' stato disconnesso uno slave. Se proprio
non abbiamo
tempo possiamo dirigerci verso il portatile e uccidere i processi
di blender,
ma non quelli di piovra!
Ma prima di restituire il portatile al genitore vogliamo recuperare
i frame
renderizzati fino a quel momento e metterli in /home/pippo/jpgtemp/:
piovramaster -recv 192.168.0.1 jpg /home/pippo/jpgtemp
Quindi vogliamo anche che vengano eliminati i residui sul portatile:
piovramaster -purge 192.168.0.1 jpg
Non e' finita: vogliamo che quel portatile si spenga:
piovramaster -halt 192.168.0.1
Il lavoro di rendering continua per alcuni minuti e noi vogliamo
sapere
come le macchine della renderfarm stiano lavorando.
Inizialmente vogliamo vedere i frame renderizzati quindi digitiamo:
piovramaster -recvall jpg /home/pippo/jpgtemp
Quindi ci chiediamo quale sia il carico a cui sono sottoposte
le varie macchine.
Visto che sono tutti pc con Linux o BSD come sistema operativo
vorremmo
lanciare il comando "uptime" su tutti i nodi, niente
di piu' facile:
piovramaster -execall uptime
Avremo l'output di tutti i nodi sul nostro master.
Ok ma come faccio a sapere se qualche pc non ha avuto ram a sufficienza:
piovramaster -execall free
Come sopra leggeremo l'output di tutti i pc direttamente sul
master.
E se ci interessasse lo spazio libero sull hard-disk del pc con
BSD?
piovramaster -exec 192.168.0.9 df
Ora siamo tranquilli, guardiamo le immagini ma....
Il nostro personaggio 3d non va bene: dobbiamo modificarlo e ricominaciare
il
rendering da capo! E la renderfarm come la fermo?
piovramaster -stopall
A differenza dell'utilizzo di piovramaster -del in questo modo
non
modifichiamo la lista degli slave.
Quando il master ricevera' le richieste degli slave dira' loro
di fermarsi,
quindi noi ripuliremo gli slave dai file renderizzati con
piovramaster -purgeall jpg
Modificato il file blend siamo pronti, ma si aggiunge un nuovo
problema.
dovete andare a cena dalla nonna e un dilemma sovrasta la vostra
mente:
- devo restare ad attendere la fine del rendering per spegnere
i pc
e recuperare i frame
- oppure devo andare dalla nonna a mangiare pietanze rustiche
e succulente?
Nessun problema! Voi digitate:
piovramaster -allauto /home/pippo/renderizzami.blend 1 100 2
jpg /home/pippo/jpgtemp
e piovra fara' tutto da se:
renderizzera' tutti i frame, quindi recuperera' i frame renderizzati,
ripulira'
gli slave, infine spegnera' automaticamente tutti i pc.
NOTE:
a] Perche' non fare in modo che ogni frame renderizzato venga
immediatamente
spedito sul master?
a) innanzi tutto non e' detto che io li voglia ricevere sul master,
ma potrei
vorli ricevere su un altro pc della renderfarm. Per esempio perche'
il mio master e' un 486 con 200 MB di Hard Disk!
Se io compilo una lista di slave della renderfarm su uno slave
posso
poi lanciare da quello slave tutti i comandi che ho elencato prima
meno
quelli riguardanti il rendering. Ossia posso spegnere i pc, recuperare
i frame renderizzati e eseguire comandi per il controllo del sistema.
b] Nel manuale ho letto che e' importante configurare bene il
firewall perche?
b) perche' se avvii automaticamente piovraslave all'avvio con
permessi di
amministratore lasci che piovraslave possa eseguire del codice
da remoto sul tuo sistema.
Questo potrebbe essere molto pericoloso nel caso in cui la macchina
fosse collegata ad internet.
Infatti un possibile attaccante potrebbe tranquillamente installare
sul
proprio pc piovramaster ed eseguirlo con l'opzione "-halt"
sulla tua
macchina.
Dunque una buona configurazione del firewall si rende necessaria
nel
caso in cui un pc debba utilizzare piovraslave e nel contempo
avere una
connessione ad internet oppure ad una qualsiasi rete da cui possano
provenire eventuali attacchi.
Piovra is (C) 2004 The Piovra Project Team