Network Rendering

This chapter provides a detailed description of Octane’s Network RenderingThe utilization of multiple CPUs or GPUs over a network to complete the rendering process. feature. If you are already familiar with Octane’s network rendering concepts, you may go straight to the summarized steps to deploy this feature in your workflow.

 

Overview

Network rendering allows additional gpus in other computers to be utilized in rendering images. OctaneRender distributes compiled render data and not scene data, so no file management is required by the user. Conceptually it is similar to working with additional GPUs by allowing the distributed rendering of single images over multiple computers connected through a fast local area network. Network rendering requires a Primary Render Node and one or more Render Nodes on different computers. The OctaneRender instance that drives the rendering is referred as the “Primary Render Node” and the OctaneRender instances that are helping are referred as “Render Nodes”.

Ensure that the Primary Render Node and the Render Node, respectively, are not blocked by the Operating System firewall or any firewalls in the network. This can be done, for example, by turning off the firewall for home/work networks on the Primary Render Node. If that does not help, also try switching off the firewall on the helper computer for home/work networks.

 

Primary Render Node, Render Nodes and Daemons

The Primary Render Node is the Blender plugin that runs on the content creation machine. Meanwhile a special console version of OctaneRender, octane_node.exe, runs on other computers as Render Nodes. Running the Render Node on the same computer as the Primary Render Node is pointless.

 

Unless using Out-Of-Core render features, the Render Node does not need to have a powerful CPU but the it is required to have enough memory to store the render data plus some render results. No data is stored on the Render Nodes’ discs, it all happens 100% in memory.

Each time network rendering is required, the Render Node process has to be launched on the Render Node machines. The Render Node Daemon makes the control of the Render Nodes more practical, as the daemon can be set up to be launched at every boot of each Render Node machine in the network. The daemon monitors the Render Node, starts it and stops it on request by a Primary Render Node in the network. Monitoring also means making sure that a running Render Node sends a regular “heartbeat” to the daemon and if that doesn’t happen it will try to stop the Render Node gracefully and if that does not work, it kills the process.

The daemon listens for the “heartbeat” of theRender to check if the Render Node process is still running at all and further eliminates the need to launch the Render Node process manually on each helper machine each time network rendering is required.

 

IMPORTANT: The Render Node version must be the same version as Primary Render Node (ie. if you are using version OctaneSever 2020.2.x – xx.xx of the Blender plugin for content creation, you must run the Render Node v2020.2.x – xx.xx at the helper machine).

 

OctaneRender Render Nodes can only be utilized in conjuntion with native OctaneRender distributed network rendering and will not work with third party render job management software, such as TeamRender or Deadline.

 

The Render Node Daemon

The Render Node Daemon is initiated using the batch script _install_daemon.bat on the helper machine. During the setup, it asks if the user wants to use all GPUs or only a sub-set, and also on which port it should listen to for Primary Render Node requests. Then the daemon becomes resident on that machine and will be active at all times.

When a daemon is invoked by a Primary Render Node, the Render Node process is quickly launched to get some information about the number of GPUs, version, bitness, etc. and then closed again. After that there is no Render Node process running. So the daemon just sits there and waits for a Primary Render Node (there could be multiple Primary Render Nodes in the local network) to detect it. The daemon should appear in the daemon list under the network preferences tab of the Primary Render Node. If it does not, it can have the following reasons:

If the daemon is detected (should take only up to 10-20 seconds), you can enable one firewall after the other to see which one is causing trouble. If you want to have the firewall running, configure the firewall settings to allow the communication between daemon and the Primary Render Node.

One daemon can be activated only by one Primary Render Node at a time. If daemon is currently “occupied” by another Primary Render Node the user will see the daemon state change accordingly.

 

Steps to Deploy Octane Network Rendering

  1. Download and install the Render Node. Ensure that each Render Node is of the same version as the OctaneServer installed in Primary Render Node.
  2. On each of the Render Node machines, navigate to the installation folder of the Render Node and locate the following files:
  3. On the Render Node machine, install the Render Node Daemon by running the file called _install_daemon.bat. Follow the prompts until the installation is confirmed.
  4. On the Render Node machine, run the daemon by initiating the file called _run_installed_daemon.bat.
  1. Back at the Primary Render Node, run the Blender Plugin’s OctaneServer if it is not already running. Then navigate to plugin's Network Preferences window through Blender's interface to enable the Network Rendering feature. The Primary Render Node's OctaneServer should be able to pick up the heartbeat of the Render Node sent through the network by the daemon.

Network_Rendering_Fig01_Blender_v2020.jpg

Network_Rendering_Fig02_Blender_2019

While on the Render Node, the Octane Render Node terminal will contain some new lines indicating when the Primary Render Node (Blender Plugin’s OctaneSever component) has picked up this connection.


Finally, close Network Preferences window and begin renderending with Octane Blender plugin edition. When generating a final render (F12) or useing the live render view (Blender 3D View window -> Rendered Viewport Shading method), you should see the net GPUs accounted for:

 

 

Turning off the Network Rendering Feature

The Blender plugin’s OctaneServer component is always listening for the presence of any active Render Node. If you no longer require network rendering, you can turn it off by unchecking the feature from the Primary Render Node's Network Preferences window.

As for the Render Node Deamon at the helper machine, the only way to turn off the Render Node Daemon is to close its terminal window. This can also be done by pressing <CTRL-C> on the Octane Render Node Daemon terminal at the helper machine.

Uninstalling the Octane Render Node Daemon is not necessary if you are planning to use the Network Render Feature again. But should you need to uninstall it, just navigate to the installation folder of the Render Node on the helper machine to locate and run the file called _uninstall_daemon.bat.