如何让R使用计算机的所有核心?

Dai*_*ail 14 parallel-processing multicore r

我已经读过R只使用一个CPU.如何让R使用所有可用的内核来运行统计算法?

Rei*_*son 23

是的,对于初学者,请参阅CRAN上的高性能计算任务视图.这列出了可用于支持单台机器上的并行计算的软件包的详细信息.

从R版本2.14.0开始,通过并行包提供内置的并行计算支持,其中包括现有多核包的略微修改版本.该并行包有一个小插曲,你应该阅读.您可以使用以下方式查看:

vignette(package="parallel", topic = "parallel")
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以利用您的多核,例如通过使用多线程BLAS进行线性代数计算.

这些是否会加速你想要做的"统计计算"将取决于那些"统计计算"是什么.产生多个线程或工作人员需要花费很高的成本来设置它们,管理它们并收集结果.一些操作看到使用多个核心/线程的好处(一些大,一些小),其他操作由于这种额外的开销而减慢.

简而言之,不要期望通过使用n个核心而不是1 来减少n倍的计算时间.


mbq*_*mbq 9

如果您碰巧对同一事物进行了少量*迭代(或者针对少数*不同参数的相同代码),最简单的方法是运行R-OS的多个副本将在不同的核心上分配工作.
在相反的情况下,去学习如何使用真正的并行扩展.

为了这个答案,很少意味着核心数量的减少或相等.