我正在寻找一种在后台运行R函数作为单独线程的方法。 由于R是用C语言编写的,我希望有些软件包支持使用pthread进行线程化。 到目前为止,我还没有发现任何好的,我测试的一些软件包被破坏或实现了一些其他概念。 所以我的要求就像在R控制台中运行R脚本作为单独的pthread一样简单。 如何将函数或脚本作为单独的线程运行。
PS - 我不是在寻找类似于fork的功能。
由于 比涅斯
答案 0 :(得分:3)
没有直接支持POSIX线程
或者,您可以并行使用多个R进程。在linux中,您可以通过从终端运行R脚本并添加&
来简单地分叉进程,例如:
Rscript spam.R &
如果你坚持要从R中做到这一点:
system("Rscript spam.R", wait = FALSE)
或者您可以查看parallel
包以并行运行R操作。
鉴于您的意见,我认为您可以查看HighPerformance任务视图。引用:
凯恩和爱默生的大型包装允许存放大件 对象,如内存中的矩阵(以及通过文件)和用途 外部指针对象来引用它们。这允许透明 从R访问而不会碰到R的内部存储器限制。 同一台计算机上的几个R进程也可以共享大内存 对象。
表示允许多个R实例访问存储在内存中的相同数据,bigmemory
包可能会很有用。比你可以用toking来创建多个R实例。