sta*_*vro 7 parallel-processing r doparallel
我读到您必须stopCluster()在运行并行函数后使用:foreach()在 R 中。但是,我可以逃脱registerDoParallel(),然后运行foreach()任意多次,而无需使用stopCluster()。那我到底需要stopCluster()还是不需要?
不使用是否stopCluster()意味着您的核心正在忙于当前的任务?因此,如果我使用并行编程,中间只执行一点点单核顺序任务,那么我就不需要这样做stopCluster()?据我所知,设置并行也会产生大量的开销时间消耗。
Flo*_*ian 12
parallel::makeCluster()并doParallel::registerDoParallel()创建一组并行运行的 R 副本。这些副本称为工人。
parallel::stopCluster()并且doParallel::stopImplicitCluster()是关闭工人的安全方法。从帮助页面?stopCluster:
\n\n最好通过调用 \xe2\x80\x98stopCluster\xe2\x80\x99 来关闭工作线程:但是,一旦它们正在侦听命令的套接字不可用,工作线程将自行终止,如果主 R 应该这样做会话已完成(或其进程终止)。
\n
事实上,未使用的工作线程的 CPU 使用率通常可以忽略不计。然而,如果工作人员加载大型 R 对象(例如大型数据集),他们可能会使用大部分内存,从而减慢计算速度。在这种情况下,关闭未使用的worker会更有效率。
\n