Note for R Parallel Computing

By |2018-08-31T12:58:39-04:00August 31st, 2018|Categories: Note笔记|Tags: , , , |

#并行计算-parallel包 #parallel包的思路和lapply函数很相似,都是将输入数据分割、计算、整合结果。只不过并行计算是用到了不同的cpu来运算。下面的例子是解决欧拉问题的第14个问题。 # 并行计算euler14问题 # 自定义函数以返回原始数值和步数 library(parallel) func <- function(x) { n = 1 raw <- x while (x > 1) { x <- ifelse(x%%2==0,x/2,3*x+1) n = n + 1 } return(c(raw,n)) } library(parallel) # 用system.time来返回计算所需时间 system.time({ x <- 1:1e6 cl <- makeCluster(4) # 初始化四核心集群 results <- parLapply(cl,x,func) # lapply的并行版本 res.df <- do.call('rbind',results) # 整合结果 stopCluster(cl) [...]