registerDoMC有可移植的替代品吗?
我最初设置doMC::registerDoMC。。。但后来意识到它在windows上不起作用,并认为可能实际上不需要它,因为我只需要并行处理以下函数,这些函数在文档中没有说明任何关于doMC的内容:registerDoMC有可移植的替代品吗?,r,parallel-processing,multicore,R,Parallel Processing,Multicore,我最初设置doMC::registerDoMC。。。但后来意识到它在windows上不起作用,并认为可能实际上不需要它,因为我只需要并行处理以下函数,这些函数在文档中没有说明任何关于doMC的内容: parallel::mclapply(..., mc.cores = ncores) caret::train(..., trControl = trainControl(..., allowParallel=T)) 然而,令我惊讶的是,没有doMC::registerDoMC,一切都运行单核 有
parallel::mclapply(..., mc.cores = ncores)
caret::train(..., trControl = trainControl(..., allowParallel=T))
然而,令我惊讶的是,没有doMC::registerDoMC,一切都运行单核
有没有一种可移植的方法来取代doMC::registerDoMC。。。用什么
更新
在Ubuntu 18.04和R3.6.x中,具有:
ncores <- parallel::detectCores()
因此:
if(!require(doParallel)) install.packages("doParallel")
cl <- makeCluster(ncores)
registerDoParallel(cl, ncores)
caret::train(..., trControl = trainControl(..., allowParallel=T))
stopImplicitCluster()
免责声明:我是作者 尝试foreach后端
doFuture::registerDoFuture()
future::plan("multisession")
作为doFuture验证测试的一部分,我使用不同的future并行后端运行所有示例。到目前为止,他们都通过了doFuture,这表明future框架能够自动识别需要导出到后台工作人员的所有global。这不是真的,比如说,-我认为主要原因是插入符号中的并行化仅仅是?使用类似多核的后端进行测试,其中globals只起作用,例如..检查未来和未来xxx包,否则doParallelFYI,它要么是doParallel::registerDoParallelcl=cluster,要么是doParallel::registerDoParallelcores=n。注意,它们提供了两个完全不同的并行化后端。。。除非在MS Windows上,后者在内部成为前者的变体。cl是一个强制参数,这就是我必须创建cl集群的原因。。简单性究竟发生了什么:不正确的数据;它是cl或cores,而不是两者。你凭什么相信这是强制性的?太好了!谢谢麦克拉普利怎么样?我不想重写我的代码。。。我需要吗?所以,阿福,这部分有点离题了,因为上面是关于“插入符号”,它内部依赖于“foreach”。话虽如此,您应该能够用future.apply::future\u lappy调用替换parallel::mclappy。后者将使用您在future::plan…中指定的任何并行后端。。。。
Aggregating results
Something is wrong; all the RMSE metric values are missing:
RMSE Rsquared MAE
Min. : NA Min. : NA Min. : NA
1st Qu.: NA 1st Qu.: NA 1st Qu.: NA
Median : NA Median : NA Median : NA
Mean :NaN Mean :NaN Mean :NaN
3rd Qu.: NA 3rd Qu.: NA 3rd Qu.: NA
Max. : NA Max. : NA Max. : NA
NA's :162 NA's :162 NA's :162
Error: Stopping
In addition: Warning message:
In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, :
There were missing values in resampled performance measures.
doFuture::registerDoFuture()
future::plan("multisession")