R 中的 pthread 支持

问题描述 投票:0回答:2

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

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

谢谢 维内斯

multithreading r pthreads
2个回答
3
投票

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 实例。


0
投票

在 R 扩展手册中:

There is no **direct** support for the POSIX threads

但是你可以尝试使用RcppThread或RcppParallel。

© www.soinside.com 2019 - 2024. All rights reserved.