Using Distribeast

Distribeast is a system of distributed computing that processes Beast rendering jobs in parallel on multiple different computers. This can speed up your rendering times dramatically, particularly for projects with large, complex scenes.

System overview

A Distribeast network contains a single computer that acts as a controller, and any number of other computers that act as workers. At startup, each worker establishes a connection with the controller over TCP/IP.

Any application running on a host that is also running a Distribeast worker or controller node can submit rendering jobs to Distribeast. Jobs are submitted through the Beast API, by specifying a flag value at the time the rendering job is created. See Using Distribeast below.

When a rendering job is submitted to Distribeast, the job is split into smaller chunks that are sent to the workers for processing. Each worker carries out the requested rendering operation on its own chunk independently. When all chunks have been successfully treated, the submitting application is notified through the Beast API like with any non-distributed job. See also Monitoring Jobs and Retrieving Updates. The submitter can then retrieve the results through the Beast API like it would for a non-distributed job. See also Retrieving the Rendered Output. The splitting of the job done by Distribeast is entirely transparent to the submitter.

The controller can handle multiple simultaneous requests, so any worker in the network can submit a rendering job at any time. All workers in the network participate in each job, including the worker on the same host as the submitting application, and including the controller itself.

Each worker node is capable of using all available processing units or cores on its host. Therefore, only one worker needs to be installed on a given computer, regardless of the number of CPUs offered by that computer.

Note that because each controller also acts as a worker, the minimal Distribeast system consists of a single computer with a controller node installed.

Setting up the Distribeast network

To set up your Distribeast network:

  1. Install one Distribeast controller node. You can install the controller node on any machine in your network, but to avoid having to re-configure or re-install your worker nodes, it is best to choose a computer that you expect to be in continual service for as long as possible.
  2. Install a Distribeast worker node on each computer that you want to send distributed rendering jobs to the controller, and on any other computers that you want to include in the render farm.

For details on installing Distribeast controller and worker nodes, see Installing Distribeast.

Network restrictions

The following restrictions apply to the structure of your Distribeast network, and to the computers running the controller node and worker nodes:

  • It is not recommended to install a Distribeast node on a computer that is directly connected to the Internet with a public IP address. Install only on computers that are on a local area network, with a firewall/NAT between them and any untrusted computers.
  • Distribeast currently only listens on IP v4 addresses.
  • Distribeast is not guaranteed to work on machines connected to more than one network.
  • "Network discovery" must be turned on for all computers participating in the Distribeast network.
  • It must be possible for any computer in the network to connect to any other. For example, you cannot situate one part of the network behind a firewall that doesn't let through connections from the rest of the local network.

Sending jobs to Distribeast

Whenever you call ILBExecuteBeast() or ILBStartJob() to launch the processing of a rendering job, you need to provide an element from the ILBDistributionType enumeration that determines whether or not the rendering job should be parallellized through Distribeast.

For example:

Note that you cannot launch Distribeast by running its executable contained in the bin directory directly.

Supported platforms

Distribeast currently supports controller nodes and worker nodes on Windows Vista and Windows 7, running on either 32-bit or 64-bit processors.