【发布时间】:2016-10-08 00:23:18
【问题描述】:
我编写了一个运行良好的脚本,但它似乎没有进行并行处理。我尝试将内核从 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=",")
【问题讨论】:
-
好的,我尝试了建议并且脚本运行了,但似乎不再使用任何内核。我有 24 个,系统监视器和读取行的速率都显示相同的速度。我查看了使可重现的链接,并将查看是否可以使空间数据文件可重现。
-
> R.Version() $platform [1] "x86_64-w64-mingw32" $arch [1] "x86_64" $os [1] "mingw32" $system [1] "x86_64, mingw32" $status [1] "" $major [1] "3" $minor [1] "2.2" $year [1] "2015" $month [1] "08" $day [1] "14" $
svn rev[1] "69053" $language [1] "R" $version.string [1] "R 版本 3.2.2 (2015-08-14)" $nickname [1] "消防安全" -
我研究了使用 rdgal 获取可重现数据,并且包含的多边形样本数据仅包含 2 个多边形。所以我在我的网站上放了一小部分数据样本:researchersdilemma.com/myftp 但是如果你想使用 rdgal.... library(rgdal) ogrDrivers() dsn
-
谢谢。是的,如果我们都使用内置数据通常会更好,不过感谢您上传。我会尽快尝试一下。
标签: r parallel-foreach