def main(simulated_time,experimento,file,study,it): random.seed(it) np.random.seed(it) """ TOPOLOGY from a json """ t = Topology() dataNetwork = json.load(open(experimento+file+'-network.json')) t.load(dataNetwork) attNodes = {} for k in t.G.nodes(): attNodes[k] = {"IPT": 1} nx.set_node_attributes(t.G, values=attNodes) # t.write("network.gexf") """ APPLICATION """ studyApp = study if study=="FstrRep": studyApp="Replica" elif study == "Cloud": studyApp="Single" dataApp = json.load(open(experimento+file+'-app%s.json'%studyApp)) apps = create_applications_from_json(dataApp) #for app in apps: # print apps[app] """ PLACEMENT algorithm """ placementJson = json.load(open(experimento+file+'-alloc%s.json'%study)) placement = JSONPlacement(name="Placement",json=placementJson) ### Placement histogram # listDevices =[] # for item in placementJson["initialAllocation"]: # listDevices.append(item["id_resource"]) # import matplotlib.pyplot as plt # print listDevices # print np.histogram(listDevices,bins=range(101)) # plt.hist(listDevices, bins=100) # arguments are passed to np.histogram # plt.title("Placement Histogram") # plt.show() ## exit() """ POPULATION algorithm """ studyUser = study if study == "FstrRep": studyUser = "******" elif study == "Cloud": studyUser = "******" dataPopulation = json.load(open(experimento+file+'-users%s.json'%studyUser)) pop = JSONPopulation(name="Statical",json=dataPopulation,it=it) """ SELECTOR algorithm """ selectorPath = DeviceSpeedAwareRouting() """ SIMULATION ENGINE """ stop_time = simulated_time s = Sim(t, default_results_path=experimento + "Results_%i_%s_%s_%i" % (it,file,study,stop_time)) """ Failure process """ # time_shift = 10000 # distribution = deterministicDistributionStartPoint(name="Deterministic", time=time_shift,start=10000) # failurefilelog = open(experimento+"Failure_%s_%i.csv" % (ilpPath,stop_time),"w") # failurefilelog.write("node, module, time\n") # idCloud = t.find_IDs({"type": "CLOUD"})[0] #[0] -> In this study there is only one CLOUD DEVICE # centrality = np.load(pathExperimento+"centrality.npy") # randomValues = np.load(pathExperimento+"random.npy") # # s.deploy_monitor("Failure Generation", failureControl, distribution,sim=s,filelog=failurefilelog,ids=centrality) # s.deploy_monitor("Failure Generation", failureControl, distribution,sim=s,filelog=failurefilelog,ids=randomValues) #For each deployment the user - population have to contain only its specific sources for aName in apps.keys(): #print "Deploying app: ",aName pop_app = JSONPopulation(name="Statical_%s"%aName,json={},it=it) data = [] for element in pop.data["sources"]: if element['app'] == aName: data.append(element) pop_app.data["sources"]=data s.deploy_app(apps[aName], placement, pop_app, selectorPath) s.run(stop_time, test_initial_deploy=False, show_progress_monitor=False) #TEST to TRUE
def main(simulated_time,experimento,ilpPath): random.seed(RANDOM_SEED) np.random.seed(RANDOM_SEED) """ TOPOLOGY from a json """ t = Topology() dataNetwork = json.load(open(experimento+'networkDefinition.json')) t.load(dataNetwork) t.write("network.gexf") """ APPLICATION """ dataApp = json.load(open(experimento+'appDefinition.json')) apps = create_applications_from_json(dataApp) #for app in apps: # print apps[app] """ PLACEMENT algorithm """ placementJson = json.load(open(experimento+'allocDefinition%s.json'%ilpPath)) placement = JSONPlacement(name="Placement",json=placementJson) ### Placement histogram # listDevices =[] # for item in placementJson["initialAllocation"]: # listDevices.append(item["id_resource"]) # import matplotlib.pyplot as plt # print listDevices # print np.histogram(listDevices,bins=range(101)) # plt.hist(listDevices, bins=100) # arguments are passed to np.histogram # plt.title("Placement Histogram") # plt.show() ## exit() """ POPULATION algorithm """ dataPopulation = json.load(open(experimento+'usersDefinition.json')) pop = JSONPopulation(name="Statical",json=dataPopulation) """ SELECTOR algorithm """ selectorPath = DeviceSpeedAwareRouting() """ SIMULATION ENGINE """ stop_time = simulated_time s = Sim(t, default_results_path=experimento + "Results_%s_%i" % (ilpPath, stop_time)) #For each deployment the user - population have to contain only its specific sources for aName in apps.keys(): print "Deploying app: ",aName pop_app = JSONPopulation(name="Statical_%s"%aName,json={}) data = [] for element in pop.data["sources"]: if element['app'] == aName: data.append(element) pop_app.data["sources"]=data s.deploy_app(apps[aName], placement, pop_app, selectorPath) s.run(stop_time, test_initial_deploy=False, show_progress_monitor=False) #TEST to TRUE