registerDoParallel使用doParallel软件包时集群和核心有什么区别?
我的理解是正确的,在单机上这些是可以互换的,我会得到相同的结果:
cl <- makeCluster(4)
registerDoParallel(cl)
Run Code Online (Sandbox Code Playgroud)
和
registerDoParallel(cores = 4)
Run Code Online (Sandbox Code Playgroud)
我看到的唯一区别makeCluster()是必须明确停止使用stopCluster().
我开发了一个包含令人难以置信的并行功能的R包.
我希望以对用户透明的方式实现这些功能的并行化,而不管他/她的OS(至少理想情况下).
我环顾四周看看其他软件包作者是如何导入基于foreach的Parallelism的.例如,Max Kuhn的caret包导入foreach要使用,%dopar%但依赖 于用户指定并行后端.(使用了几个示例doMC,这在Windows上不起作用.)
注意doParallel适用于Windows和Linux/OSX并使用内置parallel包(请参阅此处的注释以进行有用的讨论),导入doParallel并registerDoParallel()在用户指定parallel=TRUE为参数时调用函数是否有意义?