def gen_advice_exectime_vs_cost()

in src/hpcadvisor/advice_generator.py [0:0]


def gen_advice_exectime_vs_cost(st, datapoints, dynamic_filter, appexectime):
    mydata, num_vms, max_exectime = dataset_handler.get_sku_nnodes_exec_time(
        datapoints, dynamic_filter, appexectime
    )

    if len(mydata) == 0:
        log.error("No datapoints found. Check dataset and plotfilter files")
        return

    sku_costs = {}
    for key in mydata:
        sku_costs[key] = price_puller.get_price("eastus", key)

    exec_costs = {}
    data_for_pareto = []
    for key in mydata:
        exec_costs[key] = []
        for i in range(len(mydata[key])):
            cost = (mydata[key][i] / 3600.0) * sku_costs[key] * num_vms[key][i]
            sku = key
            exec_costs[key].append(cost)
            data_for_pareto.append((mydata[key][i], cost, num_vms[key][i], sku))

    pareto_front = calculate_pareto_front(data_for_pareto)
    # sort by execution time
    sorted_pareto_front = sorted(pareto_front, key=lambda x: float(x[0]))

    return sorted_pareto_front