我已经编写了一个运行良好的脚本,但它似乎并没有进行并行处理。我尝试将内核从3改为16,但数据生成速度没有改变。任何人都可以让我知道我做错了什么,以及我如何才能使其工作?并行处理R doParallel foreach
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=",")
好吧,我尝试了建议和脚本运行,但同样它似乎并不像任何更多的内核正在使用。我有24个,系统监视器和读取行的速度都指示相同的速度。我查看了可重现的链接,并查看是否可以制作可重现的空间数据文件。 – Jen
> R.Version() $平台 [1] “x86_64的-W64-的mingw32” $拱 [1] “x86_64的” $ OS [1] “的mingw32” $系统 [1]“x86_64的,mingw32" 的 $状态 [1] “” $主要 [1] “3” $未成年 [1] “2.2” $一年 [1] “2015” $一个月 [1]“ 08“ $ day [1]”14“ $'svn rev' [1]”69053“ $ l语言 [1]“R” $ version.string [1]“R版本3.2.2(2015-08-14)” $昵称 [1]“消防安全” – Jen
我研究了获取可重现数据与rdgal和包含的多边形样本数据只包含2个多边形。因此,我在我的网站上放了一小部分数据:http://researchersdilemma.com/myftp/ 但是,如果要使用rdgal的数据.... 库(rgdal) ogrDrivers() dsn < - system.file(“vectors”,package =“rgdal”)[1] ogrListLayers(dsn) ogrInfo(dsn = dsn,layer =“trin_inca_pl03”) polys < - readOGR(dsn = dsn,layer = “trin_inca_pl03”) writeOGR(多边形, “ ” “test_polys” 司机=“ ESRI shape文件”) getwd()#,看看那里的文件放在 下载est_Fetch.zip – Jen