【问题标题】:Control number of cores for parallel execution控制并行执行的核心数
【发布时间】:2012-06-26 03:07:06
【问题描述】:

我已经安装了 NCrunch,它是一个用于(除其他外)并行测试执行的工具。它提供了两个设置 MaxNumberOfUsedCores 和 MaxNumberOfUsedThreads。第一个设置看起来很有趣。我不记得任何允许控制用于执行代码的内核的 .NET 方法。那么问题来了怎么做呢?

【问题讨论】:

标签: .net ncrunch


【解决方案1】:

你试过ProcessThread.ProcessorAffinity吗? ProcessorAffinity 将每个处理器表示为一个位。位 0 代表处理器 1,位 1 代表处理器 2,依此类推。例如:

var currectProcess = System.Diagnostics.Process.GetCurrentProcess();

foreach(System.Diagnostics.ProcessThread thread in currectProcess.Threads) 
{ 
    // this could give you something similar to MaxNumberOfUsedCores 
    thread.ProcessorAffinity = (IntPtr)0x0007; // Valid processors: 1, 2, or 3
}

现在我在 NCrunch 有以下配置,这看起来与之前的 c# 示例非常相似:

  • 分配给 NCrunch 的 CPU 内核数:0、1、2
  • 分配给 Visual Studio 的 CPU 内核数:3

但只有 NCrunch 的作者 @remco-mulder 可以告诉我们,这是真的还是假的。

顺便说一句:ReSharper 具有类似的选项来控制单元测试的并行运行线程数。

【讨论】:

    猜你喜欢
    • 2018-06-02
    • 2021-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    相关资源
    最近更新 更多