Accelerate Build Tools

Using the XGE Interfaces extension package, IncrediBuild can be used to speed up execution of Jam, BJam, SCons, ANT and various other commercial or in-house build tools by running tasks across computers and processors in the local network. As with all distributed IncrediBuild jobs, all remotely performed tasks are run through the Xoreax Grid Engine, fully emulating the initiating machine's environment and eliminating the need to copy files or install applications on remote machines.

From "Parallel Execution" to "Distributed Parallel Execution"

To solve the typically long time it takes to run a build, many build tools support a "parallel execution" mode of operation which allows execution of several processes in parallel, taking advantage of multiple cores/processors (see below for a partial list of build tools supporting parallel execution). Using the Automatic Interception Interface, build tools supporting "parallel execution" mode can be accelerated without requiring any changes to the build definitions. This is achieved by intercepting the build tool process and executing specific tools (for example: the C/C++ compiler) in parallel on remote computers in the local network using the Xoreax Grid Engine. This effectively transforms the "parallel execution" mode to "distributed parallel execution".

Speeding up Jam, BJam, SCons and ANT builds using IncrediBuild

Following are the relevant command line options that activate "parallel execution" mode in JAM, Scons and ANT builds. As described above, IncrediBuild's Automatic Interception Interface transforms "parallel execution" into "distributed parallel execution" over the local network.
Build Tool
Parallel Execution Option
Jam The -j [N] command line option (more information).
BJam The -j [N] command line option (more information).
SCons The -j [N] or --jobs[=N] command line option (more information).
ANT The 'parallel' element (more information).

Distributed Execution of Other Build Tools

The technique described above can be applied to any tool supporting local parallel execution of processes. Build tools that do not support local parallel task execution may be accelerated using the Submission Interface. This may involves minor modifications to the build definitions.