Python作为多线程的编程语言在并行方面相对于R语言有很大的优势,然而作为占据统计分析一席之地的R语言自然不能没有并行计算的助力。那么我们来看下在R语言中有哪些并行的包:隐式并行:OpenBLAS,Intel MKL,NVIDIA cuBLAS等;显性并行:parallel(主打lapply应用)、foreach(主打for循环)、SupR、还有利用GPU的办法(gpuR)。所谓显式并行也就是基于并行的编程语言编译的程序;隐式并行是基于串行程序编译的并行计算。当然,在R语言核心功能中也是带有了相关的并行的计算基础包parallel。今天就给大家介绍下这个基础并行包的具体应用。
我们不需要再安装这个包,可以直接进行相关的计算。首先我们看下里面的几个核心的函数:
1. detectCores() 发现PC终端有多少个核。所谓核就是CPU的性能体现,越多越好。实例:
library(parallel)cl.cores #发现可用核数
2. makeCluster() 初始化我们需要用到的核数。其中type参数有两种PSOCK适用所有操作系统,FORK适用unix/max,实现内存共享以及节省内存。实例:
cl "cl.cores", 2),t