R 语言多线程
- parallel包
- parLapply简单的代码实战
- foreach包
- foreach简单的代码实战
目录
parallel包
包的安装
install.packages("parallel")
library(parallel)
包中常用函数
- detectCores()
检查当前的可用核数
- clusterExport()
配置当前环境
- makeCluster()
分配核数
- stopCluster()
关闭集群
- parLapply()
lapply()函数的并行版本
其实R语言本来就是一门向量化语言,如果是对于一个向量的操作,使用apply函数一族能获得比较高的效率,相比于for循环,这种高效来自于:
- 用C实现了for循环
- 减少对于data.frame等数据结构等不必要的拷贝
但是很多时候,如果想更快的话,光apply函数一族还不足够,这时候就能用上多线程。
R语言parallel包可以帮助实现多线程。
parLapply的简单代码实战
检查当前核数
cl.cores <- detectCores()
#结果
> cl.cores
[1] 8
启动集群和关闭集群
cl <- makeCluster(4) # 初始化四核心集群
###并行任务
stopCluster(cl) # 关闭集群
parLapply执行多线程计算
#定义计算平方函数
square <- function(x)
{
return(x^2)
}
#利用并行计算计算平方函数
num <- c(1: