r - 使用 R 进行多线程?

标签 r

阅读R-project网站上,有一些(不清楚的)关于 R 多线程的引用,但尚不清楚基础产品和 CRAN 的效果如何。库已编译。

Revolution Analytics提供适用于 Windows 和 Redhat 的多线程基础(?)下载。

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

最佳答案

你很困惑。

R(以及之前的 S)内部是单线程的,并且几乎肯定会保持单线程。据我了解,邓肯·坦普尔·朗的博士工作就是要克服这个问题,如果他做不到......

也就是说,有一些多线程的地方:

  • 首先,每当您进行外部调用时,并且通过适当的锁定,您都可以进入多线程。这就是 BLAS 库 MKL、Goto/Open BLAS、Atlas(如果已构建)的内容 多线程),...全部提供。当英特尔发生时,Revo R“仅仅”随(英特尔的)MKL 一起提供 成为 Revo 的主要投资者

  • 如果您谨慎行事,可以使用 OpenMP(多线程编译器扩展)。这始于 Luke Tierney 对 pmath 和 pmath0(曾经是实验性/外部包)的工作,此后一直缓慢但坚定地进入 R 本身。

  • 接下来,在多核世界中,在正确的操作系统上,您始终可以fork()。这就是多核包所开创的,也是并行包现在所继承的。

  • 最后但并非最不重要的一点是,Rmpi、snow、parallel 等软件包使用 MPI 进行网络/RPC 路由,并且在 HPC 介绍中进行了介绍。

关于r - 使用 R 进行多线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10835122/

相关文章:

r - 如何增加.Machine 中的$double.xmax?

r - 使用指定数量的单元格构建一个方形矩阵

r - 所有数值变量的平均值的组间差异

R的data.table截断位?

r - 如何在 R 中向列表添加元素(循环)

html - 将 html 读入 R 时缺少链接

R data.table 与 rollapply

c++ - Rcpp:将列表中的 bool 值从 R 传递给采用 Rcpp::List 的 C++ 函数时出错

R Levelplot 在 RasterLayer 投影上覆盖两个 SpatialPolygonsDataFrame

r - 在R中的for循环中迭代子目录