예제 #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)
예제 #2
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
예제 #3
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