MPCL Plugin

What is MPCL ?

MPCL is a plug-in for Microsoft Visual C++ 2005 and Visual C++2008, which allow to maximize the use of the CPU in order to minimize the compiling time of your project. It compiles several .c / .cpp files of the same project in parallel in order to achieve it. This is specially usefull when you have a Dual core / Quad core / Multi core processor.
Microsoft Visual C++ 2005 already has an option in the IDE to allow parallel project compilation, but it only compile in parallel files from different projects, and whenever they don't have any project dependencies. This imply that if you have a very big project with a lot of cpp files or you have many project dependencies it will only use 1 CPU most of the time. Microsoft added some per file parallel capabitiles but It seems that They didn't finish the work.
Microsoft Visual C++ 2008 has also parallel project compilation in the IDE, but with the same restrictions than in Visual C++ 2005. In this version Microsoft added proper support for parallel file compilation in order to compile files from the same project, but this compiler option has to be stored in the project settings, It is incompatible with some compiler options like /Gm ( incremental rebuild ), #import preprocessor directive and others and Microsoft has not provided a visual interface to enable it, so you have to manually add the compiler option to the project settings.

Dialog Settings Explanation

  • Enable MPCL : It will enable or disable MPCL (If You disable MPCL Visual Studio will behave like if MPCL is not installed)
  • Detected processors: Here you can see the maximum number or cores you can use for compiling your projects. (Set the slider to the number of files you want to compile in parallel)
  • Set compilation priority to IDDLE: This option set the compilation priority to the lowest one, so your computer will be more responsive when you do other things while you compile your project in background using the remaining cpu power.
  • Parallelization Approach:
  • BUILT-IN: MPCL adds for you the per file parallel compiler option based on your MPCL configuration dialog, in order to use the built-in parallel capabilities of Visual C++.
  • ALTERNATIVE: MPCL use a different approach in order to parallelize compilation and do not use the built-in parallel compiler option avoiding some of the buit-in incompatibilities.
  • AUTO: Let MPCL choose the best approach in order to successfully compile the project in parallel.

Usefull information about MPCL

  • If you have already installed other parallel compilation plugin to visual studio, you must disable the other product interoperability before installing MPCL V1.04. Since although both products can be installed, only one parallel compilation plugin can be active at a time.
    Previous versions of MPCL didn't check interoperability of other parallel compilation plugins installed and it could lead to Visual Studio corruption.
  • Current version supports parallel compilation whenever you start compilation using the VStudio IDE.
  • You can use MPCL with Windows XP, Windows Vista and Windows 7, 32 and 64 bit editions.
  • It has been designed for using with Visual Studio Standard and Professional Editions, although It could also work with other editions (even Express in certain configurations with some manual modifications to the registry in order to avoid the pre-requisite established in the installset)
  • It can be used for smart (ARM), 32 and 64 bits projects.
  • You can have versions for both platforms (MPCL for VC++2005, and MPCL for VC++2008) installed in your computer, each one with its own settings, but you can't have two versions (i.e 0.67 and 0.70) for the same platform, you must previously uninstall it.
  • Current version IS compatible with edit and continue feature.
  • MPCL won't parallelize compilation of .cpp files marked as "Create precompiled Header /Yc", so create only a few precompiled headers and mark all other files as "Use precompiled header /Yu"
  • You can disable Parallelization for specific projects in a solution, by adding NOMPCL to the list of Preprocessor definitions, in Project Settings/Configuration Properties/C/C++/Preprocessor. You can also avoid parallelization of some .cpp files by adding NOMPCL to the Preprocessor definitions of each .cpp file you don't want to parallelize, this must be done by right clicking the cpp file in your solution, selecting properties and adding NOMPCL to Configuration Properties/C/C++/Preprocessor. This option is only available from V0.65b
  • You can enable / disable MPCL from command line by using MPCL2008_INSTALLATION_DIRECTORY\SetMPCLConfig2008Cmd /enable or /disable. This option is only available from V1.04.