fsi和fsianycpu中的处理器数量不同

Mat*_*ner 3 f# task-parallel-library

我有一台机器上的以下怪异的行为与40芯:调用System.Environment.ProcessorCountfsi(12.0.30815.0)和fsianycpu(12.0.30815.0)导致不同的结果.

fsi我进入System.Environment.ProcessorCount = 32fsianycpu我得到System.Environment.ProcessorCount = 40.这似乎也会影响任务并行库,当运行简单的测试代码fsi(处理器数量错误)时,它只使用所有可用内核的80%.

可能是什么原因?

aka*_*ara 5

默认情况下,FSI可能在32位模式下运行.假设您在Windows下运行,您应该可以通过任务管理器进行检查.我怀疑这是在WoW64下运行的应用程序的限制(使用64位Windows运行32位应用程序).

请参阅:https://msdn.microsoft.com/en-us/library/windows/desktop/aa384228%28v=vs.85%29.aspx.不确切确认(没有WoW64的记录行为),但它提到32位Windows仅支持32个处理器.

编辑:同样看到这个其他堆栈溢出帖子:检测处理器的数量