【问题标题】:Parallel computing using `mclapply` in R, Linux在 R、Linux 中使用“mclapply”进行并行计算
【发布时间】:2020-11-26 22:28:31
【问题描述】:

如何转换下面的代码以在 5 核上执行并行作业?

从串行处理

nfac=length(values)
n=10
for (i in 1:5){
system(sprintf('./tools/siteLevelFLUXNET/morris/%s/prep_model_params.sh %s %s %s',i,nfac,n))
}

并行处理

system(sprintf('./tools/siteLevelFLUXNET/morris/1/prep_model_params.sh %s %s %s',nfac,n)) on core 1
.
.
.
system(sprintf('./tools/siteLevelFLUXNET/morris/5/prep_model_params.sh %s %s %s',nfac,n)) on core 5

在命令终端上,这可以在 2 个代码之间使用 & 执行,但我需要从 R 读取 nfacn

【问题讨论】:

    标签: r parallel-processing mclapply


    【解决方案1】:

    您是否正在寻找类似的东西,

    library(parallel)
    nfac=length(values)
    n=10
    # define a function 
    fun_i<-function(i)
    {
      return(system(sprintf('./tools/siteLevelFLUXNET/morris/%s/prep_model_params.sh %s %s %s',i,nfac,n)))
    }
    
    
    do.call("cbind", mclapply(X=1:5,FUN = function(X)fun_i(X),mc.cores=5))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-01
      • 2021-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      相关资源
      最近更新 更多