From 006a5441997a0bc42a8a5277ad7c8f4937782002 Mon Sep 17 00:00:00 2001 From: bd Date: Fri, 12 Sep 2025 18:19:29 -0400 Subject: Use plotly to visualize experiments, rework experiment/record logic --- nemesis/html_gen.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 nemesis/html_gen.py (limited to 'nemesis/html_gen.py') diff --git a/nemesis/html_gen.py b/nemesis/html_gen.py new file mode 100644 index 0000000..ea7df15 --- /dev/null +++ b/nemesis/html_gen.py @@ -0,0 +1,38 @@ +import plotly.graph_objects as go +from plotly.subplots import make_subplots + +def plot_results(results, filename): + fig = make_subplots(rows=len(results), cols=1, shared_xaxes=True) + + for i, (coro_name, x_values) in enumerate(results.items(), start=1): + x_list = [] + y_list = [] + hover_text = [] + + for speedup, experiments in x_values.items(): + for experiment in experiments: + y_value = sum(experiment.values()) + + x_list.append(speedup) + y_list.append(y_value) + + breakdown = "
".join([f" {key[0]} ({key[1]}): {round(value, 4)}" for key, value in experiment.items()]) + hover_text.append(f"{coro_name}
Speedup: {speedup}
Total Wait: {round(y_value, 4)}
Breakdown:
{breakdown}") + + fig.add_trace(go.Scatter( + x=x_list, + y=y_list, + mode='markers', + name=coro_name, + hoverinfo='text', + hovertext=hover_text, + )) + + fig.update_layout( + title="Potential Speedups for ", + xaxis_title="Speedup (times faster)", + yaxis_title="Total Wait (seconds)", + showlegend=True, + ) + + fig.write_html(filename) -- cgit v1.2.3