IncrediBuild is an easy-to-use platform for accelerating Windows-based processes through advanced
Grid Computing technology to accelerate Microsoft Visual Studio builds, make-based processes and
other complex processes running on the Windows platform.
Features
- Grid Computing
Grid Computing is a form of distributed computing in which different parts of one or more
processes are executed in parallel across computers connected to a network. As a result of the
distributed parallel execution, the process is considerably accelerated. A computing Grid
dynamically adjusts its operation according to the participating machines' status and
availability, handling various disconnect and recovery scenarios. Lastly, a computing Grid
guarantees that a process will correctly be executed regardless of the participating machines
environment, file system or installation base.
- The Xoreax Grid Engine (XGE)
XGE, the core technology behind IncrediBuild, is a powerful but easy to use Grid Computing
engine for the Windows operating system. Using XGE, processes such as Visual Studio builds,
make-based code and data builds, QA scripts, packaging procedures and even custom scripts and
applications can easily be accelerated.
Benefits
XGE can be used to accelerate a variety of processes.
- Microsoft Visual Studio builds
- Utilizing Grid Computing to Accelerate Visual Studio Builds
IncrediBuild's Visual Studio Agent speeds up Visual Studio builds by distributing C/C++
compilation tasks across machines in the local network, cutting down C/C++ project build time
by up to 90%. Fully integrated with the Visual Studio environment, it does not require any
changes to source or project files and is effective immediately upon installation.
When used in conjunction with the XGE Interfaces extension package, IncrediBuild also
distributes execution of custom build steps, build events and custom build rules in Visual
Studio projects.
IncrediBuild does not replace the standard Visual Studio compiler. Instead, it executes the
standard compiler in parallel, across multiple computers and processors, through the Xoreax
Grid Engine (XGE). The compiler is executed in a special Virtual Environment which fully
emulates the initiating machine's environment and file system, ensuring that files created on
remote machines maintain compatibility with the initiating machine.
- Running Distributed Builds from the Visual Studio IDE
Once installed, An IncrediBuild toolbar and menu appear in the Microsoft Visual Studio
development environment, offering IncrediBuild's distributed Build, Rebuild and Batch Build
operations. Build progress and results are displayed in the Build Monitor, an improved version
of VC's standard output window.
- Make-based code and data builds
- Utilizing Grid Computing to Accelerate Make Builds
Using the XGE Interfaces extension package, IncrediBuild can be used to accelerate 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
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
Using the Automatic Interception Interface, execution of tools supporting a parallel make
mode can be accelerated without requiring any changes to the makefile contents. This is
achieved by intercepting execution of specific processes run by the make tool, and
distributing their execution across computers and processors in the local network using the
Xoreax Grid Engine, effectively transforming the parallel make mode into distributed
parallel make.
- Distributed Execution of Other Make Tools
Make tools that do not support local parallel task execution can be accelerated using the
Submission Interface. This involves minor modifications to the makefile contents.
- Custom applications and tools
It is not uncommon to have applications (either developed in-house or by third party vendors)
running routine, time-consuming and CPU-intensive processes. A few common examples are:
- Build and Test management tools used to drive various processes.
- In-house applications responsible for generating application-specific data files.
- Applications running data-driven simulation or analysis procedures.
- In-house implementations for code/data build processes.
Using the XGE Interfaces extension package, IncrediBuild can be used to accelerate processes
using distributed execution. Four different interfaces are available to cover different
scenarios and requirements. 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.
- Development Scripts
- Utilizing Grid Computing to Accelerate Development Scripts
Batch files and other scripting languages are often used to run sequential processes such as
data processing, QA scripts, product packaging procedures, code analysis, etc. Because most
scripting languages are inherently sequential, these scripts' execution does not allow any
form of parallelization, despite the fact that large portions of these scripts could benefit
considerably from parallel execution.
Using the XGE Interfaces extension package, IncrediBuild can accelerate these scripts by
distributing execution of commands they run. As with all distributed IncrediBuild jobs, all
remotely performed commands 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.
Distributed Script execution is achieved using XGE's Submission Interface. This involves
modifying the script so that it calls IncrediBuild's submission tool to execute the commands
we wish to distribute, instead of calling these commands directly. The script execution may
also be paused wherever it is necessary to wait for a group of commands to complete before
proceeding with the next command.
- Automated QA Scripts
- Utilizing Grid Computing to Accelerate Development Scripts
Batch files and other scripting languages are often used to run sequential processes such as
data processing, QA scripts, product packaging procedures, code analysis, etc. Because most
scripting languages are inherently sequential, these scripts' execution does not allow any
form of parallelization, despite the fact that large portions of these scripts could benefit
considerably from parallel execution.
Using the XGE Interfaces extension package, IncrediBuild can accelerate these scripts by
distributing execution of commands they run. As with all distributed IncrediBuild jobs, all
remotely performed commands 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.
Distributed Script execution is achieved using XGE's Submission Interface. This involves
modifying the script so that it calls IncrediBuild's submission tool to execute the commands
we wish to distribute, instead of calling these commands directly. The script execution may
also be paused wherever it is necessary to wait for a group of commands to complete before
proceeding with the next command.