Mai*_*ian 5 cpu r cpu-usage cpu-cores ubuntu-server
我的R通常显示在“顶部”使用了100%以上的CPU,这是否意味着它使用了1个以上的内核?据我了解,除非使用某些并行计算程序包,否则R默认情况下使用1个CPU内核。但是我只是使用step()函数。它是Dell T410 + Ubuntu Server 14.04 + R 3.3.2。
是R 3.3.2还是Dell Server或Ubuntu Server 14.04有所帮助?还是仅仅是“顶部”的错误?
top - 17:42:39 up 11:09, 2 users, load average: 16.00, 16.01, 15.98
Tasks: 282 total, 3 running, 279 sleeping, 0 stopped, 0 zombie
%Cpu(s): 14.9 us, 85.1 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 24668964 total, 23472468 used, 1196496 free, 229884 buffers
KiB Swap: 25145340 total, 60 used, 25145280 free. 1117020 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17704 can 20 0 21.495g 0.020t 13016 R **1540** 87.1 4458:52 rsession
17748 can 20 0 26632 1780 1172 S 0.7 0.0 0:50.62 top
2528 can 20 0 105660 2276 1260 S 0.3 0.0 0:00.01 sshd
Run Code Online (Sandbox Code Playgroud)
即使您的代码在技术上是单线程的,R似乎经常使用多个内核。这经常发生是因为R在不同处理器之间切换太快而无法注意到。我以下面的代码为例。在Windows 10机器上运行它时,我看到两个处理器在努力工作。
library(microbenchmark)
pb <- txtProgressBar(min = 0, max = 100, style = 3)
for(i in 1:100) {
microbenchmark(rnorm(10000), runif(10000), rpois(10000, 1))
setTxtProgressBar(pb, i)
}
close(pb)
Run Code Online (Sandbox Code Playgroud)
如果您想了解更多有关计算机尝试使用相同逻辑处理器的情况的信息,请查找“处理器亲和力”。