我有两个数据帧; 一个是48行长,看起来像这样:
name = Z31
Est.Date Site Cultivar Planting
1 24/07/2011 Birchip Axe 1
2 08/08/2011 Birchip Bolac 1
3 24/07/2011 Birchip Derrimut 1
4 12/08/2011 Birchip Eaglehawk 1
5 29/07/2011 Birchip Gregory 1
6 29/07/2011 Birchip Lincoln 1
7 23/07/2011 Birchip Mace 1
8 29/07/2011 Birchip Scout 1
9 17/09/2011 Birchip Axe 2
10 19/09/2011 Birchip Bolac 2
Run Code Online (Sandbox Code Playgroud)
另一个是> 23000行,包含模拟器的输出.它看起来像这样:
name = pred
Date maxt mint Cultivar Site Planting tt cum_tt
1 5/05/2011 18 6.5 Axe Birchip 1 12.25 …
Run Code Online (Sandbox Code Playgroud) 好吧,所以我发布在In C#GetEnvironmentVariable("NUMBER_OF_PROCESSORS")中返回错误的数字,询问如何在C#中获取正确数量的内核.一些乐于助人的人向我提出了几个问题类似的问题,但我已经尝试过这些解决方案.然后我的问题被关闭,因为它与另一个问题是一样的,这是真的,但是,那里给出的解决方案没有用.所以我打开另一个希望有人能够帮助实现其他解决方案无法正常工作.
那个问题是如何通过.NET/C#找到CPU内核的数量?它使用WMI来尝试获取正确数量的内核.好吧,这是给出的代码的输出:
Number Of Cores: 32
Number Of Logical Processors: 32
Number Of Physical Processors: 4
Run Code Online (Sandbox Code Playgroud)
根据我的上一个问题,该机器是运行Windows Server 2008 R2 HPC版本的64核AMD Opteron 6276(4x16核心).
无论我做什么,Windows似乎总是返回32个核心,即使64个可用.我已经确认机器只使用32,如果我硬编码64个核心,那么机器会使用所有这些.我想知道AMD CPU的检测方式是否存在问题.
仅供参考,如果您还没有阅读上一个问题,如果我在命令行输入echo%NUMBER_OF_PROCESSORS,它将返回64.它只是不会在编程环境中执行.
谢谢,贾斯汀
更新:输出PROCESSOR_ARCHITECTURE从命令行返回AMD64,但从程序返回x86.该程序在64位硬件上运行32位.我被要求将其编译为64位,但它仍然显示32个核心.