阅读R-project网站时,有一些(不清楚)提到了使用R进行多线程处理,但不清楚基本产品和CRAN库是如何编译的.

Revolution Analytics提供多线程基础(?)下载Windows和Redhat.

其他一些Linux发行版是否也包括多线程R(和包)?

推荐答案

你很困惑.

R(以及之前的S)内件是单螺纹的,几乎肯定会保持单螺纹.据我所知,邓肯·坦普尔·朗的博士研究是为了克服这个问题,如果他做不到的话...

也就是说,存在多线程的口袋:

  • 首先,无论何时进行外部调用,只要正确锁定,就可以使用多线程.这就是BLAS库MKL、Goto/Open BLAS、Atlas(如果已建成)的功能

  • 如果您对所做的事情非常谨慎,那么可以使用OpenMP(多线程的编译器扩展).这始于Luke Tierney关于pnmath和pnmath0(以前是实验性/外部软件包)的工作,后来逐渐进入R本身,缓慢但肯定.

  • 接下来,在一个多核世界中,在正确的操作系统上,您可以始终使用fork().这就是package multicore的先驱,以及现在正在进行的package parallel.

  • 最后但并非最不重要的一点是Rmpi、snow、parallel等包使用的带有MPI的网络/RPC路由...并在HPC介绍中介绍.

R相关问答推荐

为什么以及如何修复Mapview不显示所有点并且st_buffer合并一些区域R?

基于现有类创建类的打印方法(即,打印tibles更长时间)

在使用ggroove后,将图例合并在gplot中

移除仪表板Quarto中顶盖和车身之间的白色区域

即使硬币没有被抛出,也要保持对其的跟踪

在数组索引上复制矩阵时出错

多个模拟序列间的一种预测回归关系

识别连接的子网(R-igraph)

跨列查找多个时间报告

仅在R中的数据集开始和结束时删除所有 Select 列的具有NA的行

从R中发出的咕噜声中的BUG?

R代码,用于在线条图下显示观测表

创建新列,其中S列的值取决于该行S值是否与其他行冗余

为什么不能使用lApply在包装函数中调用子集

R:使用ApexCharge更改标签在饼图中的位置

使用dqur在不同变量上创建具有多个条件的变量

重写时间间隔模糊连接以减少内存消耗

使用nls()函数的非线性模型的半正态图

通过分析特定列中的字符串在数据框中创建新的行和列

如何在R曲线图弹出窗口中更改r和theta标签