[GRASS-user] 64 bit or parallel processing

Hamish hamish_nospam at yahoo.com
Wed Feb 28 04:20:57 EST 2007


francesco.pirotti wrote:
> 
> Has anyone experimented using 64 bit machines or some kind of parallel
> processing for some GRASS modules?  Is it a possible thing?  Does GRAS
> have any modules prepared for such conditions?  I am not a
> superexpert, I was wondering if anyone can give me clues on how can
> operations be made faster using special hardware... for example is I
> can significantly speed up spline interpolation using parallel
> machines, or clusters

(I'm not a superexpert with this either, so maybe I am slightly wrong in
places)

for GRASS 5 there was a parallelized s.surf.idw (MPI), see
  http://grass.ibiblio.org/download/addons.php

It may be interesting to try and parallelize the segmentation library,
but most of GRASS's raster code needs to be rewritten.

two problems:
1) most grass raster modules are serial row based. maybe if the raster
format gets updated to a tiled model it would be possible to start
parallizing it. (not impossible, NULL and FP support was added in the past)
or break up lines into chunks like raster modules that have rows= or
percent= options already.

2) the raster file format is split over may directories making it hard
to "lock" a map so another job doesn't try and edit the same map. the
future plan is to have the raster format stored like the vector format,
$MAPSET/raster/$MAPNAME/element, edited as a copy and moved into position
in full when the raster is closed.

3) (bonus problem) we need to ensure that the region (WIND) file isn't
modified by any module but g.region, and that modules read the WIND file
only one when they first start. (in case it changes mid-process)


> (I am shooting in  the dark, since I am not even sure what clusters
> are)

two basic flavours of clusters, call them beowulf and mosix.

* Beowulf-style splits jobs up itself. code needs to be treaded (hard).

* Mosix-style doesn't split jobs, but it can farm jobs out to other
processors. You can use your existing code without thread-proofing it.
 (but not GRASS, or at least not two jobs within the same mapset etc)

see
  http://www.beowulf.org
  http://openmosix.sourceforge.net
and the wikipedia pages for those.



Hamish




More information about the grass-user mailing list