在R

时间:2018-05-08 12:17:42

标签: r parallel-processing

我在Windows 10上使用MSGARCH(R的软件包)

我应该使用此代码多次拟合任何马尔可夫切换模型(12.500一会儿和for循环)

X = CreateSpec(variance.spec = list(model = c()), 
               distribution.spec = list(distribution = c()))

Y = FitML(data, spec = X)

如何并行化最后一个函数(FitML)?我想为各种X值运行许多FitML()函数

1 个答案:

答案 0 :(得分:0)

假设您已有X:s列表,我们将其称为Xs,然后您可以在每个元素上调用FitML()

Ys <- lapply(Xs, FUN = FitML)

以上将函数应用于元素顺序。要同时执行相同操作,您可以使用future.apply生态系统的future包部分(我是作者)。以下内容在您的本地计算机上并行化,适用于所有操作系统:

library(future.apply)
plan(multiprocess)

Ys <- future_lapply(Xs, FUN = FitML)

如果FitML()存在随机数生成(RNG)组件,则需要使用:

Ys <- future_lapply(Xs, FUN = FitML, future.seed = TRUE)

确保使用正确的随机数。

如果您未指定plan()或指定plan(sequentially),则会按顺序运行。