This is the documentation for Enlighten.

Distributing the HLBS


Overview

The simplest way to distribute the build is to use the commercially available tool IncrediBuild from Xoreax. If distribution is available, the HLBS will create an IncrediBuild XML task file and invoke xgConsole to run it. This will use all available agents to run the tasks remotely, giving a significant improvement in performance.

SN-DBS is also supported with some limitations.

To ensure sufficient memory to run the precompute on each agent, install at least 2GB physical memory per logical core used with the distributed precompute.

IncrediBuild system requirements

To use Enlighten with IncrediBuild, you will need:

  • IncrediBuild 8.x or later.
  • IncrediBuild for Dev Tool Acceleration license option

For maximum performance with IncrediBuild, configure each IncrediBuild agent's File Cache:

  • Size: 32767MB
  • Folder: any path located on fast local storage (e.g. SSD)

SN-DBS system requirements

To use Enlighten with SN-DBS, you will need:

  • SN-DBS Version 2.4.0.61 or later installed on your client PCs.
  • A designated "broker".

Enlighten is tested using SN-DBS 2.4.0.61.

Command line

XGE Distribution is enabled by default in GeoPrecompute.exe, with no changes required to the standard command line. IncrediBuild provides a graphical view with the Build Monitor application, so there is no need for GeoPrecompMonitor when using XGE.

To use SN-DBS instead, add the parameter /p:AllowSNDBS=true to GeoPrecompute.exe. SN-DBS also provides a graphical view with the Network View application, so there is no need for GeoPrecompMonitor when using SN-DBS.

To disable distribution, set the parameter /p:AllowXGE=false. Tasks will still run in parallel on the local machine, but will not use IncrediBuild/SN-DBS even if available.

Additional controls

There are some other options you can control to get the system working optimally in your environment:

High memory load and CPU bound GeoPrecomp tasks

Certain tasks of GeoPrecomp (notably CreateLightTransport, but also other tasks that perform lots of ray tracing) may use all available memory and CPU on a host for the majority of the process time. The HLBS has a heuristic that attempts to limit the amount of these high-memory tasks that will be invoked simultaneously when running local builds, and disables multiple instances per agent in IncrediBuild when necessary. Although this fits most cases, it cannot always choose correctly as it does not know enough about your local environment. As of Enlighten 2.20 there is a /p:AgentUsage=<usage> command line parameter that allows finer control:

AgentUsage

Result

Default

The default behaviour; a balance between minimising load and maximising performance.

Aggressive

Aggressive remote agent usage; allowing multiple high-load processes per agent to improve performance (may cause interactive sessions to freeze).

Conservative

Limit remote agent usage to one high-load process at a time, minimising concurrent memory use.

Performance

On a single PC, performance scales extremely well with many CPU cores. Distribution allows for many CPUs to be utilised, and even with the overhead of network transmission it is still much faster than local-only precomputes.