Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux R中的并行处理:未使用所有内核_Linux_R_Multithreading_Parallel Processing - Fatal编程技术网

Linux R中的并行处理:未使用所有内核

Linux R中的并行处理:未使用所有内核,linux,r,multithreading,parallel-processing,Linux,R,Multithreading,Parallel Processing,我尝试运行一些“令人尴尬的并行”代码,所以我才开始研究并行处理。我试图在Linux机器上使用parlappy(因为它在我的Windows机器下工作得非常好,而mclappy将代码限制在Linux上),但我遇到了一些问题 我的代码是这样的: cl <- makeCluster(detectCores(), type="FORK") # fork -> psock when I use Win clusterExport(cl, some.list.of.things) out

我尝试运行一些“令人尴尬的并行”代码,所以我才开始研究并行处理。我试图在Linux机器上使用
parlappy
(因为它在我的Windows机器下工作得非常好,而
mclappy
将代码限制在Linux上),但我遇到了一些问题

我的代码是这样的:

 cl <- makeCluster(detectCores(), type="FORK") # fork -> psock when I use Win
 clusterExport(cl, some.list.of.things)  
 out <- parLapply(cl, some.fun)
 stopCluster(cl)
我需要在这里提到的是,我对任何Linux基础知识都不熟悉。它是由其他人运行的我的大学服务器,除了将“1”改为“ff”(无论“ff”代表什么)之外,我不知道上面的代码的实际含义和作用。无论如何,在执行了上述代码之后,我可以看到我的子进程中有8个进程中有3个获得了几乎全部的CPU时间,这是一个很大的改进

话虽如此,共有8个核心(由
detectCores()
确定)和8个子进程(如系统监视器中所示),但“只有”3个子进程在工作


考虑到我对并行处理一无所知,我想知道您是否可以给我一些指导,告诉我如何使用所有8个内核。我觉得自己就像一个盲人,不知道应该寻找什么来解决这种情况。任何关于我应该改变什么或可能出现什么问题的建议都将不胜感激

嗯,没人知道我可以从哪里开始找吗?
 system(sprintf("taskset -p 0xffffffff %d", Sys.getpid()))