Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash
#------------------------------------------------------------------------------
# ========= |
# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
# \\ / O peration |
# \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd.
# \\/ M anipulation |
#-------------------------------------------------------------------------------
# License
# This file is part of OpenFOAM.
#
# OpenFOAM is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenFOAM; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# Script
# wmakeScheduler
#
# Description
# Scheduler for network distributed compilations using wmake
#
#-------------------------------------------------------------------------------
lockDir=$HOME/.wmakeScheduler
eval "cores=$WM_HOSTS"
n=${#cores[@]}
while [ true ]
do
let "w = 15*$RANDOM"
usleep $w
for ((i=0; i<n; i++))
do
core=${cores[$i]}
host=${cores[$i]%:*}
#echo "** i:$i core:$core host:$host"
lock=$lockDir/$core
if [ ! -f $lock ]
then
touch $lock
#echo "** Using core $core"
if [ "$host" = "$HOST" ]
then
$*
else
cmd=`echo $* | sed s/\"/\'\"\'/g`
#echo "ssh $host \"cd $PWD; $cmd\""
ssh $host "cd $PWD; $cmd"
fi
retval=$?
#echo "** Releasing core $core"
rm -f $lock
exit $retval
fi
done
done
#------------------------------------------------------------------------------