我如何设置循环,使我的电脑中的一个核心做一半,而另一半在R

我如何设置循环,使我的电脑中的一个核心做一半,而另一半在R,r,windows,parallel-processing,arima,R,Windows,Parallel Processing,Arima,我有Rscrip,它模拟ARIMA数据,并对相同的数据进行100次ARIMA顺序ARIMA(p,d,q)。我在系统CPU上有两个内核,如何才能发出R命令,让一个内核同时计算1到50,而第二个内核同时计算51到100,然后合并结果,以便 library(forecast) system.time({ for (i in 1:100) { a <- arima.sim(n = 50, model=list(ar = 0.8), sd = 1) b <- arimaor

我有
R
scrip,它模拟
ARIMA
数据,并对相同的数据进行100次
ARIMA顺序ARIMA(p,d,q)
。我在系统CPU上有两个内核,如何才能发出
R
命令,让一个内核同时计算
1到50
,而第二个内核同时计算
51到100
,然后合并结果,以便

library(forecast)
system.time({
  for (i in 1:100) {
    a <- arima.sim(n = 50, model=list(ar = 0.8), sd = 1)
    b <- arimaorder(auto.arima(b, ic = "aicc"))
    #print(b)
  }
库(预测)
系统时间({
因为(我在1:100){

a我使用
foreach
doParallel
库将for循环划分为许多部分

我认为,由计算机来决定如何在可用的内核之间划分循环会更好

#…
library(parallel)
library(foreach)
library(doParallel)

#detectCores()                   ### Count number of cores available
numCores  <- 2
registerDoParallel(numCores)

#for (i in 1:100) {          ### Original For loop
foreach(i = 1:100) %dopar% { ### Replacement parallel foreach loop
    #…
}
#…
#…
图书馆(平行)
图书馆(foreach)
图书馆(双平行)
#detectCores()###统计可用的磁芯数

numCores您可以使用
parallel
future
callr
,以及其他几个用于协调不同进程的选项。还有。
auto.arima()
函数不适用于此
foreach
,即使在我加载foreach使用的预测包时也是如此(I=1:100,.packages=c(“预测”))%dopar%{
而不是您的答案中的
foreach(i=1:100)%dopar%{
,它起作用了