R语言doParallel+foreach 并行计算初试牛刀
前言
因为我学习的需要,要做模拟,需要用到前人写好的函数,然后又需要大量的循环(模拟一百次,每次生成500条曲线,450条训练,50条做预测)。每次做个运算要半个小时左右,实在是受不了了之后,找了很多的博客和也下载了cran
的帮助文档来看。最后终于一遍遍的试出来了。
包的安装
首先需要将doParallel
的包安装带上去,而doParallel
的包基于foreach
,iterators
和parallel
,parallel
是R语言内置的包,所以要实际安装的包总共有三个。
正文
首先还是检测电脑的核心数,既然要搞并行计算,肯定要利用多核心;要检测电脑核心数,就需要用到detecCores()
函数,对于Windows
系统下的intel I5
和intel I7
处理器,一般要用detecCores(logical = F)
来获得实际的物理核心。我用的是学校配备的8700,所以检测出来的就是6个。
library(doParallel)
library(foreach)
cl.cores = detecCores(logical = F)
cl <- makeCluster(cl.cores)
registerDoparallel(cl) # 我调用了所有的核心,也可以(cl-1)