got it so that the master must send an explicit kill for the slaves to shutdown
This commit is contained in:
parent
22153648fa
commit
d5f252aff2
@ -47,6 +47,15 @@ def run_queries(count, order = 3, extra_points = 8, verbose = False):
|
|||||||
|
|
||||||
return (r, submit_end - submit_start, receive_end - receive_start)
|
return (r, submit_end - submit_start, receive_end - receive_start)
|
||||||
|
|
||||||
|
def clean_up(inq, expected_participants, shutdown = False):
|
||||||
|
"""
|
||||||
|
I replace the normal first argument to the inq with None, and then do some
|
||||||
|
code branching based on the second paramter, which is shutdown
|
||||||
|
"""
|
||||||
|
for i in xrange(expected_participants):
|
||||||
|
inq.put([None, shutdown, None, None])
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = OptionParser(usage = "usage: %s [options] <server> <expected participants> <interp count>")
|
parser = OptionParser(usage = "usage: %s [options] <server> <expected participants> <interp count>")
|
||||||
|
|
||||||
@ -54,6 +63,10 @@ if __name__ == '__main__':
|
|||||||
action="store_true", dest="verbose", default=False,
|
action="store_true", dest="verbose", default=False,
|
||||||
help="verbose flag (display progress bar: %default)")
|
help="verbose flag (display progress bar: %default)")
|
||||||
|
|
||||||
|
parser.add_option("-l", "--last-time",
|
||||||
|
action="store_true", dest="last", default=False,
|
||||||
|
help="when finished, send shutdown signal to <expected participants> nodes (default: %default)")
|
||||||
|
|
||||||
parser.add_option('-p', '--port',
|
parser.add_option('-p', '--port',
|
||||||
type="int", dest="port", default=6666,
|
type="int", dest="port", default=6666,
|
||||||
help="specify the port to use on the server (default: %default)")
|
help="specify the port to use on the server (default: %default)")
|
||||||
@ -94,8 +107,7 @@ if __name__ == '__main__':
|
|||||||
results, submit, receive = run_queries(count, order = options.order, extra_points = options.extra, verbose = options.verbose)
|
results, submit, receive = run_queries(count, order = options.order, extra_points = options.extra, verbose = options.verbose)
|
||||||
|
|
||||||
# shut down all participants
|
# shut down all participants
|
||||||
for i in xrange(expected_participants):
|
clean_up(inq, expected_participants)
|
||||||
inq.put([None] * 4)
|
|
||||||
|
|
||||||
# post processing
|
# post processing
|
||||||
stats = {}
|
stats = {}
|
||||||
@ -122,3 +134,6 @@ if __name__ == '__main__':
|
|||||||
'results' : npresults,
|
'results' : npresults,
|
||||||
}
|
}
|
||||||
s.close()
|
s.close()
|
||||||
|
|
||||||
|
if options.last:
|
||||||
|
clean_up(inq, expected_participants, shutdown = True)
|
||||||
|
@ -22,7 +22,7 @@ def work(inq, outq, g, myname):
|
|||||||
while True:
|
while True:
|
||||||
i, o, e, X = inq.get()
|
i, o, e, X = inq.get()
|
||||||
if i == None:
|
if i == None:
|
||||||
break
|
return o
|
||||||
a = g.run_baker(X, order = o, extra_points = e)
|
a = g.run_baker(X, order = o, extra_points = e)
|
||||||
outq.put((i, myname, a['qlin'], a['error'], a['final'], exact(X)))
|
outq.put((i, myname, a['qlin'], a['error'], a['final'], exact(X)))
|
||||||
|
|
||||||
@ -56,4 +56,6 @@ if __name__ == '__main__':
|
|||||||
g.q = np.array([exact(x) for x in g.verts])
|
g.q = np.array([exact(x) for x in g.verts])
|
||||||
|
|
||||||
myname = options.label
|
myname = options.label
|
||||||
work(inq, outq, g, myname)
|
shutdown = False
|
||||||
|
while not shutdown:
|
||||||
|
shutdown = work(inq, outq, g, myname)
|
||||||
|
Loading…
Reference in New Issue
Block a user