visualization_utils/plotting-ying.py [2260:2318]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    budget_scale_to_consider = .5
    # get budget first
    base_budgets = {}
    for file in all_result_files:
        with open(file, newline='') as csvfile:
            resultReader = csv.reader(csvfile, delimiter=',', quotechar='|')
            for i, row in enumerate(resultReader):
                if i == 1:
                    if float(row[summary_res_column_name_number["budget_scaling_latency"]]) == 1 and\
                            float(row[summary_res_column_name_number["budget_scaling_power"]]) == 1 and \
                            float(row[summary_res_column_name_number["budget_scaling_area"]]) == 1:
                        base_budgets["power"] = float(row[summary_res_column_name_number["power_budget"]])
                        base_budgets["area"] = float(row[summary_res_column_name_number["area_budget"]])
                        break


    for file in all_result_files:
        with open(file, newline='') as csvfile:
            resultReader = csv.reader(csvfile, delimiter=',', quotechar='|')
            for i, row in enumerate(resultReader):
                if i == 1:
                    workload_set_name = row[summary_res_column_name_number["workload_set"]]
                    if workload_set_name not in workload_results.keys():
                        workload_results[workload_set_name] = []
                    latency = ((row[summary_res_column_name_number["latency"]].split(";"))[0].split("="))[1]
                    latency_budget = ((row[summary_res_column_name_number["latency_budget"]].split(";"))[0].split("="))[1]
                    if float(latency)  > float(latency_budget):
                        continue

                    #workload_results[workload_set_name].append((float(power),float(area), float(system_complexity)))

                    area= float(row[summary_res_column_name_number["area"]])
                    power = float(row[summary_res_column_name_number["power"]])
                    system_char = {}
                    for el in system_char_to_keep_track_of:
                        system_char[el] = float(row[summary_res_column_name_number[el]])
                    point_system_char = {(power, area): system_char}
                    workload_results[workload_set_name].append(point_system_char)

    workload_pareto_points = {}
    for workload, points_ in workload_results.items():
        points = [list(el.keys())[0] for el in points_]
        pareto_points= find_pareto_points(list(set(points)))
        workload_pareto_points[workload] = []
        for point in pareto_points:
            keys = [list(el.keys())[0] for el in workload_results[workload]]
            idx = keys.index(point)
            workload_pareto_points[workload].append({point:(workload_results[workload])[idx]})


    """" 
    # combine the results
    combined_area_power = []
    for results_combined in itertools.product(*list(workload_pareto_points.values())):
        combined_power_area_tuple = [0,0]
        for el in results_combined:
            combined_power_area_tuple[0] += el[0]
            combined_power_area_tuple[1] += el[1]
        combined_area_power.append(combined_power_area_tuple[:])
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



visualization_utils/plotting.py [3362:3420]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    budget_scale_to_consider = .5
    # get budget first
    base_budgets = {}
    for file in all_result_files:
        with open(file, newline='') as csvfile:
            resultReader = csv.reader(csvfile, delimiter=',', quotechar='|')
            for i, row in enumerate(resultReader):
                if i == 1:
                    if float(row[summary_res_column_name_number["budget_scaling_latency"]]) == 1 and\
                            float(row[summary_res_column_name_number["budget_scaling_power"]]) == 1 and \
                            float(row[summary_res_column_name_number["budget_scaling_area"]]) == 1:
                        base_budgets["power"] = float(row[summary_res_column_name_number["power_budget"]])
                        base_budgets["area"] = float(row[summary_res_column_name_number["area_budget"]])
                        break


    for file in all_result_files:
        with open(file, newline='') as csvfile:
            resultReader = csv.reader(csvfile, delimiter=',', quotechar='|')
            for i, row in enumerate(resultReader):
                if i == 1:
                    workload_set_name = row[summary_res_column_name_number["workload_set"]]
                    if workload_set_name not in workload_results.keys():
                        workload_results[workload_set_name] = []
                    latency = ((row[summary_res_column_name_number["latency"]].split(";"))[0].split("="))[1]
                    latency_budget = ((row[summary_res_column_name_number["latency_budget"]].split(";"))[0].split("="))[1]
                    if float(latency)  > float(latency_budget):
                        continue

                    #workload_results[workload_set_name].append((float(power),float(area), float(system_complexity)))

                    area= float(row[summary_res_column_name_number["area"]])
                    power = float(row[summary_res_column_name_number["power"]])
                    system_char = {}
                    for el in system_char_to_keep_track_of:
                        system_char[el] = float(row[summary_res_column_name_number[el]])
                    point_system_char = {(power, area): system_char}
                    workload_results[workload_set_name].append(point_system_char)

    workload_pareto_points = {}
    for workload, points_ in workload_results.items():
        points = [list(el.keys())[0] for el in points_]
        pareto_points= find_pareto_points(list(set(points)))
        workload_pareto_points[workload] = []
        for point in pareto_points:
            keys = [list(el.keys())[0] for el in workload_results[workload]]
            idx = keys.index(point)
            workload_pareto_points[workload].append({point:(workload_results[workload])[idx]})


    """" 
    # combine the results
    combined_area_power = []
    for results_combined in itertools.product(*list(workload_pareto_points.values())):
        combined_power_area_tuple = [0,0]
        for el in results_combined:
            combined_power_area_tuple[0] += el[0]
            combined_power_area_tuple[1] += el[1]
        combined_area_power.append(combined_power_area_tuple[:])
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



