[从命令行使用Rscript
调用mclapply
时间歇性出现以下错误:
Error in sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE)) :
write error, closing pipe to the master
如果我在R Studio中或从交互式R会话中运行完全相同的代码,则不会收到此错误。在非常大的作业中,每个工人都必须将非常大的对象归还给小型作业,因此在各种情况下都会出现此错误。我也尝试关闭prescheduling
,但仍然会引发错误。有时候,如果我减少mc.cores
参数中的线程数,它将消失。我正在Ubuntu 18.04.1。上使用Microsoft R Open。它还在Ubuntu 16.04上弹出。我没有尝试过的一件事是在标准R中运行代码,而不是MRO。
这里是我的Rscript -e 'sessionInfo()'
:
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.1 LTS
Matrix products: default
BLAS: /opt/microsoft/ropen/3.5.1/lib64/R/lib/libRblas.so
LAPACK: /opt/microsoft/ropen/3.5.1/lib64/R/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] RevoUtils_11.0.1 RevoUtilsMath_11.0.0
loaded via a namespace (and not attached):
[1] compiler_3.5.1
有什么想法吗?有没有其他人遇到过这样的事情?对于没有可重现的示例,我深表歉意,但是到目前为止,我遇到错误的数据/代码非常大,无法共享,并且在其他情况下我无法重现该错误。它似乎只是随机发生。
尝试升级到R v3.6.0或更高版本。
我也遇到了同样的问题,这是由并行包中的错误(使用未初始化的变量)引起的,如此处详细讨论的:https://r.789695.n4.nabble.com/error-in-parallel-sendMaster-td4760382.html。