R 到 R 通信

Posted

技术标签:

【中文标题】R 到 R 通信【英文标题】:R to R communication 【发布时间】:2013-09-18 09:00:14 【问题描述】:

我在 Linux 主机上的单处理器虚拟 Windows XP 机器上使用 RExcel。有些计算确实需要很长时间,我将它们委托给主机,主机可以并行进行。

我这样做的方式是自动创建 R 脚本,这些脚本由主机上的 Rscript 简单地执行。

我想知道,是否有可能在 R 会话之间进行基于网络的通信?我知道RServe package,但我找不到 R 客户端(尽管文档说明包含简单的 R 客户端)。它还指出,有更好的 R-to-R 通信方式,但没有提及它们......

我计划在 Windows 32 位和 Linux 64 位版本的 R 之间进行通信,两者具有相同的版本号。如果有帮助,我也可以在 Linux 主机上运行 32 位版本的 R。

【问题讨论】:

【参考方案1】:

我不知道 RExcel 方面的事情,但我使用了并行包(以及并行加载的雪包(无关系))将在基于 Linux 的超级计算机上运行的 R 并行实例连接到R 在我的基于 Windows 的计算机上运行。这意味着我可以在 Windows 计算机上键入一个命令,然后将其分解为多个片段,发送到超级计算机上的并行实例进行处理,然后将结果收集回 Windows 计算机。但是,这会导致大量的通信开销,这意味着某些测试实际上会因并行化而运行得更慢(将所有内容传输到超级计算机,在那里并行运行 R,然后将结果传回,会更快)。

查看parallel和snow包的文档以了解详细信息。

【讨论】:

我认为这对我来说已经足够了。不知何故,我在搜索中错过了关键字“并行”(并专注于“网络”部分)。现在我看到了cran.r-project.org/web/views/HighPerformanceComputing.html 页面,里面有我需要的一切。我希望从那里设置一些东西不会太难。

以上是关于R 到 R 通信的主要内容,如果未能解决你的问题,请参考以下文章

R和Python之间的双向通信

计算机与通信行业发展趋势时间序列预测R分析

OS 多个生产者--消费者间线程通信

java线程通信

多线程_线程间通信

R与java整合