DevTools Solution
This Incredibuild solution allows you to adapt Incredibuild to accelerate many types of time-consuming, multi-process executions. These executions can be either home grown tools and scripts, open source products or commercial tools.
With the various interfaces Incredibuild offers, integrating heavy duty executions to be accelerated by Incredibuild will usually require only a few minutes of work.
Various common executions that users are accelerating with the Incredibuild DevTools solution are:
-
Unit tests - either known infrastructures, such as gtest, vstest, mstest, cppunit and others, or custom test solutions
-
Other test types and QA processes, such as API tests, integration tests and stress tests
-
Simulations
-
Compressions
-
Packaging
-
Rendering
-
Code analysis
-
Quantitative analysis
-
Data conversions (for example: audio conversion, image conversion)
-
Code generation
-
Code obfuscation
-
Assets creation
In cases where you have executions that are time consuming and consists of many processes that can be executed in parallel, the DevTools Solution allows you to use Incredibuild to accelerate these executions. Incredibuild distributes the processes to be executed on remote machines in the network, while using the idle CPU cycles of these machines. Thus, it transforms any machine that executes these time consuming executions into a virtual super computer, which is capable of using the hundreds of cores you already own in your network or the public cloud.
Essentially, if your execution can run faster if executed on hundreds of cores instead of only the host machine's cores, Incredibuild is the right solution for you.
Incredibuild's Virtualization Technology allows you to distribute these tasks to remote machines without the need to copy the execution environment or any files that are required by the distributed processes onto the remote machines. Any output generated by the remotely executed processes will also be seamlessly synchronized by Incredibuild back to the initiating machine.
For example, when executing thousands of unit tests, you are limited with the overall performance you can achieve due to the limited number of cores you have on your local host. However, with the DevTools Solution the thousands of tests can be distributed by Incredibuild to be seamlessly executed on all the idle cores you have in your network or public cloud, which will make your test execution much faster.
The Incredibuild DevTools solution offers three distinct Integration Interfaces to accelerate execution of these (and other) types of processes. As with all distributed Incredibuild jobs, 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. From your perspective, integrating Incredibuild to your executions will simply mean you can use hundreds of cores as though they reside in your local workstation.
Quick summary of the three interfaces:
-
Submission Interface - A manual (command line) interface that enables you to execute processes either using batch files or from within their application, utilizing remote machine's CPUs and memory in a parallel way.
-
Interception Interface - An automatic interface that allows you to specify a process name. Whenever this process name will be executed by your application, Incredibuild will automatically execute this process on a remote machine instead of the local machine. This interface gives you full control over the spawned processes or applications, inter-dependencies, etc.
-
XML Interface - A general-purpose distribution interface which uses an input XML file describing a set of command-line tasks to be run by Incredibuild, along with their input files, output files and dependencies.
For detailed information on supported Interfaces and when to use them, refer to the Choosing the Ideal Interface section.
The Build Monitor will be available once you execute your heavy duty executions with Incredibuild. It will allow you to visualize your executions, detect errors and bottlenecks, reveal insights and much more.