Setting up a network render
Important Note
When a computer enters in Sleep mode, it stops all its activity. In order to avoid a network job getting stopped for this reason, set the sleep option for all your network computers (both for the Manager, Monitor and Nodes) to Never.
This will ensure all your computers will stay available and do not enter sleep mode during a network task.
Setting up your own render farm can be done in a few simple steps:
Step 1 - Check that all computers are properly connected in your network
Make sure all your computers are properly connected to the network, and check the read/ write permissions on each machine, for example by checking that the currently logged-in user can write a file in the folder you intend to specify as the output folder for network rendering. Make sure there are no firewall restrictions on the machines prior to initializing the Maxwell Render network.
Step 2 - Launch Manager and the Nodes
Launch the Manager.exe on the computer that is going to run as Maxwell Manager, and launch Maxwell Render Node in the computers that are going to work as nodes. You can also run a node on the computer that is running the Manager. It can manage the network rendering and also contribute to the rendering process. Only one Manager is allowed to run simultaneously on the network.
Step 3 - Launch Monitor
Launch the Monitor on the computer where you want to control (launch/ display/ stop) the rendering process. The Monitor will automatically connect to the network to search for the Manager and the available Nodes. They will be listed in the Nodes panel. The Monitor can run on the same computer that is running the Manager. Check in the Monitor>Nodes panel that all your computer nodes are listed there. If some of them are not listed, check the firewall settings on that computer and make sure it is not being blocked.
Step 4 - Add a job
Use the Add Job button to submit a job. This will open the Add Job Wizard to help you through the process. Select one of the following options.
- Single job: to make a non-cooperative render queue with each node working on an independent frame.
- Cooperative job: several computers work on the same image, which will be merged at the end of the process.
- Animation job: select a scene and the frame range, and the frames will be distributed among the available nodes. You can also render single frames from the same sequence by using a semi-colon “;” when typing. For example: 1-10;12;20-23. This will render frames 1 through 10, frame 12, and finally frames 20 through 23. Any padding number is allowed.
- Batch job: This option allows you to select multiple MXS scenes to be rendered. All the scenes are rendered using their own settings and output paths. You can perform changes in the rendering settings (render time, SL, resolution, camera, etc), and these changes are applied to all the scenes added. An interesting feature is that in this mode you can choose the Batch Type, between Cooperative type (all render nodes work together in the same scene before starting with another) or Single type (each render node renders a scene separately).
Choose the job type
Step 5 - Specify output paths and render settings
Output paths
You have two options of specifying the output paths of your renders:
- UNC format: this is the safest way to write the output paths. The paths are specified as a network path and the Manager can in this case save the files on any computers shared folder that is part of your network. The network path is written in the format of \\computername\myfolder\myrender.png (where "myfolder" is a shared folder on the network).
- As standard local paths: if you specify a local path to a folder, the folder needs to be in the same computer that is running the Manager. The Add Job wizard will give you a warning that the paths are not network paths, but you can ignore this if the output folder is in the same computer that is running the Manager.
You should always specify both the image output and the MXI output paths. If the paths are the same, you can simply drag & drop the folder icon of one path over the folder icon of the other path to quickly copy it.
For more information about setting the output paths, see the Network troubleshooting page in the Knowledgebase.
Frame range and Render Options
Set the frame range (for animations), and set the Render Options (Time, Sampling Level). You can also override the render options stored in the MXS file here.
Send dependencies
When this option is on, any textures and extra files (HDR, IOR, IES etc.) needed for the render are sent by the Monitor to all the Nodes. It is recommended to have this option on as it is a very efficient way of sending the MXS and scene files to all the nodes, especially if you have many nodes. The differences between having this option on and off are:
- ON: The Monitor sends the MXS file and all scene dependencies to Node A. When the transfer finishes, the Monitor starts sending dependencies to Node B, while Node A sends dependencies to Node C and so one. This follows a Peer-to-Peer approach which offers very good performance. Moreover, in animations, when most of the dependencies are the same for all the frames the Manager tracks which nodes already have each texture so these aren't sent again. When the render starts, each node loads the scene and its files from its local hard drive.
- OFF: In this case, any textures/files used in the MXS file must point to a network location, accessible directly by all the nodes. The benefit can be that there are no file transfers at all and the render process starts immediately, but when the render starts all the nodes have to load the MXS file and textures from a network path at the same time. This can create a bottleneck in some cases, if for example 20 nodes are accessing to the same large file simultaneously. However if the file server is fast enough this option can be perfectly valid and you skip the file transfer process time. The only way to find it out is making some tests as the performance in the two cases depend on many local factors.
Dependencies path
You can also optionally specify a dependencies path where Monitor will look for files needed to render the MXS. This is in most cases not necessary, especially if you have Send dependencies checked, in which case the Monitor will search for the files using the paths of the textures/files already specified inside the MXS file (even if they are local paths). It can however be useful in these cases:
- The MXS file is located in the same computer as the Monitor, the textures/file paths specified in the MXS are local paths, but you have moved your textures/files to a networked folder and Monitor can no longer find them. Specify in this case the networked path to your new texture folder for Monitor to find them.
- You have Send dependencies unchecked, and the textures/file paths specified in the MXS are still local paths (perhaps in the mean time you have moved all your textures to a networked server). In this case you need to specify a network path to the dependencies.
Where Monitor searches for dependencies
The Monitor will look for textures/files in the following paths:
- Same path as where the MXS file is.
- Network path to the dependencies (if you have specified a dependencies path in the Add Job wizard)
- "textures" subfolder of the path to any referenced MXM materials in your scene (ie, if your MXS contains a link to referenced material as F:\mxmfiles\gold.mxm, it will search for textures used in that material in F:\mxmfiles\textures\)
- Preferences paths. These are the paths you can specify in Maxwell.exe preferences from File>Preferences>Paths.
For more details on the options in the Add Job wizard, see The Monitor page.
Step 6 - Specify the render nodes
Choose the computers you want to work in this job.
Assign the nodes you want to work on this job
You can also check the "Use any render node available" checkbox, and the Monitor will use any node in your farm as soon as they get available.
Render process
Once launched, the Manager sends the necessary files to the nodes, that perform the calculations. When the rendering finishes, the following steps take place:
- The Manager sends a request to all the nodes to send their MXI files to the Manager computer
- The Manager stores each MXI file in its temp folder (which you can specify in the Manager preferences, or it will use the default temp folder location of your system)
- Manager calls mximerge.exe (found in the Maxwell Render install folder) which merges the node MXI files into one final MXI.
- If merging is successful, Manager copies the final MXI file to the output paths specified in the Add Job wizard.
First make some simple tests in your network before attempting a real project or final rendering to ensure that all the Render Nodes can connect and the output is written properly.