-1

我一直在寻找一种在后台将 R 函数作为单独线程运行的方法。由于 R 是用 C 编写的,我希望某些包将支持使用 pthreads 进行线程化。到目前为止,我还没有发现任何好的东西,我测试的一些包被破坏或实现了一些其他概念。所以我的要求就像在 R 控制台内将 R 脚本作为单独的 pthread 运行一样简单。我如何将函数或脚本作为单独的线程运行。

PS - 我不是在寻找类似 fork 的功能。

谢谢 Vineeth

4

1 回答 1

3

R 扩展手册中:

没有对 POSIX 线程的直接支持


或者,您可以并行使用多个 R 进程。在 linux 中,您可以通过从终端运行 R 脚本并添加来简单地分叉一个进程&,例如:

Rscript spam.R &

如果您坚持从 R 中执行此操作:

system("Rscript spam.R", wait = FALSE)

或者您可以查看parallel包以并行运行 R 操作。


鉴于您的评论,我认为您可以查看 HighPerformance 任务视图。从中引用:

Kane 和 Emerson 的 bigmemory 包允许在内存中(以及通过文件)存储诸如矩阵之类的大对象,并使用外部指针对象来引用它们。这允许从 R 进行透明访问,而不会违反 R 的内部存储器限制。同一台计算机上的多个 R 进程也可以共享大内存对象。

表明该bigmemory包可能会证明让多个 R 实例访问存储在内存中的相同数据很有趣。比您可以使用分叉创建多个 R 实例。

于 2013-01-08T14:00:02.440 回答