Tools Spotlight: Incredibuild

Written in October 2013 edition of Develop magazine

Incredibuild aims to provide a paradigm shift in code build acceleration. With its custom distributed computing and process virtualisation technology, the software transforms any network of PCs and servers into a virtual high-performance computer.

It takes a single process, breaks it into components, and executes them concurrently in parallel across multiple machines. The greater number of source files, the larger the improvement.
Founded in 2002 by Uri Mishol and Uri Shaham, the idea behind this technology was to use distributed computing for continuous analysis, development, and monitoring.

“Incredibuild does not require any integration or API to be connected in order to work with it. For the code build acceleration, it is completely integrated with Microsoft Visual Studio and other build tools such as Make, GMake, Scons and many more,” the firm’s CEO Eyal Maor explains.
“Incredibuild supports other common compilers such as Intel C++, Intel Fortran and Nvidia’s CUDA. Any application can easily be configured to accelerate its heavyweight compute intensive processes with a simple file configuration.”
He continues: “One of the most interesting technological aspects of Incredibuild is that you don’t need to install anything on the remote machines except for an Incredibuild lit agent. Incredibuild’s unique process virtualisation technology creates the environment the remotely executed process requires while the process is executing. Much like a virtual machine virtualises an entire machine in advance, Incredibuild virtualises the environment the process requires on the fly, including input and output files, DLLs, registry information and more.”

The tool itself is has been used in the development of SimCity, FIFA, Halo, Grand Theft Auto, Pro Evolution Soccer, Need for Speed Most Wanted and The Sims. Many Microsoft Studios titles for Xbox 360, as well as games for PS3 and the Nintendo Wii U, have made use of Incredibuild. The firm is also cooperating with middleware providers who use its solution to accelerate their engines, such as Crytek, Epic Games and others.

Separate versions of Incredibuild have been made to serve different toolsets. For instance, Incredibuild for Visual Studio adds enhancements to the tool beyond just code acceleration. Once installed, an Incredibuild toolbar and menu appear in the Microsoft Visual Studio dev environment, offering Incredibuild’s distributed Build, Rebuild and Batch Build operations. Build progress and results are displayed in the Build Monitor, a graphical improved version of Visual Studio’s standard output window.

Incredibuild for Make & Build is used to accelerate the code compilation process for popular build engines: Make, MSBuild, Gmake, VSimake, Jam, NAnt, Jom, Python, VsiMake, BJam, Jam+, SCons, ANT, GNU Make and more.

Incredibuild for DevTools is a universal acceleration tool, speeding all processes in the Application Lifecycle Management (ALM) such as code analysis, QA scripts, unit testing, rendering, regression tests, compression, packaging and more. Incredibuild executes any process you command on a remote machine, using the environment of the initiating machine. QA and unit testing, for example, can run in parallel. Instead of eight tests simultaneously on a local machine, you can do one million tests on 1,000 machines.

Furthermore, Incredibuild can be used to accelerate independent processes by running them in parallel across unused CPUs in the network.

Finally, Maor says of the tool’s future: “We’re always adding compatibility with new development tools and tasks within the ALM process. The faster the hardware gets, the faster Incredibuild will go, so we’re always tracking new hardware developments.