我现在处理大型矩阵数据,并希望加快速度。起初我认为并行化可能是一个很好的解决方案,但后来我被告知单个调用的并行化是不可能的。
这是一个例子,当我尝试以下代码时,速度不会增加,因为桌面的CPU占用率保持在30%左右,这是正常值。所以,我的问题是如何加速R?
中单行代码的计算速度set.seed(1234)
mydata=rnorm(5000*150)
mydata=matrix(mydata,ncol=150)
library(parallel)
cl.cores <- detectCores()
cl <- makeCluster(cl.cores)
clusterSetRNGStream(cl,iseed=1234)
clusterExport(cl,"mydata")
clusterEvalQ(cl,library(NbClust))
nc = clusterApply(cl,2,function(min.nc) fun=NbClust(mydata,min.nc=min.nc,max.nc = 8,method = "kmeans"))
stopCluster(cl)