in cluster-trace-gpu-v2020/analysis/utils.py [0:0]
def plan_minus_usg_over_cap_task(dfas):
dfas['plan_gpu_minus_usage_over_capacity'] = (dfas['plan_gpu'] - dfas['gpu_wrk_util']) / (100 * dfas['cap_gpu'])
dfas['plan_cpu_minus_usage_over_capacity'] = (dfas['plan_cpu'] - dfas['cpu_usage']) / (100 * dfas['cap_cpu'] )
dfas['plan_mem_minus_usage_over_capacity'] = (dfas['plan_mem'] - dfas['avg_mem']) / dfas['cap_mem']
dfas_task = dfas.groupby(['job_name','task_name'])[['plan_gpu_minus_usage_over_capacity','plan_cpu_minus_usage_over_capacity','plan_mem_minus_usage_over_capacity']].mean()
pgu_datas, pgu_label, ugp_datas, ugp_label = [], [], [], []
for device in ['cpu','gpu','mem']:
apu = dfas_task[~dfas_task['plan_{}_minus_usage_over_capacity'.format(device)].isnull()]
pgu = dfas_task[dfas_task['plan_{}_minus_usage_over_capacity'.format(device)] > 0]
ugp = dfas_task[dfas_task['plan_{}_minus_usage_over_capacity'.format(device)] < 0]
print("{}: plan > usage: {:.2f}%, plan < usage: {:.2f}%".format(
device, 100 * len(pgu) / len(apu), 100 * len(ugp) / len(apu) ))
pgu_label.append("{} {:.2f}%".format(device, 100 * len(pgu) / len(apu)))
pgu_datas.append(pgu['plan_{}_minus_usage_over_capacity'.format(device)])
ugp_label.append("{} {:.2f}%".format(device, 100 * len(ugp) / len(apu)))
ugp_datas.append(-ugp['plan_{}_minus_usage_over_capacity'.format(device)])
return pgu_datas, ugp_datas, pgu_label, ugp_label