i am continuing to try every permutation possible, but so far all my Crowdrenders have been slower, in fact, much slower than using my single main machine. i am using today's build of blender 2.80. i plan to try it in 2.79, in case the problem is to do with 2.80.
Machine specs:
master: i7 6700K + GTX 1080 in hybrid mode
node: P37 Gigabyte i7 4720HQ + GTX 970M
both machines set to CUDA.
render object: a single monkey with glass shader on a plane.
Hi Julian, how long does the scene take without CR and how long with CR?
Also, assuming you are using automatic load balancing? Automatic is generally a lot better for animation renders, you can use it for stills, but you have to be patient, rendering the scene using lower samples or resolution to begin with can help the load balancer get better at choosing the screen areas given to each computer.
If you roughly know how much faster one computer 'should' be compared to the other, then maybe try using manual mode and setting the amount of screen to render for each.
I encountered this issue with Render still ( single image on multiple machines ). If i render with low samples auto-balance will the subsequent balancing be better ?
Cheers
hi james, thanks for the reply and thanks for your add-on - it is going to be vital for my work and i am extremely keen to get it operating well.
to give you some reasonably accurate comparison aggregate animation times, i need to finish converting Jason Van Gumster's Render Time Estimation (RTE) add-on to 2.8 and ideally i will add some way of collecting all the render times in a place where i can easily compare them (eg a google spreadsheet). however, RTE works in 2.79, and i will add CR to 2.79 and try both stills and animations there too, and post all the data back here.
currently i am trying these tests on one master and two nodes, but i will be able to increase that to three nodes today, i hope.
i tried both automatic load balancing and manual. you are right - automatic gives quicker results than manual tweaking. somehow, the master machine, which is by far the most powerful, is being greatly underused and/or slowed down by CR (both i think). this is the main reason that the renders are slower with CR, i think.
i had hoped that in animation mode, CR would allow each node to render a whole frame so that as each node became free, it would simply grab the next available frame. that way the fast master machine would render more frames and over a period of frames the system would easily and automatically find the most optimal arrangement. indeed as the frame content changed, the system would again automatically adjust and whatever machine was going the fastest would get the right number of frames to suit its abilities.
one other question: can CR take advantage of hybrid rendering (only available in 2.8 i think)?
thanks,
julian
Hi Julian,
Thanks for the explanation :), the story with the load balancing is that basically its old and we're replacing it. You might have heard we're raising funds to help us build a beta. This beta represents a huge refactor and redesign.
That redesign includes allowing the add-on to assign either a new frame or part of a currently rendering frame to any computer that has finished rendering and is available for work.
The beta is going to take a while. CR really relies on community support for development as the software is free. Much like blender, we rely on donations. Right now we're working on the addon in our spare time doing bug fixes and little updates where we can, but we're getting ready to launch or rather re-launch the crowdfunding campaign we started last year in an attempt to get the software totally funded by the community. This will ensure it stays free to download (well, almost, obviously all the folk who donate give us money in return for continued effort!).
So, in short, yes, what you desire is coming, but we're not able to say when at this stage. Stay tuned though!
"i had hoped that in animation mode, CR would allow each node to render a whole frame so that as each node became free".
Is this not possible with CR? It's the most logical approach to render farming. If that's not how this addon works then what is it doing? I would think someone could whip together some python scripts over the weekend that would be faster than whatever is going on now.
Hi Grant, as mentioned above, we're replacing the current load balancer with a system that will allow this 'mode' of rendering where nodes each render the next available frame.
Our system addresses the problem slightly differently so that single frame renders can also be rendered on multiple machines. This use case is often overlooked as a lot of folk render animations, but a decent proportion also render large or complex (or both) stills.
The CR system breaks each image into parts and renders a part on each computer available. To do this well, it tries to estimate the optimal amount of screen area each computer should get. To begin with that guess is going to be based on just a guess, so not very accurate, as more renders happen (in an animations at least) it gets better.
For stills, its sometimes better to use the manual mode, assuming you have a rough idea of how much power each computer has relative to the others.
This is all being replaced, however, as we're working on a better system that will render optimally for both stills and animations.
This change is not easy, however, so please bear with us! It takes a lot of time and effort to develop this, and right now, the dev team are working day jobs and volunteering their time to the project. We'd love to be able to deliver what you want quickly, but until such time as we are fully funded ( hopefully by the community) it will take us a while to deliver to what the artists out there have been asking for. But deliver we will, its our aim to bring the best render farm software to the blender and other CG communities.
Take care till then :)
hi james,
i completely understand regarding funding. i will be glad to do whatever i can to publicise your crowdfunding effort. we did a major crowdfunding some years ago (to try to make a feature film about the banking scandal of 2008) and we learned a few hard lessons, which i am happy to share privately (i'll send you an email).
ohhhh great! yes please!
Hi Julian, did you end up sending that e-mail? It might have gotten eaten in the internet somewhere, I can't find it, please forgive me and send it again if you can?
James, How is this rewrite going. I have a similar issue. I have four older PCs that I was intending using for helping with the rendering and a more powerful laptop as the master. What I am seeing is that the load balancing is very slowly creeping towards the correct value, but currently the slower PCs holding up the system. Each frame takes 1min 35secs to render. If however I just use the laptop on its own it takes 14secs. So a mode of one frame per computer, with the first to finish getting the next frame would suit my setup.
Details of my setup:
Blender 2.90
CR 0.2.6
Slave 1: i7-7700 16GB GTX1050 Load balancing = 0.14
Slave 2: i5-4460 8GB GTX750 Load balancing = 0.07
Slave 3: i7-4770 8GB GTX980 Load balancing = 0.36
Slave 4: i7-7700 16GB GTX1050 Load balancing = 0.16
Master: i7-10750 16GB RTX2070 Super Load balancing = 0.24
I have tried manual balancing, but still get slow rendering times.
Hi Philip,
Sorry for the late reply, we've been swamped since the start of the year :S
Ok load balancing is going to get a whole lot better, the re-write is currently being planned out. We've got some code working, which is a new system for distributing data between nodes, we're calling that component CRESS. There will also be a new addon as well. The new addon hasn't been started but will be on our GitHub account where you can currently find free docker containers for crowdrender and blender.
So, some things you could try in the meantime:
Raise the amount of tile given to the laptop, if it is very much more powerful, use manual mode, and set the value higher until the frame render time stops going down.
Be careful about using GPUs, CR by default also uses the CPU, which can slow down some computers. You may wish to double check each node's settings before rendering and decide if you want to also use the CPU
If you do decide to use hybrid rendering, tile size will make a pretty huge difference. Often I have found that larger tile sizes can cause render time blow out as the CPU will grab tiles at the start of the render, and still be stuck rendering them long after the GPU has finished its tiles.
We'll be updating the community on the new modes for sharing out rendering work as they are coded. You'll likely see invitations going out to comment on CRESS and its API before that though since CRESS has to come first since the addon will use it to distribute data around your network.
Thanks for posting and let me know if I can help further :)