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