Blender is, at the moment, the most complete open source package for modelling and rendering. Its modeller is equipped with a fully OpenGL GUI and can be launched through a batch mode in order to run renderings only.
These and other software features encouraged its adoption by Cineca for the development of virtual environments, enabling the set up of a dedicated adn efficient render farm.
Technical features
The Cineca Blender Render Farm runs on a Cineca HPC cluster, named PLX, with 560 quad-core Intel Nehalem processors, and Infiniband interconnection.
Blender is available with two versions: 2.48 and 2.49b. For both we started from the source code and we compiled with the Intel compiler (make system with Cmake), activating all the options in order to take advantage of the Nehalem CPU (SSE 4.2, unrolling, ecc) and obtaining a better performance (about 25% faster than the executable available at the Blender site).
Usually, Blender render farms are based on networked Pcs and use launching tools for the execution of rendering and the passage of input files On HPC clusters jobs must be submitted through a job scheduler (PBS Pro in this case) so we created a series of scripts, that use the batch mode of Blender and submit the rendering job on a given number of cpus (like any HPC job), splitting the frames to render among the CPUs that have been asked.
The render farm is constitued by three phases:
- from a login node the user launches a script (blender_submit.sh) asking to the scheduler for a certain amount of processors;
- then, from each node starts the blender_mpi.sh script;
- blender_mpi.sh launches Blender with 8 threads for each node.
Mpi_blender is a small program written in C and using MPI for knowing how many CPUs have been employed and, therefore, split up the frames among the available CPUs. For example, 16 CPUs, 160 frames, each CPU computes and saves 10 frames.
At the moment the Render Farm works only for animations, and not for still frames, and the only output format is JPG.

