Blender è il più competo pacchetto open source per modellazione e rendering oggi disponibile. Dotato di un modellatore con GUI interamente in OpenGL, può essere lanciato in modalità linea di comando in batch per effettuare solo rendering.
Queste ed altre caratteristiche del software, a partire dal 2010, ne hanno favorito l'adozione da parte del Cineca per lo sviluppo di ambienti virtuali permettendo, al contempo, di allestire una render farm dedicata particolarmente efficiente.
Caratteristiche tecniche
La Blender Render Farm del Cineca si appoggia ad un cluster PLX, costituito da 560 processori quad-core Intel Nehalem e da un'interconnessione Infiniband.
Attualmente le versioni di Blender disponibili sono la 2.48 e la 2.49b. Per entrambe siamo partiti dal codice sorgente e abbiamo compilato con il compilatore Intel (sistema di make Cmake), attivando tutte le opzioni per sfruttare la cpu Nehalem (SSE 4.2, unrolling, ecc). Il risultato ottenuto è di circa il 25% più veloce dell’eseguibile disponibile sul sito Blender.
Nelle rendering farm tradizionali, realizzate solitamente come un insieme di PC collegati in rete, spesso si utilizzano tools di lancio dell’eseguibile di rendering e di passaggio dei files di input. In un cluster di calcolo, invece, non si accede ai nodi di calcolo direttamente ma via ssh, sottomettendo un job tramite uno scheduler.
La rendering farm è composta da tre fasi:
- L’utente utilizza uno script (blender_submit.sh), che viene lanciato da un nodo di login e chiede un certo numero di processori allo scheduler;
- Una volta ottenuti, in ogni nodo parte lo script blender_mpi.sh;
- blender_mpi.sh lancia Blender con 8 threads per ogni nodo
Mpi_blender è un piccolo programma scritto in C che usa MPI per sapere quante CPU sono state utilizzate in totale e quindi suddividere i fotogrammi da calcolare per le cpu disponibili. Esempio 16 cpu, 160 fotogrammi, ogni cpu calcola e salva 10 fotogrammi.
Per il momento la rendering farm funziona solo per animazioni, non per immagini statiche, e il formato di output è solo jpg

