r - 如何设置循环,以使PC中的一个核心执行一半的工作,而另一半在R中执行

标签 r windows parallel-processing arima

我有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位

最佳答案

我使用foreachdoParallel库将循环分成许多部分。
我认为处理对于计算机决定如何在可用内核之间划分循环更好。

#…
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/

相关文章:

r - 地理编码地址到 R 中的县

c# - 我怎样才能更快地运行这个 Entity Framework 示例

r - 并行化 R 脚本

c++ - 在 Windows 中安装最新的 cppunit

multithreading - 多核 CPU 上能否真正同时执行 2 条指令

r - dplyr::select 等效于对字符向量进行子集化

r - 使用 data.table 获得内存缓存的好方法

r - 如何在 Windows 上托管 Shiny 的应用程序?创建TcpServer : address not available

c++ - C++的专业品质图表库

java - 头痛 - 从 java 运行批处理文件