【发布时间】:2012-07-20 04:19:36
【问题描述】:
我有一个循环,它正在加载大约 5MB 大小的文件,而不是在它们上运行一些计算。我需要加载 500-1000 个。对于 foreach 来说,这似乎是一项轻松的工作。
我正在这样做,但 doSNOW 的性能似乎很可怕。
我发现了这个帖子,这个家伙似乎也遇到了同样的问题:
http://statsadventure.blogspot.com/2012/06/performance-with-foreach-dosnow-and.html
有几个问题。
- 有没有 doSnow 的替代品?我知道有 doMC,但我正在运行 windows。
- Linux 上的 doMC 是否比 doSNOW 快得多?
- 是否有工作人员可以输出到屏幕,这样我至少可以了解我的工作进展如何。
提前谢谢你!
【问题讨论】:
-
那篇博文的作者最后似乎解决了他的问题:这对你的情况没有帮助吗?
-
我认为我的情况会很好,因为每个文件都需要几秒钟才能加载。事实并非如此。我目前正在尝试将 sfLapply 与降雪一起使用。但是稳定性很差。 R 一直在崩溃。
-
Parallel 尝试加载 不同的 文件可能会导致性能非常差。因此,如果文件的加载占用了相当多的总时间,那么顺序读取它们可能会好得多。如果没有,使用负载平衡并行化可能会有所帮助(例如
parallel::clusterApplyLB或其降雪类似物)。如果并行化没有负载平衡,您将处于所有线程同时从 HDD 请求不同文件的情况。 -
有什么特别的原因让你更喜欢 doXXX 而不是例如
parallel::clusterApply? -
感谢 cmets @cbeleites 能否详细说明我为什么需要使用负载均衡?
标签: performance r parallel-processing