R同时运行2个不同的代码块(并行)

时间:2014-02-03 03:58:55

标签: r

有没有办法同时运行2个不同的代码块。我一直在研究R中的并行包,它们似乎都基于在循环中运行相同的函数。我正在寻找一种同时运行不同功能的方法(循环的1次迭代)。例如,我想在某个数据对象上创建一个模型,同时在另一个对象上创建另一个模型。我可以通过启动R的另一个实例来做到这一点,但宁愿将它全部保存在同一个脚本中。这可能吗?我很感激任何建议。

2 个答案:

答案 0 :(得分:3)

您可以尝试替换/引用函数,然后并行评估它们。

library(parallel)
ExpressionVect <- c(substitute(function1()), 
                substitute(function2()))

mclapply(ExpressionVect, eval, mc.cores= 2)

这允许在函数是独立函数时并行评估函数

答案 1 :(得分:0)

您可以使用clusterMap,这是mapply的并行版本。这假设您希望在每个节点上安装相同类型的模型(lm,glm,rpart,等等)。

clus <- makeCluster(2)
out <- clusterMap(clus, lm, formula=list(speed ~ dist, mpg ~ cyl + disp + hp),
                            data=list(cars, mtcars))