[GRASS-dev] Re: GRASS usage on a cluster: thread safety
Markus Neteler
neteler at osgeo.org
Sat Mar 26 17:27:02 EDT 2011
Hi,
back to this issue with solution:
On Sun, Jan 9, 2011 at 12:25 PM, Markus Neteler <neteler at osgeo.org> wrote:
> Hi,
>
> I am using 6.4 on a cluster to process maps in parallel.
> Each job runs as batch job in its own mapset. The jobs
> are launched via 'qsub' of Grid Engine which
> sends it from the frontend to the various blades of
> the cluster. The grassdata directory is shared via
> NFS on all blades, the filesystem is XFS.
>
> Unfortunately, with fast tasks within the batch job,
> various mysterious errors randomly occur:
>
> ...
> ./launch_SGE_grassjob_MODIS_filt2.sh.e255664:ERROR:
> /usr/local/grass-6.4.1svn/etc/lock:
> ./launch_SGE_grassjob_MODIS_filt2.sh.e254776:ERROR:
> /usr/local/grass-6.4.1svn/etc/lock:
> ./launch_SGE_grassjob_MODIS_filt2.sh.e256639:ERROR: G_getenv():
> Variable LOCATION_NAME not set
> ./launch_SGE_grassjob_MODIS_filt2.sh.e257016:ERROR: Unable to make
> mapset element .tmp/blade08
> ./launch_SGE_grassjob_MODIS_filt2.sh.e255264:ERROR: MAPSET
> terra_lst1km20010420.LST_Night_1km.filt.255184 not found
...
> ./launch_SGE_grassjob_MODIS_filt2.sh.e255088:ERROR: G_getenv():
> Variable LOCATION_NAME not set
> ./launch_SGE_grassjob_MODIS_filt2.sh.e256473:ERROR: Unable to make
> mapset element .tmp/blade08
...
Lessions learned (see also
http://grass.osgeo.org/wiki/Parallel_GRASS_jobs#Hints_for_NFS_users):
* Locking problem:
lib/init/init.sh
#"$ETC/lock" "$lockfile" $$
is not NFS safe. A solution is to "lockfile" from the procmail software:
lockfile "$lockfile"
* there are other spurious NFS race conditions in lib/init/init.sh which I could
not identify.
Solution:
Don't use this start script at all! Instead, define the GRASS
environment by setting
the needed variables, for this see
http://grass.osgeo.org/wiki/GRASS_and_Shell#Automated_batch_jobs:_Setting_the_GRASS_environmental_variables
The procedure how to set up jobs on a Grid Engine cluster I have
now documented at:
http://grass.osgeo.org/wiki/Parallel_GRASS_jobs#Grid_Engine
cheers
Markus
More information about the grass-dev
mailing list