在R中并行运行的生成过程

时间:2015-05-06 10:05:07

标签: r parallel-processing

我正在编写一个需要在MySQL数据库中连续存储信息的脚本。

但是,在某天的某个时刻,我想提供一些正在收集的数据的摘要,但是在同一个脚本中写这个将停止在执行这些摘要时收集数据。这是问题的草图:

while (1==1) {
    # get data and store it on the relational database

    # At some point of the day (or time interval) do some summaries
    if (time == certain_time) {
        source("analyze_data.R")
    }
}

问题是,我希望数据收集不要停止,由计算机的另一个核心执行。

我见过对包parallelmulticore的引用,但我的印象是它们对应用于矢量或列表的重复性任务很有用。

2 个答案:

答案 0 :(得分:1)

你可以使用parallel来分叉一个进程,但你是正确的,程序将永远等待所有分叉进程在继续之前回到一起(这是parallel的一种用例)。

为什么不运行两个单独的R程序,一个收集数据,另一个收集数据?然后,您只需在后台连续运行一个,在另一个时间运行另一个。然后问题就变成了将数据从连续数据收集程序中提取出来并进入汇总程序。

答案 1 :(得分:0)

在R之外做逻辑:

写2个脚本; 1带有while循环存储数据,另一个带有检查。使用一个进程运行while循环,然后让它继续运行。

同时,根据需要运行您的其他(检查脚本)来处理数据。或者,把它放在一个cron工作中。

R之外有强大的工具来处理这种事情;为什么在R里面呢?