我读到过R只使用一个CPU。如何让R使用所有可用的内核来运行统计算法?
发布于 2011-11-11 17:26:58
是的,对于初学者,请参阅CRAN上的High Performance Computing任务视图。该表列出了可用于支持单机并行计算的包的详细信息。
从R版本2.14.0开始,通过parallel package内置了对并行计算的支持,其中包括对现有snow和多核软件包的略微修改版本。parallel包中有一个您应该阅读的小插曲。您可以使用以下命令查看它:
vignette(package="parallel", topic = "parallel")还有其他方法可以利用您的多核,例如,通过使用多线程BLAS进行线性代数计算。
这是否会加快您想要进行的“统计计算”,将取决于这些“统计计算”是什么。派生多个线程或工作线程需要开销成本来设置它们、管理它们并收集结果。一些操作看到了使用多核/线程的好处(一些大,一些小),其他的则因为这种额外的开销而变慢了。
简而言之,不要期望通过使用n个内核而不是只使用1个内核来减少n倍的计算时间。
发布于 2011-11-11 17:34:26
如果你碰巧对同一件事进行了很少的*次迭代(或者相同的代码只有几个*不同的参数),最简单的方法就是运行R的几个副本-- OS会将工作分配到不同的内核上。
在相反的情况下,去学习如何使用真正的并行扩展。
对于这个答案,很少意味着内核数量少于或等于内核数量。
https://stackoverflow.com/questions/8091674
复制相似问题