summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-m3sa/src/main/python/models/model.py
blob: bfffd090d908ccdd8e7663eee9251efb0e5acd4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
"""
A model is the output of simulator. It contains the data the simulator output, under a certain topology, seed,
workload, datacenter configuration, etc. A model is further used in the analyzer as part of the MultiModel class,
and further in the MetaModel class.

:param sim: the simulation data of the model
"""
import json


class Model:
    """
    Represents a single simulation output containing various data metrics collected under specific simulation conditions.
    A Model object stores raw and processed simulation data and is designed to interact with higher-level structures like
    MultiModel and MetaModel for complex data analysis.
    """

    def __init__(self, raw_sim_data, identifier: str):
        self.raw_sim_data = raw_sim_data
        self.id: str = str(identifier)
        self.processed_sim_data = []
        self.cumulative_time_series_values = []
        self.cumulated: float = 0.0
        self.experiment_name: str = ""
        self.margins_of_error = []
        self.topologies = []
        self.workloads = []
        self.allocation_policies = []
        self.carbon_trace_paths = []

    def is_meta_model(self) -> bool:
        return self.id == "M"