Home Artists Posts Import Register

Content

This evening I dedicated a little more time to playing with Iray Server, and I have a little bit of a "success update" for you. It's about clustering up various machines, something I didn't have much luck with over the weekend.

Iray Server can work in two types of configurations: stand-alone and clustered. 

Stand-alone means that the app runs on any machine just by itself. This could be the same machine you're working with, or a different one on the network. Only one instance of the app runs and can receive render jobs, then processes them one frame at a time. This is already a great help even on the local system as it frees up DAZ Studio to do other stuff while the render happens in the background. 

Clustering takes this to the next level as it connects to other instances of Iray Server on the network. That way it can utilise multiple computers to render your images, as if you had multiple GPUs on the local system. This requires 7 Firewall rules exceptions (!) on every machine and some command line tweaks to start the app, but once everything is in place, this works like a charm! 

I couldn't get this to work during the weekend and had suspected Windows to be the source of evil here. Turns out the culprit was actually the two network connections on my streaming PC node. After disabling the backup network, re-installing Iray Server and manually tweaking the firewall rules, things worked out fine tonight.

In clustered mode, one machine becomes the "server" and receives jobs, while all other computers become slave workers. These are all coordinated by the master and show up as hosts in the web interface. Each host can be configured independently in regards to what hardware to use.

I currently have it running with 3 of my computers, but I do have another one that could join the network. It'll be interesting to do some benchmarking on full load. So far it scales very nicely. This test image below was rendered at 2000x2600 with just over 1000 iterations several times, with the following render times:

  • 2x GTX 970 + RTX 3060: 3min 26sec
  • 2x GTX 970 + RTX 3060 + 4x Xeon CPUs: 2min 53sec
  • 2x GTX 970 + RTX 3060 + 2x RTX 2080: 2min 18sec
  • 2x GTX 970 + RTX 3060 + 2x RTX 2080 + 6x Xeon CPUs: 2min 16sec

As comparison, my main workstation with 2x RTX 2080 cards renders the same scene in 3min 5sec. Not bad to get a speed increase just by switching on idle computers around the house. 

Always fascinating to see how little my CPUs actually contribute during rendering (other that heat and power consumption). 

Once a job has been submitted to the queue, it can be re-used directly from the server with different render settings (iterations, render quality, resolution), which is neat for benchmark testing and proof rendering.

I also tested Iray Streaming, which is the principle of having the Iray shaded viewport rendered with Iray Server instead of the local GPUs. As you move the viewport, the network of nodes goes to work and streams the resulting image back live. 

While it works in principle if a tick box becomes available (which sometimes it does not), it takes a little longer for the viewport to become rendered and responsive compared to my two local GPUs. I'm not why this works sometimes, but not consistently. While I might not benefit from this, it might come in handy for die-hard Mac users and those with underpowered laptop that can't really handle Iray previews. Nice to know it exists. 

I have also confirmed that animations definitely do not work out of the box, but I'm hatching plans on a workaround strategy that may make it possible.

More news as it breaks!

Comments

Dreamlab Studio

It's great to hear the clustering does work. I'd love to see some test results showing how efficient adding more processing power to the cluster is. Is it better to add another PC with a RTX 3080 or just add a 2nd RTX 3080 to the original PC. I love the idea of building up a small render farm at home, maybe just 2 or 3 machines, and then be at your main work station and send off your jobs to your local render farm. Also, at what point would it be cheaper to just use a cloud render service and save on machines and electricity. Great work Jay!

Al H

Great work as always Jay - many thanks. I love the idea of backgrounding renders locally, and continuing to work in Daz Studio in the meantime, rather than break workflow to wait for a render.