例如,我需要在并行处理中包含引导程序包。但是,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()
)也找不到引导包。
我对此不知所措。该代码可在另一台计算机上正常工作。