我编写了一个运行良好的脚本,但它似乎没有进行并行处理。我尝试将内核从 3 个更改为 16 个,但生成数据的速度没有改变。谁能让我知道我做错了什么以及如何让它发挥作用?
setwd("E:/Infections")
if (!require("pacman")) install.packages("pacman")
pacman::p_load(lakemorpho,rgdal,maptools,sp,doParallel,foreach,
doParallel)
cl <- makeCluster(5, outfile="E:/Infections/debug.txt")
registerDoParallel(cl)
x<-readOGR("E:/Infections/ByHUC6","Kodiak")
x_lake_length<-vector("numeric",length = nrow(x))
for(i in 1:nrow(x)){
tmp<-lakeMorphoClass(x[i,],NULL,NULL,NULL)
x_lake_length[i]<-lakeMaxLength(tmp,200)
print(i)
Sys.sleep(0.1)
}
df_Kodiak <- data.frame(x_lake_length)
write.table(df_Kodiak,file="E:/Infections/ByHUC6/Kodiak.csv",row.names=TRUE,col.names=TRUE, sep=",")