【问题标题】:Best practice submit long-running R-jobs, retrieve later?最佳实践提交长期运行的 R 作业,稍后检索?
【发布时间】:2015-11-30 17:53:33
【问题描述】:

在 Mac 笔记本电脑上工作的最佳方式是什么?将 .Rda 文件与输入数据一起发送到 Ubuntu 桌面,运行处理,然后获取新的 .Rda 并返回结果到 Mac 笔记本电脑?

我的 R 工作流程主要是关于调整图表和修改报告 (knitr) 中的文本,我使用相对较弱的 Mac 笔记本电脑来做这些。但是几步之后,我有时需要运行 RJAGS 或类似的繁重工作,这些工作可能需要数小时(比笔记本电脑保持连接的时间还要长)。输入-.Rda 可以是数百 MB 大。我在另一个位置也有强大的 Ubuntu 桌面。如果也能提交要运行的函数就好了。

我认为 OpenCpu 可能是一种方法,但似乎笔记本电脑必须保持连接。 Rredis 也可能是一个前进的方向,但它似乎数据量有限。我已经在计算机之间建立了 SSH 连接,所以最好有某种脚本来发送数据、发送 R 脚本、启动 R 脚本、等待、检索数据。我已经在 Ubuntu 上安装了 RStudio Server,而且效果很好,需要不断连接到 Ubuntu。还有几个多计算机系统,但据我了解,它们也需要在启动机上进行计算。

我几乎每天都需要这样做,这就是为什么一个强大的自动化流程会很好。

【问题讨论】:

    标签: r ubuntu redis opencpu


    【解决方案1】:

    最简单的技巧是确保您的会话持续存在。您可以通过byobu“免费”获得。

    它最初是为 Ubuntu 编写的,当然可以在 Ubuntu 上使用,但现在也可以在大多数其他 Linux 发行版以及 OS X 上使用。(它围绕 tmux 提供了更好的界面;tmux 本身是屏幕上的重拍。谷歌对于'byobu tmux screen',你会发现无数的教程。)

    要使用它,只需通过 ssh 连接到有问题的机器 laucnh byobu(还可以选择有多个屏幕和窗格——请参阅上面链接的网站上的视频)。当是时候离开只是'分离'。稍后从同一台或另一台机器重新连接后,只需“重新连接”即可。快。

    编辑:Here 是对 R 和 byobu 的一些其他答案,它们会给人一种普遍的感觉。该工具绝对值得,并且是许多高级用户工作流程的关键部分。

    【讨论】:

    • 正是我的想法。 @Chris,类似 RPC 的机制,如 OpenCPU、RServe 甚至 RStudio-server 都无法正常工作,因为它们需要持久连接。 (此外,我不知道 OpenCPU 将如何处理长时间运行的计算。)我能想到的唯一其他方法是批处理工具,AFAIK,(a)不存在,并且( b) 有潜在的安全问题。这个(@DirkEddelbuettel 的)答案是迄今为止最简单和可用的现在
    • @r2evans RStudio Server 从什么时候开始需要持久连接?
    • 这是一个假设,我承认,由于它使用浏览器进行交互,因此如果不与浏览器交互,它将不会继续(重要)处理。自从@Chris 提到拥有它以来,我已经添加了这一点,但你是对的,我应该在把它放在那里之前验证这一点。你知道关闭浏览器后它还会继续处理脚本吗?
    • @r2evans 是的,它会一直持续到任务完成,保存您的会话并在您重新连接时恢复它。
    • 啊,谢谢,学到了新东西。 (之前应该进行过这项研究。)使用 RStudio 服务器,如果您的计算时间超过默认的 2 小时,您可能需要调整 session-timeout-minutes (reference)。感谢@Roland 的推动。
    猜你喜欢
    • 1970-01-01
    • 2016-11-22
    • 2015-08-21
    • 2011-09-26
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多