|
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.
|