Параллельная обработка с помощью extract () растрового пакета на виртуальной машине - PullRequest
0 голосов
/ 27 мая 2019

Я создаю виртуальную машину в Google Cloud с Ubuntu 18.04 с 8 ЦП и 30 ОЗУ и версией R 3.6.0, но я пытаюсь улучшить свой анализ без успеха.Если я использую пакет Snow со всеми 8 процессорами во всех операциях, использование только в 12,54%.Я делаю:

# Take in the ubuntu terminal the number of processors
foresteyebrazil@superforettech1:~$ cat /proc/cpuinfo  | grep process| wc -l
8

#Packages
library(raster)
library(snow)

#Take a raster for worldclim
r <- getData('worldclim', var='alt', res=5)

# 1) Use extract() in Virtual Machine ---------------------------- 

start_time <- Sys.time()

# SpatialPolygons
cds1 <- rbind(c(-180,-20), c(-160,5), c(-60, 0), c(-160,-60), c(-180,-20))
cds2 <- rbind(c(80,0), c(100,60), c(120,0), c(120,-55), c(80,0))
polys <- spPolygons(cds1, cds2)

# Extract
ex<-raster::extract(r, polys)
end_time <- Sys.time()
end_time - start_time
#
#Time difference of 2.743118 secs

Теперь для тестирования снежного пакета я делаю:

# 2) Use extract() with snow package in Virtual Machine ---------------------------- 

start_time <- Sys.time()

# SpatialPolygons
cds1 <- rbind(c(-180,-20), c(-160,5), c(-60, 0), c(-160,-60), c(-180,-20))
cds2 <- rbind(c(80,0), c(100,60), c(120,0), c(120,-55), c(80,0))
polys <- spPolygons(cds1, cds2)

# Extract
beginCluster(n=8)
ex<-raster::extract(r, polys)
endCluster()
end_time <- Sys.time()
end_time - start_time
#
#Time difference of 6.695152 secs

Здесь я не пойму, как у меня может быть 2,743118 секунд в первой и 6,695152 секунд во второй.подход?

Есть идеи по улучшению моей виртуальной машины?Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...