Menu pagine

Scritto da il 20 Ago 2012 in Primo Piano | 1 commento

Render farm per ridurre il tempo di rendering

Render farm per ridurre il tempo di rendering

Immagine dei server: Torkildr / Flickr licenza CC

Il problema del tempo di rendering

Abbiamo già detto che quella del rendering è la fase che impegna più tempo. Fortunatamente si tratta di tempo-macchina, cioè di una risorsa scalabile e relativamente economica rispetto al tempo-uomo degli arti artisti che creano effettivamente modelli, scene e texture.

Resta il fatto che in ambito professionale, specialmente per un artista freelance, i termini di consegna sono spesso molto brevi.

Quando si ha a disposizione più tempo, di solito è per una produzione di alto livello, e quindi anche se c’è più tempo, la complessità delle scene e maggiore, quindi in realtà non se ne trae nessun beneficio.

Un solo fotogramma di un film di media qualità può tranquillamente richiedere una giornata per essere calcolato.

L’unico modo per riuscire a produrre nel tempo richiesto un film di questa complessità è di usare più computer in parallelo, le cosidette “Render farm” (fattorie di rendering).

Le render farm per sveltire il rendering

Vediamo un esempio concreto: il blockbuster “Cars 2” di Pixar. In media ciascun fotogramma di Cars 2 ha richiesto oltre undici ore di rendering. Le scene più complesse, come riportato da John Rath di DataCenterKnowledge, hanno richiesto in media tra le 80 e le 90 ore di rendering per fotogramma.

Nel caso di Cars 2, il rendering è stato distribuito su una batteria di server Dell per un totale di 12,500 core.

Per fare un altro esempio, Kung Fu Panda 2, sempre del 2011, ha richiesto complessivamente 55 milioni di ore di calcolo. Una quantità di tempo impressionante, pari a seimila anni.

Praticamente, su un solo computer moderno, si sarebbe dovuto iniziare il rendering nell’ anno 4000 Avanti Cristo, in pieno neolitico, per riuscire a distribuire il film nel 2011.

Tutto questo non deve scoraggiare, ma è indispensabile da sapere per rendersi conto che non basta schiacciare qualche bottone su un notebook per ottenere risultati degni di Hollywood.

Struttura base di una render farm

Una farm può essere composta semplicemente da due o più computer connessi in rete, oppure essere complessa come un datacenter e contenere decine o centinaia di server montati in armadi rack e attivi in modalità “headless”, cioè senza video.

Questo, sia detto per inciso, è un problema per alcuni software che fanno uso delle GPU (i processori delle schede grafiche) per velocizzare il rendering. Un normale datacenter non dispone di GPU nei server, che sarebbero un costo inutile, e quindi non può adoperare software o plugin che richiedano le GPU.

La connessione tra i computer o i server avviene attraverso Ethernet e ciascun computer (chiamato “nodo”) riceve i dati relativi al fotogramma che deve calcolare, effettua il rendering e salva il fotogramma in una cartella condivisa.

Al termine del rendering, il nodo si rimette in attesa e attende un nuovo fotogramma da calcolare.

I software di gestione delle render farm

Poiché ciascun fotogramma può richiedere un tempo di calcolo differente, e non è detto che tutti i nodi della farm siano della stessa potenza, ciascun nodo deve essere comandato da un software di gestione che gli affida il fotogramma giusto da calcolare e provvede a trasferire i dati necessari.

Il software di gestione della farm può essere una soluzione completamente originale (ad esempio un insieme di script Python scritti appositamente, in questo caso si parla di soluzioni “ad hoc”) oppure un software di gestione vero e proprio che permette di amministrare più lavori (jobs) sulla stessa render farm.

Per la gestione delle render farm esistono sia software commerciali, solitamente meno flessibili ma più facili da usare, che soluzioni Open Source.

Uno standard di fatto è DrQueue, open source, rilasciato sotto licenza GNU, e completamente aperto. Consente di distribuire e gestire lavori su una rete, anche composta da macchine con diversi sistemi operativi e diverse configurazioni.

La natura aperta di DrQueue gli permette di supportare moltissimi sistemi di rendering, tra cui: 3DS Max, After Effects, Blender, Lightwave, Maya, Nuke, VRay e Mental Ray. Naturalmente solo il manager è open source, mentre i nodi di render possono avere anche costi significativi.

Questo è uno dei motivi per cui Lightwave 3D, che fornisce 999 nodi di rendering inclusi nel costo di ciascuna licenza, è un software estremamente conveniente per la produzione televisiva o pubblicitaria.

Normalmente, una farm di media complessità dispone anche di uno o più server di storage, dove vengono archiviati i fotogrammi calcolati da ciascun nodo di rendering.

Rendering veloci non sono fuori dalla portata di freelance e appassionati

La buona notizia è che si possono ottenere risultati spettacolari in tempi ragionevoli, scegliendo con cura il software. Esistono software molto efficienti, che attraverso alcuni compromessi permettono di ottenere risultati di tutto rispetto in poco tempo.

Specialmente alla risoluzione più comune oggi per il video, il Full HD 1920×1080, un software efficiente su una macchina di buon livello può produrre anche 10 o 20 secondi di animazione di discreta qualità al giorno.

Ma se serve una maggiore potenza di calcolo, le render farm non sono fuori dalla portata di appassionati e piccoli studi.

Esistono service online che permettono di spedire le proprie scene per il rendering, pagando cifre tutto sommato contenute: circa 10 euro per l’equivalente di una giornata intera di rendering se non si ha particolare urgenza e si è disposti a sfruttare la farm quando non è a pieno carico.

Queste sono cose da tenere presenti quando si sceglie il software. Alcuni software hanno costi molto elevati per le licenze dei nodi di rendering usati nelle render farm, e questi costi si riflettono direttamente sul costo per l’utente finale.

Di norma i costi indicativi pubblicati sui siti dei service sono sempre i più bassi praticati dal service. Però, più è costoso il software che si adopera, più è probabile che ci sia una maggiorazione per i render effettuati con quel software.

Il motivo è che magari su 50 macchine, soltanto un numero ridotto ha installati i nodi di rendering più costosi, mentre quelli a basso costo o gratuiti sono installati su tutte le macchine.

E naturalmente è anche possibile costruirsi una piccola “render farm” personale, composta da un paio (o un mucchio!) di macchine dedicate solo al rendering.

Render farm PC / Pedro Lozano / Flickr Creative Commons

Una render farm composta da PC standard sovrapposti sugli scaffali, se ne vedono almeno 18! Nota anche la presenza di mouse e tastiere, necessari perché sono computer normali e non dei server. (Immagine di Pedro Lozano / Flickr Creative Commons)

Da un punto di vista economico, però, è molto più conveniente e pratico affidarsi a un service professionale.

Al costo dei computer va sommato anche quello dell’energia elettrica, della manutenzione, delle licenze dei nodi di rendering e dell’eventuale render controller (il software che gestisce la farm, descritto in precedenza).

Senza contare che anche la più piccola delle render farm, se non viene usata continuamente, è un bene che si svaluta molto velocemente a causa del progresso tecnologico.

Invece, un service online è un costo occasionale, che si affronta solo quando serve.

1 commento

  1. Devo calcolare la rotazione di un condizionatore con una durata di 20 secondi in Full HD 1920×1080, potreste suggerirmi quale soluzione più economica una tantum mi consigliereste?
    Grazie mille, Roberto.

Invia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

css.php