Skip to main content
 首页 » 编程设计

r之使用 R 进行多线程

2024年05月06日54soundcode

阅读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 介绍中进行了介绍。