[Multiblend] connects to multiple computers on your network, and lets Blender render in parallel on each. This will drastically improve your rendering speeds!
Multiblend is a standalone Python script that runs from outside Blender. This means you can even use it on machines that don't have powerful graphics cards, like older computers or servers.
Sybren A. Stüvel wrote:
I've released a new version of Multiblend_! Version 1.4 has thefollowing
improvements over the previous version:
- Display timing info after rendering.
- Added ``-E`` option to skip existing frames and render only the missing ones.
- Smarter distribution of frames.
- Implemented simpler logging.
- Verifies that the output directory exists before rendering.
- Added 'cachesync' executable that can distribute the Blender cache directory (such as used with particle systems) to nodes.
- Removed use of the md5 module when using Python 2.6 or newer.
- Replaced the popen2 module with the subprocess module. This limits the compatibility of Multiblend to Python 2.4 or newer on the master node.
- Split the implementation into several modules to increase maintainability and insulation of the parts.
More information on http://stuvel.eu/multiblend
28 Comments
this should speed the render... great news :)
I have a lot of old machines, It's really useful! I'll try this one of these days...
It would be great if there was a detailed explanation somewhere on how to use this.
Does anybody have a clue?
@onnevan: click on the link under the article.
Better set-up my Linux then, sounds lots of fun
I wonder if running ssh without passwords is a security risk? Also, will this script work on a non-linux system? Other than these worries it looks VERY promissing. With this I might not have to compile Dr.Queue now. :)
Very exciting news!!!! And I just went and chucked out 3 old PC's this month! Doh!!! Never mind, serves me right. :)
This looks great! One question though, is this script intended only for animation, or is it also capable of Net-Rendering a single image?
Neat script.
I like Touch & No Overwrite (simple distributed rendering) that comes with blender since 2.46
http://www.blender.org/development/release-logs/blender-246/distributed-rendering-new-render-options/
Charles Harding, ssh without passwords is fine if you do it right. The host still requires authentication, the client just saves the key. google sh-keygen
So what is the difference between this and say FarmerJoe?
Hm..what about smth like SETI project?
Now if only there were a way to reduce the electricity bill now that I'm gonna have so many computers tracing rays and crunching numbers all the time...
I suggested this a long time ago and people werel ike, "what are you, stoopid"
glad to see that people with actual programming skill tried it and it works ^^
What we really need, is to use the new pipeline in Internal Blender Render, that is capable of send chunks of frames to servers outside of Blender, not full frames, but the chunks specified on parts like a threaded machine with a bunch of processors.
Even with the overhead generated, this can speed up things, and for single frames, it will be very helpfull.
A service specified in port X ( well, 5770 for sample ) always online in multiple machines, waiting for service with low priority ( not perceived by the user of the machine ), and working like a simple processor in a very multitrheaded Blender.
The only problem I can see it´s the fact that if a slower machine retains the last chunk of the render to complete a frame, the others will be in idle, but with touch and no overwrite already implemented, it will be sufficient to open a second instance of Blender to maintain the machines working till the end of the frames.
The problem sometimes is when we don´t have a powerfull machine, but multiple slower machines, and need a frame of the render to view the quality before start the render of the animation...
This way, we can use Lanhouses like big clusters, easy, simple and fast...
I can imagine 64 threads running in a lan house near me... (16 Phenoms 940), a rocket !
This is pretty cool! Thanks for sharing.
@Mg: http://www.renderfarm.fi (project furthering the development of BURP: http://burp.boinc.dk )
/Nathan
Well, I made my comment after visiting and reading the programmer's site and I didn't understand anything, does it only works for Linux?, there are no instructions for windows?
@onnevan :
At the bottom of the home page the author says :
"I have no experience running MultiBlend on Windows"...
He also asks for help from people having ideas to make the script working on windows.
would be cool if one cood coonect to a special internet network, wich work like this: when one render it sends data to the network, and computers not using there cpu @ full would help with the render. If a person is going to render something themself while they are helping, it stops help the other and you gain ur own cpu + other ppl cpu (wich is not in use). This way it would never slow down u only help speed things up ^^.
/Thorack
It sound very good, I have a time using Farmjoe, but looks like multiblend it's good, I'll give it a try.
Cheers
Sephiroth the Bimbo Master
Nice work, a very cool script.
Awesome. If this works well, it is awesome. Bravo. :D
@Sephiroth the Bimbo Master and ccherrett: What is Farmjoe?
Did somebody tried it on windows already? which configuration would you suggest?
@banor: Farmjoe is a script for building a simple renderfarm, it is capable of distribute frames across the nodes (PCs) on the network for animations, but it's possible distribute just parts of a same frame on the network to be processed by the nodes (bucket rendering) for still images, there are many software or scripts betters or worse, I like farmjoe, why? uhhm I don't know...
Check it out at:
http://farmerjoe.info/
Cheers
Sephiroth the Bimbo Master
banor,
It is a render farm for blender.
http://farmerjoe.info/?p=1
I am wondering how this compares.
Thanks!
It looks its more difficult to set up compared to farmerjoe.
This was pretty easy to setup. The only problem I had was that one of the servers I wanted to try it on was running python 2.3. Too bad because that server is a quad socket (not core) 3.0GHz hyperthreading beast.
This makes me want to make some USB sticks to boot too that just sets up a quick render node.
Actually, I found I could use older versions of Blender ok that were compatible with python 2.3 and even 2.2. Now I'm running on 13 nodes!!! Very nice. The only thing is that it doesn't seem to take advantage of multiple cores or sockets on the nodes properly. Even if I set the thread level higher or to auto in the blend file. To fix this, you can just add more node entries that are for the same hostname.