def __init__(self, simulations_file, config_file): self.config = yaml.load(open(config_file)) self.generator = RangeGenerator(yaml.load(open(simulations_file))) self.automator = SimulationAutomator( self.config["SimulationAutomator"]) self.persistence = PersistenceManager( self.config["Persistence"]["database"]) self.plotter = Plotter(self.persistence)
def __init__(self, simulations_file, config_file): self.config = yaml.load(open(config_file)) self.generator = RangeGenerator(yaml.load(open(simulations_file))) self.automator = SimulationAutomator(self.config["SimulationAutomator"]) self.persistence = PersistenceManager(self.config["Persistence"]["database"]) self.plotter = Plotter(self.persistence)
def _run_simulations(self, parameters, strategy_combinations): simulator = SimulationAutomator(self.simulation_automator_config) simulation_scenarios = [] for strategy_combination in strategy_combinations: simulation_parameters = {} for parameter in parameters: if parameter == "numToSend": simulation_parameters["**.numToSend_" + str(strategy_combinations.index(strategy_combination))] = parameters[parameter] elif parameter == "burstAmount": simulation_parameters["**.burstAmount_" + str(strategy_combinations.index(strategy_combination))] = parameters[parameter] elif parameter == "burstFrequency": simulation_parameters["**.burstFrequency_" + str(strategy_combinations.index(strategy_combination))] = parameters[parameter] elif parameter == "burstDuration": simulation_parameters["**.burstDuration_" + str(strategy_combinations.index(strategy_combination))] = parameters[parameter] elif parameter == "chanceToUnsubscribe": simulation_parameters["**.chanceToUnsubscribe_" + str(strategy_combinations.index(strategy_combination))] = parameters[parameter] elif parameter == "timeToUnsubscribe": simulation_parameters["**.timeToUnsubscribe_" + str(strategy_combinations.index(strategy_combination))] = parameters[parameter] elif parameter == "timeToSubscribe": simulation_parameters["**.timeToSubscribe_" + str(strategy_combinations.index(strategy_combination))] = parameters[parameter] elif parameter == "disableOverlay": simulation_parameters["**.disableOverlay_" + str(strategy_combinations.index(strategy_combination))] = parameters[parameter] else: simulation_parameters[parameter] = parameters[parameter] simulation_scenarios.append(simulation_parameters) print len(simulation_scenarios) #results, fails = simulator.run(simulation_scenarios, "test_configurator_1") #simulator.persistence.persist_to_database(results) results = [ { "parameters": 1, "results": {"Latency": 10}, "strategies": 1 }, { "parameters": 1, "results": {"Latency": 1}, "strategies": 2 } ] return results
class QuickTest: def __init__(self, simulations_file, config_file): self.config = yaml.load(open(config_file)) self.generator = RangeGenerator(yaml.load(open(simulations_file))) self.automator = SimulationAutomator(self.config["SimulationAutomator"]) self.persistence = PersistenceManager(self.config["Persistence"]["database"]) self.plotter = Plotter(self.persistence) def setup(self): self.persistence.start_db() def run_simulations(self, tag): simulation_scenarios = self.generator.generate_memory() #print len(simulation_scenarios) automator_input = [] for scenario in simulation_scenarios: automator_entry = {} automator_entry["parameters"] = scenario automator_entry["strategies"] = None automator_input.append(automator_entry) results, fails = self.automator.run(automator_input, tag) self.persistence.initialise_database_client() sanitized_results = sanitize_results(results) #print sanitized_results self.persistence.persist_to_database(self.config["Persistence"]["database"]["collection_name"], sanitized_results) return results, fails def plot2d(self, tag, x_param, y_param, filter, output_filename, title="", x_label="", y_label=""): self.persistence.initialise_database_client() self.plotter.plot2d_from_database(tag, x_param, y_param, filter, output_filename, title, x_label, y_label) def plot3d(self, tag, x_param, y_param, z_param, filter, output_filename, title="", x_label="", y_label="", z_label=""): self.persistence.initialise_database_client() self.plotter.plot3d_from_database(tag, x_param, y_param, z_param, filter, output_filename, title, x_label, y_label, z_label) def teardown(self): self.persistence.shutdown_db()
##!/home/i6stud/sianwahl/bootstrap/bin/python __author__ = 'Andreas M. Wahl' import logging import yaml from autosim.SimulationAutomator import SimulationAutomator logging.basicConfig(level=logging.ERROR) logger = logging.getLogger(__name__) # initialize the automation tool by supplying a configuration file config = yaml.load( open("../missile/examples/configs/unified_configuration.mssl", "r")) sim = SimulationAutomator(config["SimulationAutomator"]) # run simulations #simulations = yaml.load(open("../autosim/simulations.m2etis", "r")) #results, fails = sim.run(simulations, "sample_scenario_1") # check if there were failed simulations. #if len(fails) > 0: # logger.error("Simulation(s) failed.") # sys.exit(1) # process results: # persist results #sim.persistence.persist_to_file(results, "test.yaml") #sim.persistence.persist_to_database(results) # plot results
class QuickTest: def __init__(self, simulations_file, config_file): self.config = yaml.load(open(config_file)) self.generator = RangeGenerator(yaml.load(open(simulations_file))) self.automator = SimulationAutomator( self.config["SimulationAutomator"]) self.persistence = PersistenceManager( self.config["Persistence"]["database"]) self.plotter = Plotter(self.persistence) def setup(self): self.persistence.start_db() def run_simulations(self, tag): simulation_scenarios = self.generator.generate_memory() #print len(simulation_scenarios) automator_input = [] for scenario in simulation_scenarios: automator_entry = {} automator_entry["parameters"] = scenario automator_entry["strategies"] = None automator_input.append(automator_entry) results, fails = self.automator.run(automator_input, tag) self.persistence.initialise_database_client() sanitized_results = sanitize_results(results) #print sanitized_results self.persistence.persist_to_database( self.config["Persistence"]["database"]["collection_name"], sanitized_results) return results, fails def plot2d(self, tag, x_param, y_param, filter, output_filename, title="", x_label="", y_label=""): self.persistence.initialise_database_client() self.plotter.plot2d_from_database(tag, x_param, y_param, filter, output_filename, title, x_label, y_label) def plot3d(self, tag, x_param, y_param, z_param, filter, output_filename, title="", x_label="", y_label="", z_label=""): self.persistence.initialise_database_client() self.plotter.plot3d_from_database(tag, x_param, y_param, z_param, filter, output_filename, title, x_label, y_label, z_label) def teardown(self): self.persistence.shutdown_db()