r - R future_lapply 与 SLURM 仅按顺序运行
问题描述
我正在使用这个 SLURM 脚本来初始化作业:
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=11
#SBATCH --time=08:00:00
和一个沿着这些线的Rscript:
library
data
model_function <- lots of code
plan(multisession, workers=11)
sim_function <- function(sim_run) {
future_lapply(future.seed = TRUE, vals, function(vv){
res <- model_function()
names(res) <- c(...long list of names...)
dat <- reshape2::melt(res) %>% filter(L1 != "time") %>% mutate(
time = Var1,
Var1 = L1,
L1 = NULL) %>%
mutate(age_group = cut(Var2, custom_age_groups)) %>%
group_by(Var1, age_group, time) %>%
summarise(value = sum(value)) %>%
mutate(year = ceiling(time / 365),
vv=vv)
filename <- paste0(...,vv,".RDS")
filename_Rt <- paste0(...,vv,".RDS")
saveRDS(dat,filename)
saveRDS(just_Rt,filename_Rt)
})
filename <- paste0(...,"_sim_run_",sim_run,".RDS")
consolidate_files(filename)
}
lapply(1:20, function(sim_run) sim_function(sim_run))
我似乎无法让这件事并行运行。
我尝试了很多不同的计划:
plan(list(tweak(cluster, workers=1),tweak(multisession, workers=11)))
plan(list(tweak(sequential),tweak(multisession)))
plan(list(tweak(sequential),tweak(multicore)))
我尝试使用 future_lapply 代替:
future_lapply(1:20, function(sim_run) sim_function(sim_run))
尽管启动了并行会话,所有这些似乎仍然按顺序运行,是否有一些我没有看到的拓扑?
该代码在我的 Windows 桌面上运行良好,所以也许我没有正确使用 SLURM?
解决方案
推荐阅读
- sql - 数据库中的表类型列
- php - PATCH 方法和 CORS 预检请求存在问题
- bash - 自动截断 bash 中的长输出
- asp.net-core - 将 CorrelationId 添加到来自 asp dotnet core applcation 的应用程序洞察日志记录和遥测
- java - 如何在不截断字符串格式的情况下显示双精度浮点数?
- javascript - 如何对导致一些繁重的异步处理的用户事件进行序列化
- android - Firebase 实时数据库 数据消耗大
- node.js - NodeJs 部署在已包含内容的站点上
- python - 在两个边界之间积分高斯分布 [Python]
- typescript - 排除 node_modules 时出现打字稿错误