Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
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()
Ejemplo n.º 5
0
##!/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
Ejemplo n.º 6
0
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()