Initiator

General

The General page controls how the Incredibuild Agent handles various project configuration issues:

Distribution

Restart remote processes on local machine when possible

This option (disabled by default) helps prevent cases in which a job "waits" for a slow remote machine to complete execution of a task. If this scenario is reached when this mode is enabled, Incredibuild executes this task on the local machine in parallel to the remote machine, and output from the first machine to complete the task is applied to the build.

Note:
  • When this mode is enabled, you may see two execution bars of the same target running at the same time; when one of the bars completes, the other bar disappears, signaling that the faster machine's output was applied to the build.

Avoid task execution on local machine when possible

When this option is enabled, tasks that may be remotely executed (C/C++ compilation, etc.) run only on remote machines, and the local machine is used exclusively for tasks that can only be executed locally (linking, for example).

Notes:

  • When this option is disabled, local execution of distributable tasks is avoided if the local system's resource becomes very busy.
  • Enabling this option may increase performance in heavy builds. It will allow the local machine to concentrate on I/O, file transfer, and the like, and leave it more available for synchronization with remote computers. As this may not be the case for all builds, it is recommended to experiment to see if this holds for your particular build.

Enable standalone mode

Enables a mode in which the Agent uses only its local CPUs when it initiates builds. The Agent still participates in remote builds initiated by other Agents.

CPU Allocation

This setting determines the maximum number of CPU cores that can be used in a build, regardless of the number of available Agents. It takes into account both local and remote cores.

If the Avoid task execution on local machine when possible option is selected, the local cores will still be calculated in the maximum number of cores that can be used for a build, even when they are not used for running compilations.

Build Completion Sound

Three options are available:

  • Don't play a sound- Build completion sound is disabled.
  • Sound a system beep- A system beep is sounded when a build completes.
  • Play Control Panel defined sounds- Incredibuild uses user-specified sounds for each of the following events: successful build completion, build failure, and build cancel. To modify build sound settings, use the "Sounds and Audio Devices" Control Panel utility.

Advanced

Advanced page contained advanced settings that affect builds initiated by this Agent:

Performance

Write output to disk in the background

When this option is enabled, output files are physically written to disk in the background, which may improve task scheduling speed in some environments. It is recommended to benchmark performance with and without this option before leaving it enabled.

Enable minimal directory synchronization

This feature can be used to speed up directory synchronization in Visual Studio builds. When this feature is enabled, Incredibuild only performs source-file timestamp checking once, except for files and folders that have been explicitly marked as being outputs of other tasks in the build (for example, a file generated by a Visual Studio custom build step that "generates" source files is re-sent to remote Agents once it has been modified, as long as that file has been explicitly declared as an output file). This mode may significantly improve build times in environments that store source files in slow file systems (for example, in version-control databases or remote file servers).

Important:
  • When using minimal directory synchronization, all tasks that generate files used as input by other steps in the build must explicitly declare those files as output files. Not doing so may result in build errors or in older versions of these files being used in the build. MSVC's output file definition mechanism will be sufficient. For cases in which source files are generated using Post-Build/Pre-Link/Pre-Build steps (for which output files cannot be declared) or for other special cases, see the advanced Output File Definition Directives section.

Timestamp Comparison

Use this threshold when comparing files timestamps

Sets a minimal timestamp difference threshold (in seconds) for Incredibuild to use when comparing input and output file timestamps. For example, if the threshold is set to 5 and an .OBJ file is 3 seconds older than its source file, that source file is not compiled when an incremental build is run. Use this option only if you specifically need to use a higher threshold.

Recovery

Terminate Helper Processes after X Seconds

This option defines a maximal legitimate duration for a distributable task. Tasks that exceed the specified duration are automatically terminated and reassigned to another Agent.

Terminate inactive Helper processes

When this option is enabled, Incredibuild detects distributed tasks that consistently do not receive CPU cycles for over 16 seconds. If a running task meets this criteria, it is terminated and reassigned to another Agent.

Processes

Processes page controls the process priority given to Incredibuild processes on builds started by this machine:

Process Priority

Main Initiator process priority

Controls the process priority of the "BuildSystem.exe" process, responsible for managing builds started on the machine running this Agent.

Locally executed non-distributable task process priority

Controls the process priority that is assigned to non-distributable tasks (e.g. Visual Studio C++ link steps).

Locally executed distributable task process priority

Controls the process priority that is assigned to distributable tasks when run on the local (initiating) machine.