def main(): my_state = InternalState() init() logging.info('start service ...') try: while (my_state.state is not STATE_MASTER): client = Client() my_state = client.run(4, my_state) master = Master() master.run(my_state) except KeyboardInterrupt: sys.exit()
def evo_main(): comm = MPI.COMM_WORLD rank = comm.Get_rank() logging.basicConfig(level=logging.DEBUG, format=f'[%(asctime)s][rank {rank}] %(message)s') pa = ProgramArguments(rank) gpu_fix(pa.args.gpu_ram) if rank == 0: max_rank: int = comm.Get_size() cute: Cute = Cute(pa) master = Master(cute, comm, max_rank) master.run() else: worker = Worker(rank, comm) worker.run()
def run_local_tornado(self, port=8888): self.compute_job_graph() scheduler = NaiveScheduler(self.job_graph) master = Master(scheduler, port) success, results = master.run() print success print "here" if not success: failed_jobs = filter(lambda x: x.failed, self.jobs.values()) print "-"*80 for job in failed_jobs: print "Job failed: {0}".format(job.id) print self.job_spec(job) print "Exception: " print results[job.id] print results[job.id].traceback print "-"*80 return success
#!/usr/bin/env python from mpi4py import MPI from master import Master from slave import Slave comm = MPI.COMM_WORLD rank = comm.Get_rank() size = comm.Get_size() assert size > 1 # slaves on ranks [1,size) if rank: slave = Slave() slave.run() # master on rank 0 else: options = set(['archive']) master = Master(options) master.run()
class Dart: def __init__(self, dartfile, flags): self.df = DartFile(dartfile) if flags["preprocessed"]: print self.df.preprocessed sys.exit(0) self.verbose = flags["verbose"] self.emulab = Emulab(self.df.pid, self.df.eid, self.df.nsfile, self.df.eipsfile, self.df.iipsfile, self.verbose) self.eips = [] self.iips = [] self.mastereip = None self.masteriip = None self.slaveeips = [] self.slaveiips = [] self.numnodes = -1 self.master = None def map_vnns(self, vnns, type): assert (type == EXTERNAL_IPS or type == INTERNAL_IPS) if type == EXTERNAL_IPS: allips = self.eips else: allips = self.iips ips = [] if vnns == "*": ips = allips else: for vnn in vnns: ips.append(allips[vnn]) return ips def emulab_setup(self): self.emulab.mkexp() self.emulab.setup() def emulab_teardown(self): self.emulab.rmexp() def emulab_setips(self): # Assumes emulab_setup() in prior execution self.eips, self.iips = self.emulab.read_ipfiles() self.mastereip = self.eips[0] self.masteriip = self.iips[0] self.slaveeips = self.eips[1:] self.slaveiips = self.iips[1:] self.numnodes = len(self.eips) def emulab_faults(self): import tempfile s = StringIO.StringIO() for i in range(len(self.df.faults)): f = self.df.faults[i] eips = self.map_vnns(f["vnns"], EXTERNAL_IPS) if f["type"] == "node" and f["subtype"] == "reboot": # Node reboot s.write("(sleep %d;" % f["time"]) s.write("/usr/testbed/bin/node_reboot -w ") for ip in eips: m = re.search("^(pc.*?)\.", socket.gethostbyaddr(ip)[0]) nodeid = m.group(1) # (e.g., "pc15") s.write("%s " % nodeid) s.write("; ) &\n") tmp = tempfile.mktemp(".dart") self.emulab.xfer_buf_to(s.getvalue(), tmp) # NOTE: no setsid on Emulab! self.emulab.rexec_detached("sh %s" % tmp) def dart_setup(self): self.emulab_setips() self.master = Master(self, verbose=self.verbose) self.master.setup() def dart_run(self): self.emulab_setips() self.master = Master(self, verbose=self.verbose) self.master.run() def dart_reset(self): self.emulab_setips() self.master = Master(self, verbose=self.verbose) self.master.reset()