在 R 中使用“mclapply”进行并行计算,Linux
Parallel computing using `mclapply` in R, Linux
如何将下面的代码转换为在 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
在命令终端上,这可以在两个代码之间使用 &
执行,但我需要从 R
读取 nfac
和 n
你在找这样的东西吗,
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))
如何将下面的代码转换为在 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
在命令终端上,这可以在两个代码之间使用 &
执行,但我需要从 R
nfac
和 n
你在找这样的东西吗,
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))