@@ -46,6 +46,13 @@ main <- function() |
{ |
t1 <- Sys.time() |
|
+ ### CREATE CLUSTER |
+ numCores <- detectCores() |
+ |
+ myCluster <- makeCluster(numCores,type=parallelType) |
+ # Register the backend with foreach: |
+ registerDoParallel(myCluster) |
+ |
################## Read-in instructions ################## |
# The input file contains the instructions for setting variables. It is parsed with the following instructions. |
###inputMapDir <- paste(baseDir, location, "inputMaps", sep="/") |
@@ -99,6 +106,7 @@ main <- function() |
###NEED TO SAVE THE ATTRACTOR MAP### |
###attractorFile <- paste(baseDir, "/", location, "/output/", attractorFile, ".tif", sep="") |
###save(attractorMap,file=attractorFile) |
+ stopCluster(myCluster) |
} |
|
adjustMapInformation <- function(maps) |
@@ -226,11 +234,7 @@ calculateTravelTime <- function(name, locationMap, locationCategory, interconnec |
attractionMap <- calc(locationMap,fun) |
results <- attractionMap # Create a map that will be used to store resulting values |
numCells <- nrow(locationMap) * ncol(locationMap) |
- numCores <- detectCores() |
|
- myCluster <- makeCluster(numCores,type=parallelType) |
- # Register the backend with foreach: |
- registerDoParallel(myCluster) |
resultList <- foreach(cell=2:numCells, .packages='raster', .combine=c) %dopar% |
{ |
result <- cellStats(attractionMap * interconnectMaps[[cell]],stat='sum') |
@@ -239,8 +243,6 @@ calculateTravelTime <- function(name, locationMap, locationCategory, interconnec |
resultList <- c(resultList, 0) # add one more - ughh |
values(results) <- resultList |
names(results) <- name |
- env <- foreach:::.foreachGlobals |
- rm(list=ls(name=env), pos=env) |
###print(paste(" Execution time: ", difftime(Sys.time(),t1,units="min"), " minutes", sep="")) |
return(results) |
} |
@@ -326,11 +328,6 @@ calculateAttraction <- function(fileName, target, gravityField) |
numCells <- nrow(results) * ncol(results) |
tmpMap <- results |
|
- numCores <- detectCores() |
- |
- myCluster <- makeCluster(numCores,type=parallelType) |
- # Register the backend with foreach: |
- registerDoParallel(myCluster) |
resultList <- foreach(cell=1:numCells, .packages='raster', .combine=c) %dopar% |
{ |
val <- gravityField[cell] |
@@ -357,8 +354,6 @@ calculateAttraction <- function(fileName, target, gravityField) |
return(results) |
} |
|
- env <- foreach:::.foreachGlobals |
- rm(list=ls(name=env), pos=env) |
values(tmpMap) <- resultList |
names(tmpMap) <- fileName |
return(tmpMap) |