Displaying differences for changeset
 
display as  

src/it/AttractorAnalysis.R

@@ -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)