Distributed Rendering

The distributed rendering system of Realsoft 3D subdivides an image to a number of sub images and uses available rendering servers to render them.

In a multi processor system, the program automatically examines the number of available processors and activates the respective number of rendering threads. The full power of the computer is used by default.

Sometimes it may be necessary to change the number of rendering threads. For example, you may want to leave one processor free for other tasks, or perhaps a complex scene requires so much memory that only one processor can be used.

To change the number of rendering threads:

1.Go to the Rendering Settings tab in the Select window and double click the desired rendering settings object to open the property window.

Double click the desired rendering settings object
Set Threads to 1 to use a single processor

2. In the Distr tab, clear the Automatic Multi Threading option. Then set the Threads slider to a suitable value. For example, set Threads to 1 in order to use only one processors.

3. If you use multiple processors, make sure that Box Rendering is checked and that the number of boxes exceeds the number of processors. (Box Count X times Box Count Y >= Number of processors)

4. Drag & drop the rendering settings object from the select window into the view window. Click Render. If you use several threads, you can see how several render boxes become rendered simultaneously. If only one thread is used, boxes become rendered one after another. You can also select a suitable rendering settings object for the view using the view property window.

The file render window contains a similar rendering settings selector allowing you to use multiple processors to render images and animations to a file.

A view window uses 'Render with two processors' settings object for rendering

Configuring distributed network rendering

Distributed network rendering means using several workstations connected through a network for rendering.

Before you can use other workstations for rendering, the distributed network rendering system must be configured. The following things must be prepared for every workstation in the rendering network:

1. TCP/IP protocol must be installed and running. Unfortunately, this is something Realsoft 3D can't set up automatically for you. Consult your network administrator if necessary.

2. There must be a RendD rendering daemon (or the daemon version RendW which has a control window) running on every workstation that you want to use for rendering. You can install Realsoft 3D using the Network option to obtain a minimal render server configuration. The full program setup naturally contains all required components as well. RendD is a program, which listens to incoming rendering requests and spawns rendering server threads. It may be a good idea to insert RendD into the startup folders of render servers. Then the rendering daemon is automatically activated when a server machine is turned on.

Using network rendering

Once you have prepared the workstations for network rendering, you can ask Realsoft 3D to use one or more of them for rendering.

1. Define the host names you want to use for rendering in the Rendering Settings/Distr tab. If you have not defined the machines as "host" names then use the IP addresses instead. In a Windows XP network, you can use computer names (you can check and change the name in Control Panel/System/Computer Name tab). For example: a machine is called 'sun' and sun's IP address is 10.0.0.5. You can use either the host name 'sun' or the IP address of 10.0.0.5.

2. Check and if necessary, adjust the render box count. By default, the program estimates a suitable box count automatically. By turning off the Automatic Subdivision option, you can change the box count using the Box Count X/Y sliders. The number of boxes should be higher than the sum of threads and servers so that a single image can be divided to all threads.

Network rendering setup. In addition to one local rendering thread, three servers are used for rendering: moon, mars and sun.

Optimal box count depends on several things, like the speed of the network, available memory, resolution of the image and performance of the rendering servers. If all the systems are equally fast, the optimal speed might be achieved by setting the box count to a multiple of the sum of threads and servers. In the example image above, such box counts are 4, 8, 12, etc. A high box count adapts better to speed differences, but requires slightly more managing work from the program. Finding the optimal configuration may require some experimentation.

3. Drag & drop the desired rendering settings object into the view window and render. You should now see several boxes being rendered simultaneously in the View window.

Symmetric multiprocessing and network rendering can be used simultaneously. In other words, you can use the processors of your local workstation as well as processors in other workstations of the TCP/IP network.

Rendering over internet

When using rendering servers over an internet connection, data transfering often becomes the bottleneck. The performance can be optimized by configuring a hierarchical rendering distribution tree. For example, consider a situation where you want to use your local rendering network and another remote network. The actual computers (their symbolic host names) may be as follows:

1. The remote network should be configured as follows:

In above, the dual server (preferably the fastest of the remote servers) is started so that uses its both processors and also connects to the two other computers on the remote LAN.

2. The local render servers are started as follows:

  • local_sp_2: start RendD with the default parameters
  • local_sp_3: start RendD with the default parameters

3. The Distr tab render settings of the actual rendering client 'local_dp_1' are the following:

  • Threads=2 (or Automatic Multithreading enabled), because there are two processors in the client itself to utilize
  • The Hosts list is remote_dp_3, local_sp_2, local_sp_3

Now the rendering client uses 5 render engines (2 threads + 3 network servers), so the render box count should be at least 5. However, since the remote network with several processors is probably much faster than the local single processor render engines, it is best to use high box count that adapts to the speed differences. Multiplying the thread count by 4 might give a good result:

Now, if the internet connection works fast enough, the remote network may render 6-8 boxes and the local network the remaining half of the boxes. The following diagram illustrates the structure of the rendering distribution:

For rendering farms, which have many workstations or whose configuration changes frequently, we recommend use of the Public Rendering Service. See the Reference Manual for details.