Adding make-bsub.py, which is needed by batcher.sh.
This commit is contained in:
parent
6cb4313bec
commit
c02ce53227
69
gui/make-bsub.py
Executable file
69
gui/make-bsub.py
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
#
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
import math
|
||||||
|
|
||||||
|
"""
|
||||||
|
Given a file of Scyther verification tests to do (json file), create a shell file to run them all using bsub.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
|
||||||
|
[1] Filename of json stuff
|
||||||
|
[2] Step count: how many verification tasks go into one job
|
||||||
|
[3] Additional commands to send to bsub (e.g. "-W 1:00")
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
def countlines(fn):
|
||||||
|
count = 0
|
||||||
|
fh = open(fn,'r')
|
||||||
|
for l in fh.xreadlines():
|
||||||
|
count = count + 1
|
||||||
|
fh.close()
|
||||||
|
return count
|
||||||
|
|
||||||
|
def marker(jobcount,todo):
|
||||||
|
left = todo - jobcount
|
||||||
|
dperc = int((100 * jobcount) / todo)
|
||||||
|
print "echo \"Sent %i out of %i jobs, hence %i left. %i%% done.\"" % (jobcount,todo,left,dperc)
|
||||||
|
|
||||||
|
def main(fn,step,optlist):
|
||||||
|
|
||||||
|
todo = math.ceil(countlines(fn) / int(step))
|
||||||
|
|
||||||
|
fh = open(fn,'r')
|
||||||
|
ln = 1
|
||||||
|
buf = 0
|
||||||
|
s = ""
|
||||||
|
jobcount = 0
|
||||||
|
done = 0
|
||||||
|
|
||||||
|
for l in fh.xreadlines():
|
||||||
|
if buf == 0:
|
||||||
|
s = "bsub %s ./json-scyther.py %s" % (" ".join(optlist),fn)
|
||||||
|
s += " %i" % (ln)
|
||||||
|
buf = buf + 1
|
||||||
|
done = done + 1
|
||||||
|
if buf >= int(step):
|
||||||
|
print (s)
|
||||||
|
s = ""
|
||||||
|
buf = 0
|
||||||
|
jobcount = jobcount + 1
|
||||||
|
if jobcount % 10 == 0:
|
||||||
|
"""
|
||||||
|
After ten jobs, display progress info
|
||||||
|
"""
|
||||||
|
marker(jobcount,todo)
|
||||||
|
|
||||||
|
ln = ln + 1
|
||||||
|
print (s)
|
||||||
|
marker(jobcount,todo)
|
||||||
|
fh.close()
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
""" Usage: filename, step, options to send to bsub
|
||||||
|
"""
|
||||||
|
main(sys.argv[1],sys.argv[2],sys.argv[3:])
|
||||||
|
|
Loading…
Reference in New Issue
Block a user