Exemple #1
0
 def __init__(self, config: Configuration,
              distr_factory: DistributionFactory,
              historgram_builder: injector.ClassAssistedBuilder[Histogram]):
     super(Stats, self).__init__()
     self.__training_distribution = distr_factory(training=True)
     self.__histogram_builder = historgram_builder
     self.__target_satisfaction = config.get_config_int(
         'target_satisfaction')
     self.__satisfaction_threshold = config.get_config_int(
         'satisfaction_threshold')
     self.__config = config
     self.__storage = {}
 def __init__(self, config: Configuration,
              distr_factory: DistributionFactory, conn: sqlite3.Connection,
              name: str):
     super(Histogram, self).__init__()
     self.__activity_distribution = distr_factory()
     self.__cache_size = config.get_config_int('cache_size',
                                               section='stats')
     self.__cursor = conn.cursor()
     self.__name = name
     self.__config = config
     self.__merge_by_pc = config.get_arg('merge_by_pc')
     self.__merge_by_hour = config.get_arg('merge_by_hour')
     self.__write_cache = []
Exemple #3
0
 def __init__(self, config: Configuration,
              model_builder: injector.ClassAssistedBuilder[Model],
              config_section: str):
     """All the data of this object is loaded from the config object."""
     super(ActivityDistributionBase, self).__init__()
     self.__target_satisfaction = config.get_config_int(
         'target_satisfaction')
     self.__satisfaction_threshold = config.get_config_int(
         'satisfaction_threshold')
     self.__config = config
     self.__config_section = config_section
     do_merge = (config_section == 'training_distribution')
     self.__merge_by_pc = config.get_arg('merge_by_pc') and do_merge
     self.__merge_by_hour = config.get_arg('merge_by_hour') and do_merge
     self.__trace_file = config.get_config('file', section=config_section)
     self.__xmin = config.get_config_float('xmin', section=config_section)
     self.__xmax = config.get_config_float('xmax', section=config_section)
     self.__duration = config.get_config_float('duration',
                                               section=config_section)
     self.__model_builder = functools.partial(model_builder.build,
                                              xmax=self.__xmax,
                                              xmin=self.__xmin)
     self.__servers = []
     self.__models = {}
     self.__optimal_timeout = None
     self.__optimal_timeouts = {}
     self.__parse_trace()
Exemple #4
0
 def __init__(self, config: Configuration, distr_builder: injector.
              ClassAssistedBuilder[ActivityDistributionBase],
              fleet_generator: FleetGenerator):
     super(DistributionFactory, self).__init__()
     self.__activity_distr = distr_builder.build(
         config_section='activity_distribution')
     self.__training_distr = distr_builder.build(
         config_section='training_distribution')
     self.__fleet_generator = fleet_generator
     self.__is_fleet_generator = config.get_arg('fleet_generator')
Exemple #5
0
 def __init__(self,
              config: Configuration,
              xmax: float,
              xmin: float,
              inactivity: typing.List = None,
              activity: typing.List = None,
              off_duration: typing.List = None,
              off_fraction: typing.List = None):
     super(Model, self).__init__()
     self.__inactivity = EmpiricalDistribution(inactivity)
     self.__activity = EmpiricalDistribution(activity)
     self.__off_duration = EmpiricalDistribution(off_duration)
     self.__off_fraction = off_fraction or []
     self.__optimal_timeout = None
     self.__satisfaction_threshold = config.get_config_int(
         'satisfaction_threshold')
     self.__target_satisfaction = config.get_config_int(
         'target_satisfaction')
     self.__xmax = xmax
     self.__xmin = xmin
     self.__tested = None
Exemple #6
0
 def __init__(self, config: Configuration,
              distr_factory: DistributionFactory,
              user_builder: injector.ClassAssistedBuilder[User], plot: Plot,
              stats: Stats):
     super(Simulation, self).__init__()
     self.__activity_distribution = distr_factory()
     self.__training_distribution = distr_factory(training=True)
     self.__user_builder = user_builder
     self.__plot = plot
     self.__stats = stats
     self.__config = config
     self.target_satisfaction = config.get_config_int('target_satisfaction')
Exemple #7
0
    def __init__(self, config: Configuration):
        """Constructs the simulated fleet.

        Args:
          nservers: int, number of servers to simulate.
          in_hour: int, the time of starting working.
          out_hour: int, the time of leaving work.
        """
        super(FleetGenerator, self).__init__()
        self.__target_satisfaction = config.get_config_int(
            'target_satisfaction')
        self.__servers = generate_servers(config.users_num)
        self.__initialised = {cid: False for cid in self.__servers}
Exemple #8
0
 def __init__(self, config: Configuration,
              distr_factory: DistributionFactory, stats: Stats, cid: str):
     super(Computer, self).__init__()
     self.__activity_distribution = distr_factory()
     self.__training_distribution = distr_factory(training=True)
     self.__stats = stats
     self.__computer_id = cid
     self.__status = ComputerStatus.on
     self.__last_auto_shutdown = None
     self.__config = config
     self.__disable_auto_shutdown = config.get_arg('disable_auto_shutdown')
     self.__idle_timer = self.__config.env.process(
         self.__idle_timer_runner())
 def provide_connection(self, config: Configuration) -> sqlite3.Connection:
     """Sets the database up for the module to work."""
     db_name = config.get_config('database_name', 'stats')
     try:
         os.remove(db_name)
     except FileNotFoundError:
         pass
     conn = sqlite3.connect(db_name)
     conn.isolation_level = None
     conn.row_factory = sqlite3.Row
     conn.execute('PRAGMA journal_mode = OFF;')
     conn.execute('PRAGMA foreign_keys = OFF;')
     conn.execute('PRAGMA cache_size = %d;' % -int(MB(64) / KB(1)))
     conn.execute('PRAGMA synchronous = OFF;')
     conn.execute('PRAGMA temp_store = MEMORY;')
     return conn
Exemple #10
0
def config_logging(config: Configuration) -> None:
    """Sets logging basic config"""
    logging.basicConfig(
        format='%(levelname)s: %(message)s',
        level=logging.DEBUG if config.get_arg('debug') else logging.INFO)
    logging.captureWarnings(True)