annotate swift-hello @ 2:386bf3c10c46 draft default tip

Uploaded
author ketan
date Tue, 15 Oct 2013 16:22:17 -0400
parents 7aa6ee21028c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
1 #!/bin/bash
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
2
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
3 site=$1
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
4 n=$2
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
5 outdir=$3
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
6 logfile=$4
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
7 htmlfile=$5
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
8 mkdir -p $outdir
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
9 echo $@ >> /tmp/args.txt
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
10
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
11 swift=`\which swift`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
12
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
13 # use "here" document for configs
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
14 cat << EOF > /tmp/hello.swift
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
15 type file;
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
16
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
17 app (file o) helloapp (string msg) {
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
18 echo msg stdout=@o;
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
19 }
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
20
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
21 file out[]<simple_mapper; location="$outdir", prefix="f.",suffix=".txt">;
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
22
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
23 foreach j in [1:@toInt(@arg("n","2"))] {
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
24 out[j] = helloapp ("Hello World!");
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
25 }
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
26 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
27
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
28 case "$site" in
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
29 cluster )
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
30 cat << 'EOF' > /tmp/sites.xml
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
31 <?xml version="1.0" encoding="UTF-8"?>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
32 <config xmlns="http://www.ci.uchicago.edu/swift/SwiftSites">
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
33 <pool handle="cluster">
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
34 <execution provider="coaster" jobmanager="local:pbs"/>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
35 <profile namespace="globus" key="queue">default</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
36 <profile namespace="globus" key="jobsPerNode">8</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
37 <profile namespace="globus" key="maxWalltime">02:00:00</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
38 <profile namespace="globus" key="maxTime">7500</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
39 <profile namespace="globus" key="highOverAllocation">100</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
40 <profile namespace="globus" key="lowOverAllocation">100</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
41 <profile namespace="globus" key="slots">1</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
42 <profile namespace="globus" key="maxNodes">1</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
43 <profile namespace="globus" key="nodeGranularity">1</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
44 <profile namespace="karajan" key="jobThrottle">.31</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
45 <profile namespace="karajan" key="initialScore">10000</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
46 <workdirectory>/tmp/swift.workdir</workdirectory>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
47 </pool>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
48 </config>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
49 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
50
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
51 cat << 'EOF' > /tmp/tc
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
52 cluster echo echo
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
53 cluster cat cat
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
54 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
55
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
56 cat << 'EOF' > /tmp/cf
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
57 use.provider.staging=true
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
58 wrapperlog.always.transfer=true
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
59 execution.retries=1
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
60 provider.staging.pin.swiftfiles=false
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
61 sitedir.keep=true
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
62 lazy.errors=false
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
63 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
64 ;;
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
65
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
66 localhost )
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
67 cat << 'EOF' > /tmp/sites.xml
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
68 <?xml version="1.0" encoding="UTF-8"?>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
69 <config xmlns="http://www.ci.uchicago.edu/swift/SwiftSites">
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
70 <pool handle="localhost">
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
71 <execution provider="local" />
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
72 <profile namespace="karajan" key="jobThrottle">0.01</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
73 <profile namespace="karajan" key="initialScore">10000</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
74 <filesystem provider="local"/>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
75 <workdirectory>/tmp/swift.work</workdirectory>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
76 <profile namespace="swift" key="stagingMethod">local</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
77 </pool>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
78 </config>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
79 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
80
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
81 cat << 'EOF' > /tmp/tc
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
82 localhost echo echo
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
83 localhost cat cat
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
84 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
85
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
86 cat << 'EOF' > /tmp/cf
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
87 use.provider.staging=false
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
88 wrapperlog.always.transfer=true
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
89 execution.retries=0
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
90 provider.staging.pin.swiftfiles=false
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
91 sitedir.keep=true
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
92 lazy.errors=false
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
93 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
94 ;;
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
95
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
96 * )
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
97 echo "defaulting to localhost"
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
98
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
99 cat << 'EOF' > /tmp/sites.xml
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
100 <?xml version="1.0" encoding="UTF-8"?>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
101 <config xmlns="http://www.ci.uchicago.edu/swift/SwiftSites">
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
102 <pool handle="localhost">
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
103 <execution provider="local" />
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
104 <profile namespace="karajan" key="jobThrottle">0.01</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
105 <profile namespace="karajan" key="initialScore">10000</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
106 <filesystem provider="local"/>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
107 <workdirectory>/tmp/swift.work</workdirectory>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
108 <profile namespace="swift" key="stagingMethod">local</profile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
109 </pool>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
110 </config>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
111 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
112
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
113 cat << 'EOF' > /tmp/tc
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
114 localhost echo echo
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
115 localhost cat cat
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
116 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
117
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
118 cat << 'EOF' > /tmp/cf
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
119 use.provider.staging=false
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
120 wrapperlog.always.transfer=true
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
121 execution.retries=0
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
122 provider.staging.pin.swiftfiles=false
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
123 sitedir.keep=true
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
124 lazy.errors=false
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
125 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
126 ;;
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
127 esac
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
128
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
129 $swift -sites.file /tmp/sites.xml -tc.file /tmp/tc -config /tmp/cf /tmp/hello.swift -n=$n -data=$data 2> std.err
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
130 EXITCODE=$?
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
131
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
132 swiftlog=`\ls -t *.log | head -1`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
133
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
134 cat << 'EOF' > /tmp/plotswiftlogs
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
135 #!/bin/bash
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
136
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
137 #usage: ./extract4plots <swift.logfile>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
138
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
139 SWIFTLOGFILE=$1
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
140 #TMPDIR=`mktemp -d plotlog.XXX`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
141 grep -i ProgressTicker $SWIFTLOGFILE > swiftoutfile.out
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
142 SWIFTOUTFILE=swiftoutfile.out
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
143 #extract start time
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
144 TMPDATE=`grep -i progress $SWIFTOUTFILE 2>/dev/null | head -n 1 | cut -f1-2 -d ' '`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
145 START_TIME=`date +%s -d "$TMPDATE"`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
146
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
147 #extract end time
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
148 TMPDATE=`grep -i progress $SWIFTOUTFILE 2>/dev/null | tail -n 1 | cut -f1-2 -d ' '`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
149 END_TIME=`date +%s -d "$TMPDATE"`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
150
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
151 #duration
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
152 DIFFTIME=$((END_TIME - START_TIME))
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
153 #echo 0 > active.txt
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
154 #echo 0 > cumulative.txt
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
155 #extract active runs in a file
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
156 (grep -o -i "Active:[0-9]*" $SWIFTOUTFILE 2>/dev/null | awk -F: '{print $2}' > active.txt)
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
157
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
158 #extract successful completions in a file
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
159 (grep -o -i "Successfully:[0-9]*" $SWIFTOUTFILE 2>/dev/null | awk -F: '{print $2}' > cumulative.txt)
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
160
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
161 #prepare tics
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
162 activelines=`wc -l active.txt | awk '{print $1}'`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
163 cumulines=`wc -l cumulative.txt | awk '{print $1}'`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
164
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
165 if [ $activelines -ne 0 ]
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
166 then
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
167 activelinespertic=`echo "scale=5 ; $DIFFTIME / $activelines" | bc`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
168 fi
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
169 seq 0 $activelinespertic $DIFFTIME > activetics.txt
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
170
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
171 if [ $cumulines -ne 0 ]
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
172 then
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
173 cumulinespertic=`echo "scale=5 ; $DIFFTIME / $cumulines" | bc`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
174 fi
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
175
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
176 seq 0 $cumulinespertic $DIFFTIME > cumultics.txt
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
177
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
178 #final plot data
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
179 paste activetics.txt active.txt > plot_active.txt
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
180 paste cumultics.txt cumulative.txt > plot_cumulative.txt
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
181
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
182 cat << EOF1 > plotit.gp
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
183 set terminal png enhanced
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
184 set output "activeplot.png"
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
185 set nokey
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
186 set xlabel "Time in sec"
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
187 set ylabel "number of active jobs"
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
188 set title "Active jobs"
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
189 plot "plot_active.txt" using 1:2 with line
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
190
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
191 set output "cumulativeplot.png"
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
192 set ylabel "number of completed jobs"
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
193 set title "Cumulative jobs"
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
194 plot "plot_cumulative.txt" using 1:2 with lines
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
195 EOF1
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
196
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
197 gnuplot plotit.gp 2>/dev/null
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
198
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
199 #cp *.png ../
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
200 echo `pwd`>/tmp/curdir
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
201 echo `ls`>/tmp/dirlist
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
202 #cd ..
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
203 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
204
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
205 cat << EOF > $htmlfile
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
206 <!DOCTYPE HTML>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
207
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
208 <html xmlns="http://www.w3.org/1999/xhtml">
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
209 <head>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
210 <title>Hello output</title>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
211 </head>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
212 <body>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
213 <h2>Browse output of hello application</h2>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
214 `for i in \`find $outdir -type f\`; do echo "<a href=\`basename $i\`>Output: \`basename $i\`</a><br/>"; done`
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
215 </body>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
216 </html>
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
217 EOF
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
218
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
219 if [ "$EXITCODE" -ne "0" ]; then
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
220 cat std.err >&2
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
221 fi
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
222 cp std.err $logfile
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
223 rm std.err
7aa6ee21028c Uploaded
ketan
parents:
diff changeset
224 exit $EXITCODE