Skip to content

Overview

These pages provide full documentation for the Turbo Build Accelerator for C++. A distributed build cluster for faster, seamless Visual Studio c++ builds.

The cluster comprises a central Scheduler and multiple Agents (one per machine).

Turbo Build Accelerator contains the following components :

The Scheduler

The Scheduler decides which Agent (machine) shall process the workloads, in order to best utilise the spare capacity within the cluster.

There is a single instance of this process within the Turbo Build Cluster.

See The Scheduler for more details.

The Agent

The Agent compiles c/c++ source code to object files. It can have this work delegated to it by :

  • the Hook for locally-initiated builds
  • from other remote Agents via instruction from the Scheduler

It communicates, via network sockets, with the Scheduler which decides where the work should be processed.

See The Agent for more details.

The Monitor GUI Application

An application giving graphical representation of the Agents and their workloads within the Cluster.

It communicates, via network socket, with the Scheduler to obtain status information for each of the Agents in the cluster.

Turbo Build Monitor showing a build in-progress
The Turbo Build Monitor showing a build in-progress

See The Monitor GUI Application for more details.

The Hook for Visual Studio builds

A critical component of Turbo Build Accelerator is how it redirects the usual build process to utilise Turbo.

Turbo Build Accelerator creates/updates Visual Studio Project User (.vcxproj.user) files. This alteration causes Visual Studio MSBuild to launch the Turbo Hook executable bin\turbo-cl.exe instead of the Microsoft Compiler cl.exe.

The Hook process will then launch cl.exe to pre-compile your c/c++ source files. It then communicates to the local Agent, passing the pre-compiled source. In turn the local Agent will then launch cl.exe to compile your c/c++ source.

See The Visual Studio Hook for c++ (cl.exe) for more details.

The Visual Studio Integration Extension

Turbo Build Accelerator has a Visual Studio Extension (VSIX) that helps you configure a solution to utilise Turbo for the building.

In Visual Studio IDE see menu Tools > Use Turbo Build Accelerator for this Solution. This enables you to override (for this Solution) the default behaviour of whether to use Turbo for your build.

Enable building with Turbo
Enable/disable building with Turbo for this Solution

The VS Extension for Turbo creates/modifies the Visual Studio Project User (.vcxproj.user) files. It stores the Tools > Options settings within the Solution .suo file. Turbo builds can then be achieved by requesting a build (as usual) within Visual Studio or by using the msbuild.exe command-line tool.

See The Visual Studio Integration Extension for more details.

The Visual Studio Command-line Integration

If operating in a non-GUI environment like in a automated build pipeline, then the Visual Studio Extension is not applicable.

In this situation you can use the tool turbo-vs-solution-enabler.exe to enable building via Turbo for a specified solution. e.g.

turbo-vs-solution-enablerd.exe /solution=C:\dev\example\src\example.sln /enable-turbo-build

See The Visual Studio Command-line Integration for more details.

Performance expectations

See Performance Considerations to get an idea what scale of benefit you can expect using Turbo Build Accelerator with your builds.