-
Notifications
You must be signed in to change notification settings - Fork 0
/
node.sh
executable file
·67 lines (60 loc) · 1.47 KB
/
node.sh
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
#!/bin/bash
# ./node.sh memberId
self=`readlink -f $0`;
actDir=`dirname $self`;
config=${actDir}/config.sh;
source ${config};
if [ x$1 = x ]; then
echo "Usage: ./node.sh memberId";
exit 1;
fi;
dateBegin=`date '+%s.%N'`;
columnId=$1;
fName=ga_$columnId;
CURDIR=`pwd`
TMPDIR=`mktemp -d`
cp ga.m $TMPDIR/
cp input.txt $TMPDIR/
cd $TMPDIR
if [ $DEVEL == 0 ]; then
sed -r "s/^columnId = [0-9]+/columnId = $columnId/" ga.m | \
sed -r "s/^function ga/function $fName/" | \
sed -r "s/^function ga/function $fName/" | \
sed -r "s/trained_net/trained_net_${columnId}/" > $fName.m;
err=0;
counter=0;
while [ ! -r input.txt ]; do
sleep 2;
counter=`$(($counter + 1))`;
if [ $counter -gt 5 ]; then
err=1;
break;
fi;
done;
if [ $err == 0 ]; then
disp=`echo $((${columnId} + 20))`;
export DISPLAY=:${disp}
Xvfb :${disp} -screen 0 1024x768x16 &> /dev/null &
xb=`echo $!`;
echo "quit; " | nice -n 19 /afs/ms/@sys/bin/matlab -nodesktop -nosplash -r $fName > res.$columnId.complete;
kill $xb &> /dev/null;
cp trained_net_${columnId}.mat $CURDIR;
else
echo 0 > res.$columnId.complete;
echo 0 >> res.$columnId.complete;
echo 0 >> res.$columnId.complete;
fi;
else
d=`date +'%N' | cut -c3`;
if [ $d -gt 2 ]; then
perl -e 'print (("\n", rand()) x 5);' > res.$columnId.complete;
fi;
fi;
tail -n4 res.$columnId.complete | head -n3 > res.$columnId;
dateEnd=`date '+%s.%N'`;
hostname;
echo $columnId;
echo $dateBegin;
echo $dateEnd;
cat res.$columnId;
rm -rf $TMPDIR