Predictive Execution

Predictive execution is feature that enhances the parallelization of tasks by allowing out of order task spawing. It can be applied to builds with Visual Studio, MSBuild C++, and Android NDK compilations.

You can enable or disable this feature in the Agent Settings > Visual Studio Builds > Advanced tab.

Overriding the Agent's Predictive Execution Setting on a Single Build

Regardless of whether predictive execution is enabled or disabled in the user interface, you can manually enable or disable it for a single build using the command line.

When using BuildConsole commands, using the /pemode flag. /pemode=0 disables predictive execution, while /pemode=2 enables it.

Supported MSBuild Versions

This feature is tightly integrated with MSBuild. Therefore, it requires the Incredibuild team to certify each MSBuild version that is released by Microsoft prior to allowing the predictive execution feature to be used.

If the MSBuild version you are working with is higher than any of the versions listed below, you can either contact Incredibuild’s support at support@Incredibuild.com and ask us to certify this version, or you can try manually instructing Incredibuild to use the predictive execution feature with the MSBuild version you are currently using and see whether you receive the expected results.

Incredibuild 9.6.x

  • Visual Studio 2022 supports MSBuild 32 bit up to version 17.0.0.80000.

    • Limitation: Visual Studio 2022 MSBuild 64 bit is not currently supported for predictive execution.

  • For Incredibuild 9.6.4 and higher, Visual Studio 2012 supports MSBuild up to version 4.8.3761.0.

  • For Incredibuild 9.6.0 to 9.6.3, Visual Studio 2012 supports MSBuild up to version 4.8.3752.0

  • For Visual Studio 2019 and below, the list is the same as below .

Incredibuild 9.5.x (Build 3385) and earlier:

  • Visual Studio 2019 supports MSBuild up to version 16.200.19.32702

  • Visual Studio 2017 supports MSBuild up to version 15.9.21.664

  • Visual Studio 2015 supports MSBuild up to version 14.0.27530.0

  • Visual Studio 2013 supports MSBuild up to version 12.0.40629.0

  • Visual Studio 2010/2012 support MSBuild up to version 4.8.3752.0

Manually Enabling Predictive Execution for an MSBuild Version

If the MSBuild version you are using is not listed above and you’d like to try enabling the predictive execution feature regardless, or if the MSBuild version installed on your host machine is listed above as supported by the Incredibuild version you are currently using, and you see a warning message in the Incredibuild Build Monitor directing you to this page, do the following:

  1. Open the Coordinator Monitor from the machine on which the Coordinator is installed, by right-clicking the Incredibuild tray icon->Coordinator Monitor.

  2. Select all the Initiator machines in the Agents list (you can also select all the Agents if it's easier for you).

  3. Right-click and choose the popup menu option "Set Registry Value".

  4. In the dialog box that appears, enter the following:

    • CategoryBuilder

    • Name: MSBuildMaxSupportedVersionXX.X (XX.X is the version number corresponding to the Visual Studio version. See the list below)

    • Data: <current MSBuild version>

  5.  The XX.X version number above should be replaced according to your Visual Studio version as follows:
    • Visual Studio 2010 -> 10.0
    • Visual Studio 2012 -> 11.0
    • Visual Studio 2013 -> 12.0
    • Visual Studio 2015 -> 14.0
    • Visual Studio 2017 -> 15.0
    • Visual Studio 2019 -> 16.0
    • Visual Studio 2022 -> 17.0
  6. Your Incredibuild Initiators should now be able to benefit from the additional performance boost provided by the Incredibuild Predictive Execution feature.