|
Using the XGE Interfaces extension package, IncrediBuild can be used to speed up execution
of make-based builds by running make 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 Make" to "Distributed Parallel Make"
To solve the typically long time it takes to run a make build, many make tools support a "parallel make" mode of operation which
allows execution of several processes in parallel, taking advantage of multiple cores/processors (see below for a partial list of make
tools supporting parallel make). Using the Automatic Interception Interface, make
tools supporting "parallel make" mode can be accelerated without requiring any changes to the makefile contents. This is achieved by
intercepting the make tool build 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 make" mode to "distributed parallel make".
Partial List of Make Tools Supporting Local Parallel Task Execution
Following is a partial list of popular make tools which can be easily accelerated using the Automatic Interception
Interface. Note that the interface can be applied to any tool supporting parallel execution of processes:
| Make Tool |
Parallel Execution Option |
| gmake (including variants) |
The -j [N] or --jobs[=N] command line option.
|
| MinGW |
The -j [N] or --jobs[=N] command line option.
|
| NMAKE |
More information.
|
| Clearmake |
The -J command line option (more information. V. 2002.5 and up).
|
| Omake |
The -j [N] command line option (more information).
|
Distributed Execution of Other Make Tools
Make tools that do not support local parallel task execution (see above) can be accelerated using
the Submission Interface. This involves minor modifications to the makefile
contents.
|