在Linux中,R只在特定的CPU上运行

在Linux中,R只在特定的CPU上运行,r,linux,parallel-processing,rhel,R,Linux,Parallel Processing,Rhel,我有一台运行R4.0.2的8核RHEL Linux机器 如果我问R的核心数量,我可以确认8个可用 打印(future::availableWorkers()) [1] “localhost”“localhost”“localhost”“localhost”“localhost”“localhost”“localhost” [7] “本地主机”“本地主机” >打印(并行::detectCores()) [1] 8 但是,如果我运行这个简单的示例 f首次运行 system(sprintf(“任务集

我有一台运行R4.0.2的8核RHEL Linux机器

如果我问R的核心数量,我可以确认8个可用

打印(future::availableWorkers()) [1] “localhost”“localhost”“localhost”“localhost”“localhost”“localhost”“localhost” [7] “本地主机”“本地主机” >打印(并行::detectCores()) [1] 8 但是,如果我运行这个简单的示例

f首次运行

system(sprintf(“任务集-p0xffffffff%d”,Sys.getpid()))
然后是你的简单例子


f您使用
workers@jared_mamrot是否得到相同的结果是的,我使用您建议的代码得到相同的行为。刚刚在分配了两个内核的Linux/Debian虚拟机上测试了它:两个内核都被100%激活。如果您使用“socket”方法遇到相同的问题,则可能是openBLAS的问题。在这里尝试故障排除建议(
system(sprintf(“taskset-p0xffffffff%d”,Sys.getpid())
)和解决方案:/So运行
system(sprintf(“taskset-p0xffffffff%d”,Sys.getpid())
,然后运行您的简单示例仍然只使用一个核心。。。您能否在问题中包含命令
sessionInfo()
的输出?同样值得一提的是,一个更好的解决方案是将上面的
system()
调用添加到我的
.Rprofile
文件中,在函数
.First()
中,如下所述:。这确保在每个R会话开始时调用该命令。
%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,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  2.0 us,  0.0 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  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