A 3Delight Collective allows you to render a single image faster by using several computers from your network. It is selected either through the Processing Options (in the sidebar of 3Delight Display) or, for rendering using renderdl, through a command line option.

For the 3Delight Collective option to be available, it must first be setup. There are three steps that needs to be done, typically by the person responsible for the 3Delight installation:

  1. Make a JSON file to list the computers/servers to be included in one or more collectives;
  2. Inform 3Delight of the location of that file through the 3delight.config file;
  3. Run a small "service" program (a daemon in Linux) on each computer that is part of the collectives. 

Defining the Collective through a simple JSON file

It is only a matter of listing computers and associating them with a name. Lets make an example of defining the following 5 collectives in a hypothetical production facility:

Rackmount-1  →  The servers located in rack number 1.
Rackmount-2  →  The servers located in rack number 2.
Lighter-A  →  A group of servers you want to dedicate to lighter A.
Lighter-B  →  A group of servers you want to dedicate fo lighter B.
All-servers  →  All the servers.

Assuming the facility has 10 servers, named server01 to server10, here is how to build the JSON file for the above 5 collectives:

"Rackmount-1" : [ "server01", "server02", "server03", "server04", "server05" ],
"Rackmount-2" : [ "server06", "server07", "server08", "server09", "server10" ],
"Lighter-A"   : [ "server01,16", "server02,16", "server03,16" ],
"Lighter-B"   : [ "server04,16", "server05,16", "server06,16" ],
"All-servers" : [ "server01", "server02", "server03", "server04", "server05",
                  "server06", "server07", "server08", "server09", "server10" ]

This file can be named and saved wherever you choose among your installation. Assuming you saved the file in "~/MyCollective.json", you just add the following line in the 3delight.config configuration file so that 3Delight knows about it:

    collective ~/MyCollective.json

With this information, the 3Delight Collective option will be available among the Processing Options and accompanied with a menu to select which collective to use (if there are more than one):


Running the collective service program

A lightweight "service" program (or daemon in Linux) need to be installed on each computers that is part of a collective.  For that, run the following command on each of these computers:

On Windows:

C:\> collective -installservice

On macOS:

mv /Applications/3Delight/com.3delight.collective.plist ~/Library/LaunchAgents/ ← to launch the licence server when the current user logs in

sudo mv /Applications/3Delight/com.3delight.collective.plist /Library/LaunchDaemons/   ← to launch the license server when the system is started.

On Linux:

3Delight includes script that will start the collective service automatically on your render servers.  After installing 3Delight on the render server:

% sudo cp $DELIGHT/bin/collective /etc/rc.d/init.d/

The service will then automatically run at boot time.  Note that some linux systems do not have the "rc.d" directory and the proper command is:

% sudo cp $DELIGHT/bin/collective /etc/init.d/

Additional Notes

  1. A server/computer can be part of one or more collectives. As is the case in the example above ("server01" is part of 3 out of the 5 collectives).

  2. With each server/computer name, you can specify a number of cores, eg. "server01,16". This limits the number of cores that will be used when rendering using this computer by invoking the collective it is part of. If the number is not specified, eg. "server01", then all the cores will be used. 
  • No labels