in cluster-trace-gpu-v2020/simulator/simulator.py [0:0]
def __init__(self, csv_file, alloc_policy=0, preempt_policy=0,
sort_node_policy=0, oracle=False, random_seed=42,
max_time=int(1e10), num_gpus=None, num_cpus=None, num_nodes=4,
pattern=1, delta=1, num_spare_node=1,
hetero=False, describe_file=None, export_job_stats=False,
export_cluster_util=False, log_file=None, arrival_rate=None,
arrival_interval=60, arrival_shuffle=False,
num_jobs_limit=None, gpu_type_matching=0, verbose=0):
self.cluster = None
self.scheduler = None
self.cur_time = None
self.num_jobs = None
self.job_list = []
self.job_runn_list = []
self.exit_flag = None
self.max_time = max_time
self.num_gpus = num_gpus
self.num_cpus = num_cpus
self.num_nodes = num_nodes
self.csv_file = csv_file
self.oracle = oracle # know fluctuation?
self.alloc_policy = alloc_policy
self.preempt_policy = preempt_policy
self.sort_node_policy = sort_node_policy
self.describe_dict = _add_describe(describe_file) # describe_file: each users' job distribution in csv format.
self.arrival_rate = arrival_rate # job arrival rate
self.arrival_interval = arrival_interval
self.arrival_shuffle = arrival_shuffle
self.num_jobs_limit = num_jobs_limit
self.job_origin_list = self.add_job(self.csv_file, self.describe_dict, limit=num_jobs_limit * 10)
self.pattern = pattern # which resource varying pattern?
self.delta = delta # time granularity, minimum: 1 second.
self.num_spare_node = num_spare_node
self.hetero = hetero
self.gpu_type_matching = gpu_type_matching
self.export_job_stats = export_job_stats
self.export_cluster_util = export_cluster_util
self.log_file = log_file # just pass the path
self.verbose = verbose
random.seed(random_seed)