Network Rendering Process
The manager receives a job from the Client. It splits the job into tasks that are computed by the workers. When a Worker finishes a task, the rendered pixels are returned to the Manager. When all tasks are completed, the Manager assembles them into the finished image, video, KeyShotXR, or configuration. For still images, the tasks consist of regions of the images, and for animations, KeyShotXRs, and configurations, the tasks are whole frames.
Total job processing time consists of transfer, rendering, and assembling time. The transfer time depends on network connection and file size, rendering time depends on Worker capacity and rendering settings (render passes and layers), and assembling time depends on the Manager capacity and output size (image resolution and number of frames).
Network Configuration of CPU Workers
The performance of KeyShot Network Rendering is subject to network connection and configuration. To obtain the best results we recommend:
- To use the same processor type for all computers
- To have an equal amount of cores per worker
The tasks assigned to each worker are generally of equal size, so if one worker is less powerful than the others it may delay the assembling of the job
- To maximize the core count but minimize the worker count
This will decrease the time spent on transferring the scene to all workers. Also, if the number of workers exceeds the number of tasks of the job, the excess workers will be left idle if no other jobs are in the job queue
- 1 Gbit network interfaces or faster.
The performance of KeyShot Network Rendering is dependent on your CPU specification. To obtain the best results, select high performance processors, e.g. Intel Xeon or AMD Threadripper. See our Benchmark section in the KeyShot forum for inspiration.Jobs suited for Network Rendering
As mentioned above, the total processing time of a job in network rendering is dependent on effective transfer, rendering, and assembling time. This is the reason why the following kinds of jobs are best suited for network rendering:
- Complex scenes
- Still images where local rendering times exceed 1 hour
- Animations, KeyShotXRs, and Configurations where rendering time of each frame exceeds 10 minutes
If the rendering time pr. frame is less than that, the transfer time in Network Rendering could make local rendering more efficient.
Preparing jobs for Network Rendering
If you want the fastest processing time for your Network Rendering jobs, consider the following:
- File Size – The file size affects the file transfer time. To minimize file transfer time, keep the BIP/KSP file size low. To minimize the size you can delete all unused items in the scene, such as unused environments, textures etc.
- Rendering Settings – Everything you choose to include in the rendering counts. Render passes will increase the amount of data per pixel, and render layers will increase the amount of pixels being transferred.
In an ideal render farm, doubling the core count cuts the render time in half. To obtain maximum linearity between core count and render time:
- Added CPU Workers must use the same processor (or better)
- computers must have the same core count (or higher).
- Current render times must be greater than 1 hour.
- Number of render tasks must be greater than the current computer count.*
*Computer count should not be confused with core count. If the number of render tasks in a job is less than or equal to the current computer count, then adding more computers will not have any effect on the render speed for that job.