Incredibuild Architecture and Terminology

Incredibuild Architecture

Initiator Agent: The machine initiating a build and requesting help from other Agents. Tasks spawned as part of these execution may be distributed by Incredibuild across the various idle CPU's on Agents available as part of the Incredibuild pool, resulting in much faster execution.

Every Initiator Agent can also function as a Helper Agent, but not at the same time. So while you are Initiating a build, you cannot be a Helper. If you were already acting as a Helper when you Initiate a build, any tasks you were helping with will be reallocated.

Helper Agents: The Agents that assist the Initiator Agent in running builds. The more Helper Agents you have, the more computing power you can access. Machines that will be used as Helpers only need the Incredibuild agent installed, there is no need to install the accelerated software, copy your source code or set up your tool chain on machines that will only act as Helpers. Each Helper Agent can assist with one build at a time.

The Coordinator: The Coordinator manages communication between the Agents, facilitates the distribution process, and manages general settings. Each environment must have one Coordinator. The software can be installed on any of Agent, or it can be a dedicated machine.

An Incredibuild Agent is installed on each machine that you want to participate in helping to run builds. Any Agent can act either as an Initiator or as a Helper for a particular build as long as it has the correct license.

Jobs and Tasks

A Job is the entire process tree being executed by Incredibuild. The Job at the Initiator is broken up into Tasks.

  • Tasks are executed at the OS-level within a process tree.

  • Tasks can also invoke subtasks, both tasks and sub-tasks can be distributed to run on remote machines.

  • Tasks represent the process to be executed either by an Initiator or Helper Agent. 

Example: In Make, the tasks that are being executed remotely by Incredibuild are usually compilation tasks. In C++ compilations, the gcc which is a compilation process, will be distributed by Incredibuild to be executed remotely. As there are many compilation tasks when performing a full rebuild, Incredibuild can potentially distribute hundreds of compilation tasks to be executed concurrently on remote machines (Helpers), thus, highly accelerating the entire compilation exeuction.