Dirt simple renderfarm. no scripts needed.

Hey, recently I added some small features for peach that have an impact on small home renderfarms.

Auto-Threads, This option is in the output panel and is enabled by default. It makes the threads setting use the number of cores/cpu’s your system has. This is nice if your rendering with various systems, some multicore.
On the command line give the argument -t 0

Buttons in the output panel -
“No Overwrite” - never overwrites existing image files
“Touch” - Create an image file before rendering.

With these options, you can point each blender instance to the same network filesystem, and hit render and render on each. and they will all render frames until there is none left.

You cant be 100% sure 2 PC’s wont render the same frame, however the likelyhood is low enough in a fast network, its not really worth worrying about too much, though we can use semaphore locks at some point.

Thought users might like to know this since its really a no brainier to setup.

So you could render from the commandline like this…
blender /network/drive/foo.blend -o /network/drive/out -t 0 -a

Be sure to have -f # or -a last since rendering will run and evaluate the other args later.

Wow! Very cool! Thank you very much!

This will be perfect to try out on the 3 P4’s I found in the recycling last week. You’re a genius Campbell, thank you.

why is this button called “touch” ?

S.

Touch is a Unix program.

why is this button called “touch” ?

touch is from the ancient Unix command that lets you update the access / modification times of a file without actually opening the file. Here it’s a clever way to prevent duplication of effort. The server can “tell” the processors that a frame is being worked on because the file already exists (even though it may not be done rendering yet).

nice!! :smiley: thanks ideasman!

what is the “-t 0 -a” switches for?

So you could render from the commandline like this…
blender /network/drive/foo.blend -o /network/drive/out -t 0 -a

will this trick work on 2.45? or only on the svn build?

“-t 0” tells the system to set the number of threads to the number of CPU’s or cores the system has. -a tells blender to render the animation.
Touch, NoOverwrite and autothreads only work in SVN

If I’m getting it, this is a simple yet genial solution to have many computers rendering each one its frame. By the way, no parallel computing comes into the process, am I right?

Forgive any misunderstanding, I’m pretty dumb about this things! :slight_smile:

yes, each computer gets a frame, so for a single image you’d need to do somthing more tricky with splitting the image up.

yes, maybe rename “touch” to something non unixers understand :slight_smile:
nice options!

.b

This is the best news that I’ve heard all day!
Great work. I cannot wait to try it.

I think it’s touching. Thanks Campbell! :smiley:

Regarding the name “Touch” - Agree its not the most obvious name, however I cant think of any others that arnt overly verbose “Add the file if its not there”. Its not so bad, since the tooltip explains what it does. The term “Touch” if you think about it from a filesystems perspective, also makes some sense.

Id be more worried about “slurph”, “nabla” and “Cubic” buttons… :wink:

Touch is ok for me, but here comes a suggestion:
“PreImg” - like the Pre button on mixer consoles. Maybe not super good but maybe more understandable?

I love it. I knew those features existed in SVN before, but never understood the full benefit of it. This sure beats the socks off of guessing how many frames each of my different computers will render in the same time period…

Thanks!!
(touch is ok with me…I read tooltips if I don’t know what the button means. Nabla is still an unknown to me though…)

Oh, this is good, very good. Thankyou for adding this Ideasman. Just yesterday I ran 4 blender jobs on 4 machines and had to figure the range of frames each one would render. I had to leave earlier than expected and ended up with 3 gaps of frames not rendered which I had to go back and render out just these gaps. That was frustrating. But now, The 4 blenders will create frames sequentially! And I don’t have to calculate ranges! This really is a great idea.

‘Placeholder’ might make more sense than touch if I understood its function correctly. though it is a rather long word…

Is it just me, but isn’t the touch toggle useless? If I am going to click the no overwrite button, I’ll want touch on. If not, it doesn’t matter. Therefore you could have it be automatic when the no overwrite button is pressed.

Or am I majorly overlooking something?

Is it just me, but isn’t the touch toggle useless? If I am going to click the no overwrite button, I’ll want touch on. If not, it doesn’t matter. Therefore you could have it be automatic when the no overwrite button is pressed.

Unless you only want it to have a file written when the render has finished. Say on a single machine, if you want to be able to easily start and stop the rendering of a large animation, you don’t want to have empty image files where you have quit/restarted.