开发者

Visual Studio 2010, how to build projects in parallel on multicore

I have a big solution开发者_Python百科 with more than 40 projects. Almost half of them are test projects. In my project we use both Code Contracts, Code Analysis, Style Analysis. I want to be able to build the projects that are not dependent in parallel on my quad core CPU.

How can I setup msbuild to build the projects in parallel?


In Visual Studio: Tools | Options | Projects and Solutions | Build and Run. This should default to your CPU count.

From the command line: msbuild /maxcpucount[:n] (is n is not specified, then it will use the CPU count).


You could launch the build in MSBuild in parallel by :

  • Setting the attribute BuildInParallel of MSBuild task to true

    <Target Name="RunInParallel">
      <MSBuild BuildInParallel="true"
               Projects="@(Projects)"
               Targets="RunCodeAnalysis">
      </MSBuild>
    </Target>
    
  • Or calling msbuild with the parameter /maxcpucount:X where X specifies the number of worker processes that are involved in the build. This solution better suits your need.

    msbuild [YourSolutionFile.sln] /maxcpucount:4 /p:Platform=AnyCpu;Configuration=Debug;
    

Scott Hanselman wrote a post on that, if you want to integrate (kinda) the process into Visual studio as an external tool.


For C++ projects you could configure multiprocessor build directly in Visual Studio :

Tools | Options | Projects and Solutions | Build and Run


I know that there is a clone of nmake that supports the -j switch to compile in parallel:

http://qt.gitorious.org/qt-labs/jom

and there is also a hack for MSbuild, just google it. I also know there is a tool that supports building on multiple machines and perhaps also on multiple cores, but I dont remember its name at the moment.

hope this helps.


Then real answer you are looking for is to add the /MP compiler flag to the CXX compiler flags.

In Visual Studio Under the project property page> C\C++ >General Multi-processor compilation just type Yes (/MP). Now it will build all 40 projects in parallel on each of the cores


This is now built in for Visual Studio 11 for all languages, not just C++. "Visual Studio 2010 included an option for "maximum number of parallel project builds." Although there was no indication of any restriction, this IDE option only worked for C++ projects. Fortunately, this restriction no longer applies to Visual Studio 11" from www.visualstudiomagazine.com

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜