我使用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'时,无论是在我的本地机器还是在集群中,一切都运行得很好。我该如何解决这个问题?
1条答案
按热度按时间nkkqxpd91#
这可能是由于请求的RAM与R需要的RAM相比太少。尝试在作业提交中增加
--mem
或--mem-per-cpu
的数量。看起来请求的内存足够map
,但不足以future_map
。