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 @@ ...@@ -2,6 +2,7 @@
import argparse import argparse
from concurrent.futures import ProcessPoolExecutor from concurrent.futures import ProcessPoolExecutor
import datetime import datetime
from math import isfinite
import json import json
import os import os
import pandas as pd 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 ...@@ -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): 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' fname = f'{job_profile_dir}/dynpower.csv'
static_watts = len(job_nodes) * min_power 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 # assume that already existing dirs have valid content
if os.path.exists(job_profile_dir): if os.path.exists(job_profile_dir):
df = pd.read_csv(fname) df = pd.read_csv(fname)
df['job_total_dynamic_power'] = df['job_total_dynamic_power'] + static_watts 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 global POWER_DF
time_mask = (POWER_DF['timestamp'] >= job_min_dt) & (POWER_DF['timestamp'] <= job_max_dt) 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_ ...@@ -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_power_df = POWER_DF[time_mask & space_mask]
job_summed_power_df = job_power_df.groupby('timestamp')['value'].sum() job_summed_power_df = job_power_df.groupby('timestamp')['value'].sum()
job_real_power_mean = float(job_summed_power_df.mean()) job_real_power_mean = none_nan_to_idle(float(job_summed_power_df.mean()))
job_real_power_max = float(job_summed_power_df.max()) job_real_power_max = none_nan_to_idle(float(job_summed_power_df.max()))
# remove static part # remove static part
job_summed_power_df = job_summed_power_df - static_watts job_summed_power_df = job_summed_power_df - static_watts
...@@ -228,8 +230,8 @@ def main(): ...@@ -228,8 +230,8 @@ def main():
"replay_begin_seconds_from_2022-01-01": {begin_seconds_since_m100_epoch}, "replay_begin_seconds_from_2022-01-01": {begin_seconds_since_m100_epoch},
"replay_end_seconds_from_2022-01-01": {end_seconds_since_m100_epoch}, "replay_end_seconds_from_2022-01-01": {end_seconds_since_m100_epoch},
"nb_res": 980, "nb_res": 980,
"jobs": {json.dumps(jobs, indent=4)}, "jobs": {json.dumps(jobs, indent=4, allow_nan=False)},
"profiles": {json.dumps(profiles, indent=4, sort_keys=True)} "profiles": {json.dumps(profiles, indent=4, sort_keys=True, allow_nan=False)}
}}''') }}''')
match args.profile_type: 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