if dir == ".DS_Store": continue num_sim_file = 0 # number of workloads get simulated in each folder _ws_per_workload = [0] * NUM_WORKLOAD _hs_per_workload = [0] * NUM_WORKLOAD _uf_per_workload = [0] * NUM_WORKLOAD for sim_index in range (1, NUM_WORKLOAD+1, 1): sim_file = target_dir + dir + "/sim_" + str(sim_index) + ".out" if os.path.isfile (sim_file) is False: print "The file " + sim_file + " doesn't exist." continue # read in the referenced IPC ipc_alone = get.get_ipc_alone (workload_dir, sim_index) stat_share_design = get.get_stat (sim_file) ipc_share_design = get.get_ipc_share (stat_share_design) (ws_design, hs_design, uf_design) = get.cmp_metric (ipc_alone, ipc_share_design) _ws_per_workload [num_sim_file] = ws_design _hs_per_workload [num_sim_file] = hs_design _uf_per_workload [num_sim_file] = uf_design num_sim_file = num_sim_file + 1 total_num = total_num + 1 ws_plt = ws_plt + [get.cmp_geo_avg (_ws_per_workload)] hs_plt = hs_plt + [get.cmp_geo_avg (_hs_per_workload)] uf_plt = uf_plt + [get.cmp_geo_avg (_uf_per_workload)] para_value_plt = para_value_plt + [dir] num_value = num_value + 1 # increase the number of value being swept print "number of value : " + str (num_value) print "total files: " + str (total_num)
max_ws = 0 max_hs = 0 min_uf = 100 l1miss_aggr = 0 num_sim = 0 for index in range (1, NUM_SIM+1): ipc_alone = get.get_ipc_alone (PATH_WORKLOAD, index) design_file = PATH_DESIGN + "sim_" + str(index) + ".out" baseline_file = PATH_BASELINE + "sim_" + str(index) + ".out" if os.path.isfile (design_file) is False or os.path.isfile (baseline_file) is False: print "The file doesn't exist." continue stat_share_design = get.get_stat (design_file) stat_share_baseline = get.get_stat (baseline_file) ipc_share_design = get.get_ipc_share (stat_share_design) ipc_share_baseline = get.get_ipc_share (stat_share_baseline) # normalized to the baseline design (ws_design, hs_design, uf_design, uf_baseline) = get.cmp_metric_bs (ipc_alone, ipc_share_baseline, ipc_share_design) ws_norm = ws_norm + ws_design/NODE hs_norm = hs_norm + hs_design uf_norm = uf_norm + float(uf_design)/uf_baseline ws_norm_raw = ws_norm_raw + [ws_design/NODE] hs_norm_raw = hs_norm_raw + [hs_design] uf_norm_raw = uf_norm_raw + [float(uf_design)/uf_baseline] num_sim = num_sim + 1 if (ws_design/NODE > max_ws): max_ws = ws_design/NODE if (hs_design > max_hs): max_hs = hs_design if (float(uf_design)/uf_baseline < min_uf): min_uf = float(uf_design)/uf_baseline #print ws_norm #print "uf_design"+str(uf_design)