我已經編寫了一個運行良好的腳本,但它似乎並沒有進行並行處理。我嘗試將內核從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