我有R
脚本,它模拟了ARIMA
数据并为ARIMA order ARIMA(p, d, q)
检查了100次相同的数据。我在系统CPU上有2个内核,如何为一个内核提供R
命令以计算1 to 50
,而第二个内核同时计算51 to 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)
}
我正在使用Windows 10 64位
最佳答案
我使用foreach
和doParallel
库将循环分成许多部分。
我认为处理对于计算机决定如何在可用内核之间划分循环更好。
#…
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
#…
}
#…
关于r - 如何设置循环,以使PC中的一个核心执行一半的工作,而另一半在R中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63732042/