问题描述
我有一台运行 R 4.0.2 的 8 核 RHEL Linux 机器。
如果我向 R 询问内核数量,我可以确认有 8 个可用。
> print(future::availableWorkers())
[1] "localhost" "localhost" "localhost" "localhost" "localhost" "localhost"
[7] "localhost" "localhost"
> print(parallel::detectCores())
[1] 8
但是,如果我运行这个简单的例子
f <- function(out=0) {
for (i in 1:1e10) out <- out + 1
}
output <- parallel::mclapply(1:8,f,mc.cores = 8)
我的 top
表示只使用了 1 个核心(因此每个工作人员使用了该核心的 1/8,或整个机器的 1/64)。
%Cpu0 :100.0 us,0.0 sy,0.0 ni,0.0 id,0.0 wa,0.0 hi,0.0 si,0.0 st
%Cpu1 : 0.0 us,100.0 id,0.0 st
%Cpu2 : 0.0 us,0.0 st
%Cpu3 : 2.0 us,98.0 id,0.0 st
%Cpu4 : 0.0 us,0.0 st
%Cpu5 : 0.0 us,0.0 st
%Cpu6 : 0.0 us,0.0 st
%Cpu7 : 0.0 us,0.0 st
KiB Mem : 32684632 total,28211076 free,2409992 used,2063564 buff/cache
KiB Swap: 16449532 total,11475052 free,4974480 used. 29213180 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3483 user 20 0 493716 57980 948 R 1.8 0.2 0:18.09 R
3479 user 20 0 493716 57980 948 R 1.5 0.2 0:18.09 R
3480 user 20 0 493716 57980 948 R 1.5 0.2 0:18.08 R
3481 user 20 0 493716 57980 948 R 1.5 0.2 0:18.09 R
3482 user 20 0 493716 57980 948 R 1.5 0.2 0:18.09 R
3484 user 20 0 493716 57980 948 R 1.5 0.2 0:18.09 R
3485 user 20 0 493716 57980 948 R 1.5 0.2 0:18.09 R
3486 user 20 0 493716 57980 948 R 1.5 0.2 0:18.09 R
有人知道这里会发生什么吗?另一个记录类似行为的 StackOverflow 问题是 here。很明显,我以某种方式搞砸了安装。我关注了 RHEL 7 的 these install instructions。我猜缺少一个依赖项,但我不知道去哪里找。如果有人对运行诊断等有任何想法,他们将不胜感激。
为了进一步了解,我的机器上还安装了 R 3.4.1,当我运行此代码时,一切正常。 (我通过 yum
安装了那个版本。)
我昨天还使用上面链接的相同说明安装了 R 4.0.3,但它遇到了同样的问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)