小编Jus*_*tin的帖子

R - 需要帮助加速for循环

我有两个数据帧; 一个是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)

for-loop r vectorization dataframe data.table

5
推荐指数
1
解决办法
295
查看次数

c#STILL返回错误的内核数量

好吧,所以我发布在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个核心.

.net c# cpu multicore

5
推荐指数
1
解决办法
1597
查看次数

标签 统计

.net ×1

c# ×1

cpu ×1

data.table ×1

dataframe ×1

for-loop ×1

multicore ×1

r ×1

vectorization ×1