From d4aea22e0ba17d413af1fa3ffa14d772f31d067e Mon Sep 17 00:00:00 2001 From: Stephen Mardson McQuay Date: Wed, 30 Mar 2011 10:36:20 -0600 Subject: [PATCH] updated slave to take options --- bin/slave.py | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/bin/slave.py b/bin/slave.py index bfedd02..12aad3f 100644 --- a/bin/slave.py +++ b/bin/slave.py @@ -4,11 +4,13 @@ import sys from multiprocessing.managers import BaseManager +from optparse import OptionParser + import numpy as np import interp.bootstrap -from interp.grid.gmsh import gmsh_grid3D -from interp.tools import exact +from interp.grid.gmsh import ggrid +from interp.tools import baker_exact_3D as exact class QueueManager(BaseManager): pass QueueManager.register('get_inqueue' ) @@ -16,21 +18,39 @@ QueueManager.register('get_outqueue') if __name__ == '__main__': - if len(sys.argv) != 3: - print >> sys.stderr, "usage: %s " % sys.argv[0] + parser = OptionParser(usage = "usage: %s [options] ") + + parser.add_option('-l', '--label', + type="str", dest="label", default='jane', + help="specify this slave's response label (default: %default)") + + parser.add_option('-p', '--port', + type="int", dest="port", default='6666', + help="specify the port to use on the server (default: %default)") + + (options, args) = parser.parse_args() + if len(args) != 2: + parser.print_usage() sys.exit(1) - m = QueueManager(address=('gannon', 50000), authkey='asdf') + + server, input_file = args + myname = options.label + + m = QueueManager(address=(server, 50000), authkey='asdf') m.connect() inq = m.get_inqueue() outq = m.get_outqueue() - g = gmsh_grid3D(sys.argv[1]) + g = ggrid(input_file) g.q = np.array([exact(x) for x in g.verts]) - my_name = sys.argv[2] while True: - i, X = inq.get() - a = g.run_baker(X, order = 3, extra_points = 32) - outq.put((i, my_name, a['qlin'], a['error'], a['final'], exact(X))) + i, o, e, X = inq.get() + if i == None: + break + a = g.run_baker(X, order = o, extra_points = e) + outq.put((i, myname, a['qlin'], a['error'], a['final'], exact(X))) + + print "%s finished" % myname