Helios - Sunflow Distributed Rendering
By olivS, dimanche 30 décembre 2007 à 16:00 :: Blender tutorials :: #103 :: rss :: PDF
Helios enables the distributed rendering of 3D models building on open source technologies that are all 100% pure Java. The rendering engine is Sunflow with the distributed computations managed by the JGrid service-oriented Grid system that uses the Jini technology as its base. This is what is written on the homepage of the project. Puzzled? This simply means that using this piece of software, you will be able to enslave numerous computers from your own private network into an efficient Render Farm.
File(s) Attached :
- No file available for download
Of course, you need to have such a private network, and have the minimal skills to maintain it. But once you are done with it, enslaving all of them in order to share the rendering load among many computers is not a so difficult task, with a light How To. This is what I attempt to provide in this articles!
Downloading and installing Helios
Helios is available for Download in two flavours, for JDK1.5 or JDK1.6. On recent Linux distributions, like the Ubuntu 7.10 with which this article is being written on, various packages are available, like sun-java5-jdk or sun-java6-jdk. Make sure they are installed. If you already did some render with Sunflow previously, it is very likely. For Linux, my Java Home is:
JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.03/jre"
so immediately check what would be your own JAVA_HOME and write it down.
Once you downloaded Helios (currently, the latest version for Linux is 0.1.2 JDK 1.6, just unpack it in the directory of your choice. Let call this directory RENDER_HOME.
Now, copy the RENDER_HOME/lib-ext/jsk-policy.jar file into the JAVA_HOME/jre/lib/ext folder. You will need root/administrator/super-user rights in order to do this.
Now, you should repeat the procedure for each computer in your network that you plan to use within your render farm: install the JDK, install Helios, copy the jsk-policy.jar file.
You are done with installing, let's jump to the next step: configuring the farm!
Configuring Helios
This is the most tricky part. What is written here is true only for personal networks, but Helios can accept your own HTTP server so that you could build a world-wide render farm if it pleases you. But this is well beyond my technical skills.
What is important to understand is that there should be two kind of computers on your network:
- a master
- many slaves
Configuring the master computer
All the magic is done on a single file setenv.sh (or setenv.bat for Windows users) which is located in RENDER_HOME/bin. Edit it with you favorite text processor. In the first few lines, uncomment the first export line and fill it with your own JAVA_HOME:
export JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.03/jre"
A few lines below, you will find the JGRID_LOCALHOST, that should be fed with the master computer IP address in your network. Pay attention to NOT state this IP numbers within "quotes". For example, if the master computer is 192.168.1.10:
export JGRID_LOCALHOST=192.168.1.10
Then a few lines later, you will find:
export CLASSSERVER_HOST=$JGRID_LOCALHOST
It is important to leave this line untouched for the master computer. But these are all the changes to be applied to the file!
Configuring the slave computers
It's a little bit more tedious, because there are certainly many computers in the farm. For each one you will have to adapt the setenv.sh file.
Exactly like for the master computer, in the first few lines, uncomment the first export line and fill it with the computer's own JAVA_HOME:
export JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.03/jre"
A few lines below, you will find the JGRID_LOCALHOST, that should be fed with the slave computer's IP address. Again, pay attention to NOT state this IP numbers within "quotes"! For example, if the slave computer is 192.168.1.11:
export JGRID_LOCALHOST=192.168.1.11
Then a few lines later, you will find:
export CLASSSERVER_HOST=$JGRID_LOCALHOST
There, you have to feed the IP address of the master computer so you'd likely report the JGRID_LOCALHOST value from the master computer:
export CLASSSERVER_HOST=192.168.1.10
Running Helios
At first, you need to run Helios first on the master computer. This is done by executing each of these scripts (and in this exact order) from the RENDER_HOME/bin directory:
classserver.shlookup.shcs.shbrowser.shclient.sh
Execute each one in a different console, so that you will be able to monitor all the processes. Especially in the classserver console, a lot of interesting information will stream, both for status and debuging purposes!
Then, you can run Helios on each slave computer, by runing the cs.sh script that belongs to its own RENDER_HOME/bin directory. If the setenv.sh file has been correctly configured, then you can check its console and keep an eye on it, especially if some lazy slaves doesn't do their render tasks: they perhaps encountered a problem, reported in this console.
Working with Helios
The User Manual is very well done and worths a read, but the client GUI is quite intuitive. The only good habit to take is to copy the files to be rendered in the RENDER_HOME/lib-dl/files directory.








Comments
1. On lundi 28 juillet 2008 à 21:11, by Radial
2. On jeudi 7 mai 2009 à 17:02, by Pisit
Add a comment