Mat*_*ner 3 f# task-parallel-library
我有一台机器上的以下怪异的行为与40芯:调用System.Environment.ProcessorCount在fsi(12.0.30815.0)和fsianycpu(12.0.30815.0)导致不同的结果.
在fsi我进入System.Environment.ProcessorCount = 32fsianycpu我得到System.Environment.ProcessorCount = 40.这似乎也会影响任务并行库,当运行简单的测试代码fsi(处理器数量错误)时,它只使用所有可用内核的80%.
可能是什么原因?
默认情况下,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个处理器.
编辑:同样看到这个其他堆栈溢出帖子:检测处理器的数量