如何为多处理器机器编译C#?(使用VS 2010或csc.exe)

Gir*_*rdi 3 c# multicore compilation visual-studio-2010

问候!

我在MSDN上搜索了编译器(csc.exe)选项,我在Stackoverflow找到了一个关于使用多个处理器进行编译的答案.但我的问题是有关编译多个处理器,如下所示.

我即将毕业的大学有11个机器集群(有6个四核和5个四核双处理机器).它在linux下运行,但我可以在那里安装MONO.而不是使用多个处理器或内核进行编译,我想多个处理器机器编译.所以:

  • 是否有任何关于如何做的具体细节或该系统上的CLR应该处理执行以将其分布到核心?
  • 如果有办法做到这一点,我怎么能用VS2010或csc.exe命令行编译器来做?

在此先感谢,如果这个问题毫无意义,我很抱歉.我真的不知道如何处理多个核心,因为我只是一个物理学家,而不是一个计算机科学家!:)

Jon*_*eet 11

您不需要以任何不同的方式编译以考虑多个核心.您需要以不同的方式编写代码,以使用多个线程.如果您可以在您的环境中使用.NET 4中的类(Mono的最新版本应该支持此类),您可以使用任务并行库,这使得这更容易一些.

基本上你没有免费获得并发 - 你必须考虑你的代码中哪些位可以并行运行.您可能希望阅读模式和实践组的输出以进行并行编程.(这本书是一个非常好的起点.)


SLa*_*aks 7

你的假设是正确的; 你的问题毫无意义.

不可能神奇地并行化任意代码; 您需要修改代码以使用多个线程.

您可以通过使用ThreadThreadPool类,或使用并行LINQ或TPL 在C#中显式使用多个内核.
没有涉及特殊的编译器.