Network rendering allows additional 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. Network rendering requires a master and one or more slaves on different computers. The OctaneRender instance that drives the rendering is referred as the “master” and the OctaneRender instances that are helping are referred as the rendering “slaves”.
Since an OctaneRender slave currently requires an activated Standalone license, it is advisable to run the Standalone first to activate a Standalone license on that computer, if necessary. It is best to copy the whole folder of the released archive onto the slave computer. Also ensure that the master and the slave are not blocked by the Operating System firewall or any firewalls in the network. It is essential to ensure that the master and all slaves are running the same version of Octane. However the slaves do not need to be running Maya or the Maya plug-in, they just need the Octane stand alone and a valid license for Octane standalone
Master, Slaves and Daemons
The Maya plugin version running in the Maya host application can act as the master and a special console version of OctaneRender which comes with the Standalone Edition package, octane_slave.exe, can run on other computers as slaves.
The OctaneRender network render slave is passive and all the render data processing is actually done on the master side. The slave does not need to have a powerful CPU at all, but the slave is of course required to have enough memory (RAM) to store the render data plus some render results. Slaves should be using CUDA enabled graphics cards as Octane will use their GPUs for much of the rendering. The operating systems of the slaves can also be different since the communication between the machines is cross platform. As of the Octane for Maya plug-in version 3.06 network rendering can now work on multiple subnets.
Each time network rendering is required, the slave process has to be launched on the slave machines. The slave daemon makes the control of the slaves more practical, as slave daemons can be set up to be launched at every start up of the operating system on each machine in the network. The daemon is the program that starts a slave process on the machine (on request by a master), monitors it and stops it (on request by a master). Monitoring means making sure that a running slave sends a regular “heartbeat” to the daemon and if that doesn’t happen it will try to stop the slave gracefully and if that does not work, it kills the process. The daemon runs all the time and starts/stops a slave process if a master requests it. Figure 1 shows a diagram of how the process works.
Figure 1: A diagram of network rendering using Octane.
Configuring the Slave Nodes
The slave version of OctaneRender is a console build and requires a standalone license. The console build is released as a Windows build but it is designed to work across platforms (i.e. master and slaves can be on different platforms).
To launch a slave, either manually launch it via the command line or let a daemon launch the slave. To launch a slave via the command line, run it via:
octane_slave.exe --net-master-address --net-master-port
octane_slave.exe --net-master-address 10.0.0.103 --net-master-port 21000
This the readout in the console window is shown in Figure 2.
Figure 2: The console window shows a render slave being launched.
The text “Launching net render slave (2000002) with master 10.0.0.103:21000” indicates that the slave of version 2000002 successfully connected with the master at IP address 10.0.0.103 on port 21000.
To stop the slave, press CTRL-C and it will shutdown the process.
Obviously it would be quite painful if users would have to manually start/stop slaves on several computers, deamons are designed to automate this process making network rendering easier.
The daemon is a lightweight program that is launched after login and runs all the time unless manually shutdown. It fulfills various roles:
- It provides the possibility for the masters to locate it in the local network.
- It determines the version and GPU configuration of the slave.
- It starts/stops a slave on request by a master and makes sure that only one master at a time uses the slave.
- It monitors the “health” of a running slave process and kills process if necessary.
To set up the daemon, you run the batch script _install_daemon.bat on the slave computer. It will ask you which port the daemon should listen for master requests (if you want to keep the default settings in the brackets, press RETURN). Figure 3 shows the deamon setup process in the console window.
Figure 3: The deamon set up in the console window.
After confirming your selection, a batch file run_octane_slave_daemon.bat is created in the startup folder of your start menu (Start -> Programs -> Startup …). It will be launched the next time you log into your Windows account. A new terminal window will be in your task bar. When you open it, you can see the daemon starting up. At first it tries to launch the slave process to gather some information, which is then displayed as shown in figure 4.
Figure 4: The deamon gathers information concerning the network upon launch.
On MacOSX, the concepts are exactly the same as on Windows
The process of setting up render slaves using the Mac OS is slightly different however the underlying concepts are the same. The following steps illustrate the process for setting up slaves on a machine running Mac OS. Keep in mind that the machine will need to have a CUDA enabled graphics card installed in order to act as a render slave.
1) Open the Standalone .dmg file and double-click install daemon to run the daemon installer (figure 5).
Figure 5: double click on the install deamon.
2) When the terminal window pops up, enter the daemon port and the IDs of the GPUs that are to be used for rendering. The default values can also be used by confirming with just the ENTER key (figure 6).
Figure 6: The console window displays the options for deamon installation .
3) After confirming the settings, you will have to enter your administrator password and the daemon and slave are copied into the /Applications folder and a launch agent is set up, which will launch the daemon automatically when you log in the next time (Figure 7).
Figure 7: The console window completes the setup for the deamon.
4) To run the daemon immediately (without logging out and logging in), go into the /Applications folder and run the daemon from there (figure 8).
Figure 8: The deamon can be run from within the Applications folder.
5) This will create a minimized terminal window in the dock which can be opened by selecting it in the dock. The daemon is a console application and should produce an output as shown in figure 9.
Figure 9: The console window shows the slave output.
Enabling the Network Render Feature via the Maya Plugin
To use the plugin’s network rendering feature, you need the Standalone Edition’s slave node installed on each of the external computers and properly configured.
The network slave nodes also must have the same version as the current plugin’s engine version on the Master, and CUDA enabled graphics cards, otherwise it (the master) will not be able to use the slaves.
Once the slave nodes are properly setup, go to the plugin’s global settings and then open the OctaneRender SE network settings dialog. From the Maya menu:
Windows -> Render Settings -> OctaneRender Settings ->Additional section
Figure 10 shows the network settings in Maya’s Render settings Window.
Figure 10: Network settings in Maya’s render settings window.
Click on the option to enable Network Rendering. The Master opens a socket at the specified “Master Network Port” and listens at that port for slaves trying to connect to the master. It starts scanning the specified subnet in the local network for daemons and as soon as a slave with the correct version connects, the Maya’s script editor will show a message about the additional GPUs and slaves (see Figure 11).
Figure 11: The Script editor shows the Master connecting to the Slave machines.
If there is currently an image rendering, the render data will be automatically sent to the new slave and it starts contributing to the image. The render data update on the slave is driven by the master and users can see the progress in the IPR window as well as shown in Figure 12.
Figure 12: The readout in the IPR window displays information about the connected slaves.
Each OctaneRender network slave can only handle connections from one master at a time. A basic understanding of how Maya’s Batch Rendering works is also necessary as the OctaneRender network feature actually runs/starts a separate process. For example, you have started Maya and began network rendering, this means that Maya’s main process has already connected to the network slaves in your network. If after that, you start the batch rendering from inside Maya, this starts another process which tries to connect to already busy slaves (busy by main Maya process) and is not able to render using these network slaves.