# create Persons for i in xrange(num_entities): simx.create_entity(('p', i), Person) # create a message generation process class MessageGen(simx.Process): """ Schedule simple message sending and receiving """ def run(self): for evt_time in xrange(1, end_time / 2 - 1): hello_rcvr = ('p', random.choice(xrange(num_entities))) reply_rcvr = ('p', random.choice(xrange(num_entities))) #print evt_time,hello_rcvr,reply_rcvr simx.schedule_event(simx.get_now() + evt_time, hello_rcvr, eAddr_HelloHandlerPerson, HelloMessage(source_id=reply_rcvr)) #schedule in chunks of 10 time units if (evt_time % 10 == 0): # go to sleep, and wake up in time to schedule # next batch of events #raw_input() self.sleep(evt_time - simx.get_now()) mg = MessageGen() simx.schedule_process(mg) simx.run()
nx.draw_networkx_nodes(G,Gpos,node_size=80,nodelist=p.keys(),node_color=p.values(),cmap=plt.cm.Reds_r) plt.xlim(-0.05,1.05) plt.ylim(-0.05,1.05) plt.axis('off') plt.draw() self.sleep(update_interval) simx.init("consensus") simx.set_end_time(end_time) simx.set_min_delay(min_delay) #simx.set_log_level("debug3") simx.init_env() for i in xrange(num_nodes): simx.create_entity(('n',i),Node,ent_data=({'gnode_id':i})) node_list.append(simx.get_entity(('n',i))) #quit() simx.get_controller().install_service(Receiver,eAddr_RECVR) simx.schedule_process(Updater()) #only rank 0 does the plotting if plot == True: import matplotlib.pyplot as plt if simx.get_rank() == 0: simx.schedule_process(Plotter()) simx.run()
cmap=plt.cm.Reds_r) plt.xlim(-0.05, 1.05) plt.ylim(-0.05, 1.05) plt.axis('off') plt.draw() self.sleep(update_interval) simx.init("consensus") simx.set_end_time(end_time) simx.set_min_delay(min_delay) #simx.set_log_level("debug3") simx.init_env() for i in xrange(num_nodes): simx.create_entity(('n', i), Node, ent_data=({'gnode_id': i})) node_list.append(simx.get_entity(('n', i))) #quit() simx.get_controller().install_service(Receiver, eAddr_RECVR) simx.schedule_process(Updater()) #only rank 0 does the plotting if plot == True: import matplotlib.pyplot as plt if simx.get_rank() == 0: simx.schedule_process(Plotter()) simx.run()
""" Just another process """ def __init__(self, id_): self.id_ = id_ def run(self): print "foo process: ", self.id_, " Time: ", simx.get_now() #if id == 0: # self.spawn(fooprocess(id+1)) self.sleep(2) print "foo process: ", self.id_, " wake up at time:", simx.get_now() def end(self): print "foo process: ", self.id_, " ends here" simx.init("cd") simx.set_min_delay(1) simx.set_end_time(100) simx.set_log_level("debug3") simx.init_env() for i in range(1): cd = CountDown(i, 10) simx.schedule_process(cd) simx.run()
simx.set_min_delay(1) simx.init_env() # create Persons for i in xrange(num_entities): simx.create_entity(('p',i), Person) # create a message generation process class MessageGen (simx.Process): """ Schedule simple message sending and receiving """ def run(self): for evt_time in range(1,end_time): hello_rcvr = ('p',random.choice(xrange(num_entities))) reply_rcvr = ('p',random.choice(xrange(num_entities))) simx.schedule_event(evt_time, hello_rcvr, eAddr_HelloHandlerPerson, HelloMessage(source_id=reply_rcvr)) #schedule in chunks of 10 time units if (evt_time % 10 == 0): # go to sleep, and wake up in time to schedule # next batch of events self.sleep(evt_time - simx.get_now()) mg = MessageGen() simx.schedule_process(mg) simx.run()
class fooprocess(simx.Process): """ Just another process """ def __init__(self,id_): self.id_ = id_ def run(self): print "foo process: ",self.id_," Time: ",simx.get_now() self.sleep(2) print "foo process: ",self.id_," wake up at time:",simx.get_now() self.spawn(fooprocess(self.id_)) def end(self): print "foo process: ",self.id_," ends here" simx.init("cdkill") simx.set_min_delay(1) simx.set_end_time(100) simx.set_log_level("debug3") simx.init_env() for i in range(1): cd = CountDown(i,10) simx.schedule_process( cd ) simx.run()