import holoviews as hv
from lisa.platforms.platinfo import PlatformInfo
from lisa.trace import Trace
def create_trace_objects(dirs):
plat_info = PlatformInfo.from_yaml_map('/opt/work/lisa/conf/Juno.plat_info.yml')
traces = [
Trace(f'/opt/work/test/{dir}/trace.dat', plat_info)
for dir in dirs
]
return traces
def grid_style():
return {'grid_line_color': 'gray', 'grid_line_width': 1.0, 'ygrid_bounds': (0,4000),
'minor_ygrid_line_color': 'lightgray',
'minor_xgrid_line_color': 'lightgray', 'xgrid_line_dash': [4, 4]}
def plot_thermal_signals(df_pelt, df_thpr, df_cap, title):
plt_pelt = hv.Curve(df_pelt, kdims=['Time'], vdims =['load'], label='sched_pelt_thermal')
plt_thpr = hv.Curve(df_thpr, kdims=['Time'], vdims =['thermal_pressure'], label='thermal_pressure_update')
plt_cap = hv.Curve(df_cap, kdims=['Time'], vdims =['capacity'], label='sched_cpu_capacity')
curve_opts = hv.opts.Curve(height=400, width=800, line_width=1.50, xlabel='time [s]', ylabel='capacity/util', title='{}'.format(title), interpolation='steps-post', tools=['hover'], show_grid=True, gridstyle=grid_style())
return plt_pelt.opts(curve_opts) * plt_thpr.opts(curve_opts) * plt_cap.opts(curve_opts)