library(parabar)
## async 指定开启异步并行
backend <- start_backend(cores = ncores, cluster_type = "psock", backend_type = "async") ##开启并行后端 ncores 指定使用的核心数
export(backend, export.vars, environment()) ## export.vars 导入各个后端的变量名
evaluate(backend, {library(dplyr); library(terra); library(sf); NULL}) ## 需要引用的包
configure_bar(type = "basic", style = 3) ## 配置进度条样式
par_sapply(backend, x = 1:100, fun = function(i) {
## 输入计算过程
})
stop_backend(backend) ## 终止并行后端
可以将以上过程写入一个函数,方便调用。
比较:
foreach 包经过配置后也具备显示进度条的功能,且也是异步后端,但感觉不是很稳定。
pbapply 主打进度条,但是貌似无法异步并行,效率大打折扣。
parallel包中的parLapplyLB虽然可以开启负载均衡,但是难以添加进度条。
