Accelerate Visual Studio C/C++ 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.
It is important to note that IncrediBuild does not replace the standard Visual
Studio compiler. Instead, it executes the standard compiler in parallel across
multiple computers and processors, using 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. Click to
learn more about XGE's Virtual Environment.
Additional Supported Compilers:
- Compuware DevPartner Studio instrumented C/C++ builds
- Intel C++ Compiler for Windows (versions 7.0-11.1). More information
regarding this support is available on Intel's
web site.
- MS eMbedded Visual C++ 4.0
- MS Xbox 360 XDK
Command Line Interface
In addition to its Visual Studio IDE integration, IncrediBuild can also be used
to distribute builds through a strong command line interface. Easily called from
any script or makefile, this tool makes integration with existing build systems
and scripts easy.
Interface Options
Using the XGE Interfaces extension
package, Windows-computational based processes such as data processing,
make-based builds, simulations, testing scripts and others can easily be
accelerated. 4 simple XML and command-line based interfaces are available, each
suited to a different scenario to help make the conversion to a grid-based,
distributed solution as simple and as rapid as possible.
Using the XGE Interfaces
The XGE interfaces use the standard
architecture of Agents (client
components) and Coordinator(server component managing the workload).
Once a task-set (a set of tasks for distribution along with their dependency
definitions) is defined through one of the interfaces described below, it can be
executed on any machine running an XGE Agent. Tasks are run concurrently both
locally and on remote machines, utilizing any additional CPUs or cores on
participating machines. Remote tasks are run in idle process priority, allowing
user workstations to contribute to the processing power and eliminating the need
for dedicated processing farms.
All tasks running on remote machines are executed using Process
Virtualization technology, which
simulates the initiating machine's environment on the remote machine to ensure
correct results. All error-recovery scenarios are also handled automatically by
XGE.
The Build Monitor Progress View visually displays the distribution
progress. Each bar is colored according to its corresponding message
severity and exit code. |
Available XGE Interfaces
Four distinct interfaces can be used to define the set of tasks to be
distributed through XGE:
XML Interface
The XML Interface is a general-purpose distribution interface which uses an
input XML file describing a set of command-line tasks to be run through the
Xoreax Grid Engine, along with their input files, output files and dependencies.
IncrediBuild is run with the XML file as input, distributing execution of the
tasks described in the XML file. As with all XGE interfaces, all remotely
performed tasks fully emulate the initiating machine's environment and file
system, eliminating the need to copy files or install applications on remote
machines.
Automatic Interception Interface
XGE can accelerate any make or build tool that supports spawning of several
processes in parallel (e.g. "gmake -j 5") by automatically translating this
capability to Grid-enabled, distributed execution, without requiring any changes
in the makefile or input file contents. Using this method, many build tools such
as JAM, SCONS, ANT, make variants and others can now easily run distributed
builds.
Submission Interface
The submission interface allows direct submission of command-line based tasks
for distributed execution from scripts, batch files and custom tools. Additional
features such as grouping tasks and pausing execution until specific groups of
tasks have completed execution are also available for scripting needs.
Visual Studio Interface
Using the XGE Interfaces extension package, execution of custom build steps,
build events (pre-build, pre-link, post-build) and custom build rules defined in
a Microsoft Visual Studio projects may be distributed to remote machines.
Dependency and output file definitions are considered to ensure correct
execution order.
For more in-depth information about the XGE Interfaces, consult the Online
User Manual.
Download IncrediBuild