在远程集群中使用时,R的future_map()函数出错

relj7zay  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(129)

我使用university的集群来执行一些计算。我运行的代码:

cl <- makeCluster(detectCores())
plan(cluster, workers = cl)
selected_a <- future_map(dat, ~abess(as.matrix(.x[, names(X)]),
.x[, "errs"]), support.size = 10)
stopCluster(cl)

它返回以下错误:
terminate在抛出'std::bad_alloc'的示例后调用what():std::bad_alloc在unserialize(node$con)中出错:ClusterFuture()无法从群集SOCKnode #1(在'localhost'上)接收结果。报告的原因是'erreur de lecture de la connexion'。事后诊断:导出的8个全局变量的总大小为1.18 MiB。三个最大的全局变量是'... furrr_chunk_args'(类'list'的605.80 KiB),'X'(类'numeric'的581.48 KiB)和'as.matrix'(类'function'的11.45 KiB)
代码在我的本地机器上运行良好。另外,当我在上面的代码中将'future_map'更改为'map'时,无论是在我的本地机器还是在集群中,一切都运行得很好。我该如何解决这个问题?

nkkqxpd9

nkkqxpd91#

这可能是由于请求的RAM与R需要的RAM相比太少。尝试在作业提交中增加--mem--mem-per-cpu的数量。看起来请求的内存足够map,但不足以future_map

相关问题