我正在寻找一种在后台将 R 函数作为单独线程运行的方法。 由于 R 是用 C 编写的,我希望某些包能够支持使用 pthread 的线程。 到目前为止,我还没有发现任何好的东西,我测试的一些软件包被破坏或实现了一些其他概念。 所以我的要求就像在 R 控制台中将 R 脚本作为单独的 pthread 运行一样简单。 我如何作为单独的线程运行函数或脚本。
PS - 我不是在寻找类似分叉的功能。
谢谢 维内斯
在 R 扩展手册中:
没有对 POSIX 线程的直接支持
或者,您可以并行使用多个 R 进程。在 Linux 中,您可以通过从终端运行 R 脚本并添加
&
来简单地分叉一个进程,例如:
Rscript spam.R &
如果您坚持要在 R 内部执行此操作:
system("Rscript spam.R", wait = FALSE)
或者您可以查看
parallel
包来并行运行 R 操作。
鉴于您的评论,我认为您可以查看高性能任务视图。引自:
Kane 和 Emerson 的 bigmemory 软件包允许存储大容量数据 内存中的矩阵等对象(以及通过文件)和使用 外部指针对象来引用它们。这允许透明 从 R 进行访问,而不会违反 R 的内部内存限制。 同一台计算机上的多个R进程也可以共享大内存 物体。
表示
bigmemory
包可能会让多个 R 实例访问内存中存储的相同数据很有趣。您可以使用分叉来创建多个 R 实例。
在 R 扩展手册中:
There is no **direct** support for the POSIX threads
但是你可以尝试使用RcppThread或RcppParallel。