为什么并行集群无法加载我的R包?

时间:2018-06-22 17:33:22

标签: r parallel-processing

例如,我需要在并行处理中包含引导程序包。但是,clusterEvalQ无法正常工作;例如,工人没有包裹。下面是代码和输出。我认为这与图书馆的位置有关,但工人看到的是相同的图书馆位置。

我已经搜索了类似的问题,但是都可以通过clusterEvalQ或设置正确的库位置来解决……这似乎都不是我的问题。谢谢你的帮助!这以前曾起作用,但现在没有。我尝试删除/重新安装软件包。

.libPaths()
> [1] "C:/Users/USERNAME/Documents/R/win-library/3.5"
> [2] "C:/Program Files/R/R-3.5.0/library" 

require(boot) # loads

###

cluster <- parallel::makeCluster(2)

parallel::clusterEvalQ(cl   = cluster,
                       expr = {.libPaths()})
> [[1]]
> [1] "C:/Users/USERNAME/Documents/R/win-library/3.5"
> [2] "C:/Program Files/R/R-3.5.0/library"                   
>
> [[2]]
> [1] "C:/Users/USERNAME/Documents/R/win-library/3.5"
> [2] "C:/Program Files/R/R-3.5.0/library" 

###

parallel::clusterEvalQ(cl   = cluster,
                       expr = {require(boot)})
> [[1]]
> [1] FALSE
>
> [[2]]
> [1] FALSE

###

parallel::stopCluster(cl = cluster)

编辑 经过一番搜索,似乎工人正在被扔到其他地方。运行Sys.info()会导致

           sysname            release            version 
         "Windows"         ">= 8 x64"       "build 9200" 
          nodename            machine              login 
         "NODE"                 "x86-64"        "USERNAME" 
              user     effective_user 
           "USERNAME"    "USERNAME"

上班时是

           sysname            release            version 
         "Windows"         "10 x64"       "build 14393" 
          nodename            machine              login 
           "NODE"            "x86-64"           "USERNAME" 
              user     effective_user 
           "USERNAME"     "USERNAME"

“节点”和“用户名”都相同。那么...工人们被扔到了另一个Windows版本吗?我计算机上的系统信息显示了工作进程中列出的版本。

我尝试使用Rgui而不是Rstudio,并且Sys.info()返回与工作程序相同的信息。但是,它显示启动已安装。但是,再次使用Rgui创建的工作程序(与工作程序具有相同的Sys.info())也找不到引导包。

我对此不知所措。该代码可在另一台计算机上正常工作。

0 个答案:

没有答案