Skip to content
Snippets Groups Projects
Commit ca8cf5f9 authored by Millian Poquet's avatar Millian Poquet
Browse files

script: debug wl gen (python json = :poop:)

parent 987fd99e
Branches
No related tags found
No related merge requests found
......@@ -2,6 +2,7 @@
import argparse
from concurrent.futures import ProcessPoolExecutor
import datetime
from math import isfinite
import json
import os
import pandas as pd
......@@ -48,12 +49,13 @@ def generate_node_file(job_profile_dir, job_min_dt, job_max_dt, job_node, node_i
def generate_job_power_time_series(job_profile_dir, job_min_dt, job_max_dt, job_nodes, min_power):
fname = f'{job_profile_dir}/dynpower.csv'
static_watts = len(job_nodes) * min_power
none_nan_to_idle = lambda x: static_watts if x is None or not isfinite(x) else x
# assume that already existing dirs have valid content
if os.path.exists(job_profile_dir):
df = pd.read_csv(fname)
df['job_total_dynamic_power'] = df['job_total_dynamic_power'] + static_watts
return float(df['job_total_dynamic_power'].mean()), float(df['job_total_dynamic_power'].max())
return none_nan_to_idle(float(df['job_total_dynamic_power'].mean())), none_nan_to_idle(float(df['job_total_dynamic_power'].max()))
global POWER_DF
time_mask = (POWER_DF['timestamp'] >= job_min_dt) & (POWER_DF['timestamp'] <= job_max_dt)
......@@ -61,8 +63,8 @@ def generate_job_power_time_series(job_profile_dir, job_min_dt, job_max_dt, job_
job_power_df = POWER_DF[time_mask & space_mask]
job_summed_power_df = job_power_df.groupby('timestamp')['value'].sum()
job_real_power_mean = float(job_summed_power_df.mean())
job_real_power_max = float(job_summed_power_df.max())
job_real_power_mean = none_nan_to_idle(float(job_summed_power_df.mean()))
job_real_power_max = none_nan_to_idle(float(job_summed_power_df.max()))
# remove static part
job_summed_power_df = job_summed_power_df - static_watts
......@@ -228,8 +230,8 @@ def main():
"replay_begin_seconds_from_2022-01-01": {begin_seconds_since_m100_epoch},
"replay_end_seconds_from_2022-01-01": {end_seconds_since_m100_epoch},
"nb_res": 980,
"jobs": {json.dumps(jobs, indent=4)},
"profiles": {json.dumps(profiles, indent=4, sort_keys=True)}
"jobs": {json.dumps(jobs, indent=4, allow_nan=False)},
"profiles": {json.dumps(profiles, indent=4, sort_keys=True, allow_nan=False)}
}}''')
match args.profile_type:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment