我正在使用大学的集群来执行一些计算。我运行的代码:
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)
返回以下错误:
抛出std::bad_alloc实例后终止调用(): std:: bad_alloc反序列化(node$con)时出现错误:日志含义ClusterFuture()从localhost上的socknode# 1接收结果失败。报告的原因是"连接错误"。验尸诊断:导出的8个全局文件的总大小为1.18 MiB。全球最大的三个是……furrr_chunk_args '(类' list '的605.80 KiB), ' X '(类' numeric '的581.48 KiB)和' as。矩阵'(类' function '的11.45 KiB)
代码在我的本地机器上运行良好。此外,当我在上面的代码中将'future_map'更改为'map'时,在我的本地机器和集群中一切都工作得很好。怎么解呢?
这可能是由于请求的RAM与R所需的RAM相比太少。尝试增加作业提交中--mem
或--mem-per-cpu
的数量。看起来请求的内存对于map
是足够的,但对于future_map
则不够。