如何为llply的并行模式设置preschedule = FALSE?

时间:2014-03-24 22:25:42

标签: r parallel-processing plyr multicore argument-passing

我想使用llply使用多核doParallel后端(即doParallel::registerDoParallel(cores=8))执行一些并行计算,但每次计算将花费不同的时间,因此我想将多核预先计划选项设置为false这个计算。但是,我不确定如何将此选项传递给llplyforeach将其传递给doParallelmclapply将其传递给library(plyr) library(doParallel) registerDoParallel(cores=2) x <- llply(1:10, sqrt, .parallel=TRUE) ,最终将其传递给{{1}}。任何人都可以举一个这样做的例子吗?

换句话说,如何在以下代码中禁用预调度?

{{1}}

1 个答案:

答案 0 :(得分:3)

你可以使用llply&#34; .paropts&#34;选项:

opts <- list(.options.multicore=list(preschedule=FALSE))
x <- llply(1:10, sqrt, .parallel=TRUE, .paropts=opts)

正如你猜测的那样,&#34; .paropts&#34;选项传递&#34; .options.multicore&#34; foreach的选项,它将其传播到doParallel,它使用mc.preschedule=FALSE调用mclapply。