rgrass7 and snow
On 22/04/2016 16:21, Rainer M Krug wrote:
Le vendredi 22 avril 2016, Dr Didier G. Leibovici
<didier.leibovici at nottingham.ac.uk
<mailto:didier.leibovici at nottingham.ac.uk>> a ?crit :
Hi,
we are trying to use 'grass' in parallel programming with 'snow'
The code does multiple simulations of a r.viewshed resampling the
points
generating the viewshed.
(I guess the other solution would be to have an equivalent of
r.viewshed
in an R library or script) ...
I think the problems are to do with the gisDbase ...
Testing with 2 clusters we start with:
> clusterCall(cl,initGRASS,"/usr/lib/grass70",home=getwd(),
gisDbase="GRASS_TEMP", override=TRUE )
[[1]]
gisdbase GRASS_TEMP
location file5edb6bf06d70
mapset file5edb4b0cda81
rows 1
columns 1
north 1
south 0
west 0
east 1
nsres 1
ewres 1
projection NA
[[2]]
gisdbase GRASS_TEMP
location file5edb6bf06d70
mapset file5edb4b0cda81
then read a DEM
clusterCall(cl,execGRASS,"r.in.gdal", flags="o",
parameters=list(input=baseDemFilename, output="DEM"))
clusterCall(cl,execGRASS, "g.region",
parameters=list(raster="DEM"))
and then loop on the sampled points ... involving
execGRASS("r.viewshed", parameters = list(input = "DEM", output =
"cumulativeViewshed", max_distance=maxDistance, coordinates =
as.integer(coords[i,])), flags = c("overwrite" , "b","quiet"))
and cumulating the viewshed (reading the ouput using
readRAST("cumulativeViewshed")), all this (loop over the
points)within a
function simul() called
by a
parSapply(cl,1:nDsimul,simul)
Here is the error
Error in checkForRemoteErrors(val) :
2 nodes produced errors; first error: no such file:
GRASS_TEMP/file5edb6bf06d70/file5edb4b0cda81/.tmp/geoprocessing/cumulativeViewshed
Calls: parSapply ... clusterApply -> staticClusterApply ->
checkForRemoteErrors
any idea?
The problem is likely that you are working in parallel in the same map
set. I would suggest to use a separate Mauser for each parallel task
to write to, read from a different map set which no parallel task is
writing to, and finally, after all threads are finished, you can
collect the results from each thread in one map set and delete the
temporary map sets.
Cheers,
Rainer
Yes all the problem is there for each cluster to work on a separate GRASS_TEMP ( we have verified that it was running with I cl only!) Can we generate randomly the location or mapset so they will not collapse onto the same? DIdier
thanks,
DIdier
--
Dr Didier G. Leibovici
d-d'ye ley-bow-v-c
Senior Research Fellow
Geocomputational Modelling & Geospatial Statistics
Nottingham Geospatial Institute
University of Nottingham, UK
+44 (0)115 84 13924
http://www.nottingham.ac.uk/ngi/people/didier.leibovici
Google+ didier.leibovici at gmail.com <javascript:;>
Skype didierleibovici
[[alternative HTML version deleted]]
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo at r-project.org <javascript:;>
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
--
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)
Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa
Tel : +33 - (0)9 53 10 27 44
Cell: +33 - (0)6 85 62 59 98
Fax (F): +33 - (0)9 58 10 27 44
Fax (D): +49 - (0)3 21 21 25 22 44
email: Rainer at krugs.de <mailto:Rainer at krugs.de>
Skype: RMkrug
Dr Didier G. Leibovici
d-d'ye ley-bow-v-c
Senior Research Fellow
Geocomputational Modelling & Geospatial Statistics
Nottingham Geospatial Institute
University of Nottingham, UK
+44 (0)115 84 13924
http://www.nottingham.ac.uk/ngi/people/didier.leibovici
Google+ didier.leibovici at gmail.com
Skype didierleibovici
[[alternative HTML version deleted]]