我想使用llply使用多核doParallel后端(即doParallel::registerDoParallel(cores=8)
)执行一些并行计算,但每次计算将花费不同的时间,因此我想将多核预先计划选项设置为false这个计算。但是,我不确定如何将此选项传递给llply
,foreach
将其传递给doParallel
,mclapply
将其传递给library(plyr)
library(doParallel)
registerDoParallel(cores=2)
x <- llply(1:10, sqrt, .parallel=TRUE)
,最终将其传递给{{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。