From c27514890e06358061ce4531b953cd585d894408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Constantin=20F=C3=BCrst?= Date: Tue, 5 Dec 2023 23:15:34 +0100 Subject: [PATCH] finish the move to save entire results and not condensed average in the plotter scripts --- .../benchmark-plotters/plot-cost-mtsubmit.py | 70 +++++++------- .../plot-perf-enginelocation.py | 74 +++++++------- .../benchmark-plotters/plot-perf-mtsubmit.py | 90 ++++++++++++++++++ .../plot-perf-submitmethod.py | 15 +-- .../plot-perf-submitmethod.png | Bin 36958 -> 37060 bytes 5 files changed, 170 insertions(+), 79 deletions(-) create mode 100644 benchmarks/benchmark-plotters/plot-perf-mtsubmit.py diff --git a/benchmarks/benchmark-plotters/plot-cost-mtsubmit.py b/benchmarks/benchmark-plotters/plot-cost-mtsubmit.py index dc97804..0e874b5 100644 --- a/benchmarks/benchmark-plotters/plot-cost-mtsubmit.py +++ b/benchmarks/benchmark-plotters/plot-cost-mtsubmit.py @@ -1,28 +1,26 @@ import os import json import pandas as pd -from pandas.core.ops import methods +from itertools import chain import seaborn as sns import matplotlib.pyplot as plt -x_label = "Copy Type" +runid = "Run ID" +x_label = "Thread Count" y_label = "Throughput in GiB/s" var_label = "Thread Counts" thread_counts = ["1t", "2t", "4t", "8t", "12t"] thread_counts_nice = ["1 Thread", "2 Threads", "4 Threads", "8 Threads", "12 Threads"] engine_counts = ["1e", "4e"] engine_counts_nice = ["1 Engine per Group", "4 Engines per Group"] -title = "Performance of Multi-Threaded Submit - Copy Operation Intra-Node on DDR with Size 1 MiB" +title = "Throughput per Thread - Copy Operation Intra-Node on DDR with Size 1 MiB" -data = { - x_label : thread_counts_nice, - engine_counts_nice[0] : [], - engine_counts_nice[1] : [], -} +index = [runid, x_label, var_label] +data = [] def calc_throughput(size_bytes,time_microseconds): - time_seconds = time_microseconds * 1e-6 + time_seconds = time_microseconds * 1e-9 size_gib = size_bytes / (1024 ** 3) throughput_gibs = size_gib / time_seconds return throughput_gibs @@ -34,55 +32,59 @@ def index_from_element(value,array): return 0 -# Function to load and process the JSON file for the multi-threaded benchmark -def load_and_process_mt_json(file_path): +def load_and_process_copy_json(file_path): with open(file_path, 'r') as file: data = json.load(file) - - # Extracting count from JSON structure + count = data["count"] - # Extracting time from JSON structure for elements 0 to count - times = [data["list"][i]["report"]["time"]["combined_avg"] for i in range(count)] - - # Calculating the average of times - average_time = sum(times) / count - - return average_time - + return { + "combined" : list(chain(*[data["list"][i]["report"]["time"]["combined"] for i in range(count)])), + "submission" : list(chain(*[data["list"][i]["report"]["time"]["submission"] for i in range(count)])), + "completion" : list(chain(*[data["list"][i]["report"]["time"]["completion"] for i in range(count)])) + } # Function to plot the graph for the new benchmark -def plot_mt_graph(file_paths, engine_label): +def create_mtsubmit_dataset(file_paths, engine_label): times = [] - for file_path in file_paths: - # Load and process JSON file for the new benchmark - time_microseconds = load_and_process_mt_json(file_path) - times.append(time_microseconds) - engine_index = index_from_element(engine_label,engine_counts) engine_nice = engine_counts_nice[engine_index] - throughput = [calc_throughput(1024*1024, t) for t in times] + idx = 0 + for file_path in file_paths: + time = load_and_process_copy_json(file_path) + times.append(time["combined"]) + idx = idx + 1 + + throughput = [[calc_throughput(1024*1024,time) for time in t] for t in times] - data[engine_nice] = throughput + idx = 0 + for run_set in throughput: + run_idx = 0 + for run in run_set: + data.append({ runid : run_idx, x_label: thread_counts_nice[idx], var_label : engine_nice, y_label : throughput[idx][run_idx]}) + run_idx = run_idx + 1 + idx = idx + 1 # Main function to iterate over files and create plots for the new benchmark def main(): - folder_path = "benchmark-results/mtsubmit-bench/" # Replace with the actual path to your folder + folder_path = "benchmark-results/" # Replace with the actual path to your folder for engine_label in engine_counts: mt_file_paths = [os.path.join(folder_path, f"mtsubmit-{thread_count}-{engine_label}.json") for thread_count in thread_counts] - plot_mt_graph(mt_file_paths, engine_label) + create_mtsubmit_dataset(mt_file_paths, engine_label) df = pd.DataFrame(data) - dfm = pd.melt(df, id_vars=x_label, var_name=var_label, value_name=y_label) + df.set_index(index, inplace=True) + + sns.barplot(x=x_label, y=y_label, hue=var_label, data=df, palette="rocket", errorbar="sd") - sns.catplot(x=x_label, y=y_label, hue=var_label, data=dfm, kind='bar', height=5, aspect=1, palette="viridis") plt.title(title) plt.savefig(os.path.join(folder_path, "plot-cost-mtsubmit.png"), bbox_inches='tight') plt.show() + if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/benchmarks/benchmark-plotters/plot-perf-enginelocation.py b/benchmarks/benchmark-plotters/plot-perf-enginelocation.py index d855dd0..bc90cb7 100644 --- a/benchmarks/benchmark-plotters/plot-perf-enginelocation.py +++ b/benchmarks/benchmark-plotters/plot-perf-enginelocation.py @@ -5,6 +5,7 @@ from pandas.core.ops import methods import seaborn as sns import matplotlib.pyplot as plt +runid = "Run ID" x_label = "Copy Type" y_label = "Throughput in GiB/s" var_label = "Configuration" @@ -12,18 +13,13 @@ types = ["intersock-n0ton4", "internode-n0ton1"] types_nice = ["Inter-Socket Copy", "Inter-Node Copy"] copy_methods = ["dstcopy", "srccopy", "xcopy"] copy_methods_nice = [ "Engine on DST-Node", "Engine on SRC-Node", "Cross-Copy / Both Engines" ] -title = "Performance of Engine Location - Copy Operation on DDR with Size 1 MiB" - -data = { - x_label : types_nice, - copy_methods_nice[0] : [], - copy_methods_nice[1] : [], - copy_methods_nice[2] : [] -} +title = "Performance of Engine Location - Copy Operation on DDR with Size 1 MiB and 1 Engine per WQ" +index = [runid, x_label, var_label] +data = [] def calc_throughput(size_bytes,time_microseconds): - time_seconds = time_microseconds * 1e-6 + time_seconds = time_microseconds * 1e-9 size_gib = size_bytes / (1024 ** 3) throughput_gibs = size_gib / time_seconds return throughput_gibs @@ -35,57 +31,65 @@ def index_from_element(value,array): return 0 -# Function to load and process the JSON file for the new benchmark -def load_and_process_copy_json(file_path, method_label): +def load_and_process_copy_json(file_path,method_label): with open(file_path, 'r') as file: data = json.load(file) - + # Extracting time from JSON structure if method_label == "xcopy": - # For xcopy method, add times from two entries and divide by 4 - time_entry1 = data["list"][0]["report"]["time"]["combined_avg"] - time_entry2 = data["list"][1]["report"]["time"]["combined_avg"] - time_microseconds = (time_entry1 + time_entry2) / 4 - else: - # For other methods, use the time from the single entry - time_microseconds = data["list"][0]["report"]["time"]["combined_avg"] + # For xcopy method, add times from two entries and divide by 3 + time0 = data["list"][0]["report"]["time"] + time1 = data["list"][1]["report"]["time"] - return time_microseconds + return { + "combined" : [sum(x) / 4 for x in zip(time0["combined"], time1["combined"])], + "submission" : [sum(x) / 4 for x in zip(time0["completion"], time1["completion"])], + "completion" : [sum(x) / 4 for x in zip(time0["submission"], time1["submission"])] + } + else: + return data["list"][0]["report"]["time"] # Function to plot the graph for the new benchmark -def plot_copy_graph(file_paths, method_label): +def create_copy_dataset(file_paths, method_label): times = [] - for file_path in file_paths: - # Load and process JSON file for the new benchmark - time_microseconds = load_and_process_copy_json(file_path, method_label) - times.append(time_microseconds) - method_index = index_from_element(method_label,copy_methods) method_nice = copy_methods_nice[method_index] - throughput = [calc_throughput(1024*1024, t) for t in times] + idx = 0 + for file_path in file_paths: + time = load_and_process_copy_json(file_path,method_label) + times.append(time["combined"]) + idx = idx + 1 - data[method_nice] = throughput + throughput = [[calc_throughput(1024*1024,time) for time in t] for t in times] + idx = 0 + for run_set in throughput: + run_idx = 0 + for run in run_set: + data.append({ runid : run_idx, x_label: types_nice[idx], var_label : method_nice, y_label : throughput[idx][run_idx]}) + run_idx = run_idx + 1 + idx = idx + 1 # Main function to iterate over files and create plots for the new benchmark def main(): - folder_path = "benchmark-results/cross-copy-bench/" # Replace with the actual path to your folder - + folder_path = "benchmark-results/" for method_label in copy_methods: - copy_file_paths = [os.path.join(folder_path, f"{method_label}-{type_label}-1mib-4e.json") for type_label in types] - plot_copy_graph(copy_file_paths, method_label) + copy_file_paths = [os.path.join(folder_path, f"{method_label}-{type_label}-1mib-1e.json") for type_label in types] + create_copy_dataset(copy_file_paths, method_label) df = pd.DataFrame(data) - dfm = pd.melt(df, id_vars=x_label, var_name=var_label, value_name=y_label) + df.set_index(index, inplace=True) + df = df.sort_values(y_label) + + sns.barplot(x=x_label, y=y_label, hue=var_label, data=df, palette="rocket", errorbar="sd") - sns.catplot(x=x_label, y=y_label, hue=var_label, data=dfm, kind='bar', height=5, aspect=1, palette="viridis") plt.title(title) plt.savefig(os.path.join(folder_path, "plot-perf-enginelocation.png"), bbox_inches='tight') plt.show() if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/benchmarks/benchmark-plotters/plot-perf-mtsubmit.py b/benchmarks/benchmark-plotters/plot-perf-mtsubmit.py new file mode 100644 index 0000000..610e094 --- /dev/null +++ b/benchmarks/benchmark-plotters/plot-perf-mtsubmit.py @@ -0,0 +1,90 @@ +import os +import json +import pandas as pd +from itertools import chain +import seaborn as sns +import matplotlib.pyplot as plt + +runid = "Run ID" +x_label = "Thread Count" +y_label = "Throughput in GiB/s" +var_label = "Thread Counts" +thread_counts = ["1t", "2t", "4t", "8t", "12t"] +thread_counts_nice = ["1 Thread", "2 Threads", "4 Threads", "8 Threads", "12 Threads"] +engine_counts = ["1e", "4e"] +engine_counts_nice = ["1 Engine per Group", "4 Engines per Group"] +title = "Combined Throughput - Copy Operation Intra-Node on DDR with Size 1 MiB" + +index = [runid, x_label, var_label] +data = [] + + +def calc_throughput(size_bytes,time_microseconds): + time_seconds = time_microseconds * 1e-9 + size_gib = size_bytes / (1024 ** 3) + throughput_gibs = size_gib / time_seconds + return throughput_gibs + + +def index_from_element(value,array): + for (idx,val) in enumerate(array): + if val == value: return idx + return 0 + + +def load_and_process_copy_json(file_path): + with open(file_path, 'r') as file: + data = json.load(file) + + count = data["count"] + + return { + "combined" : [x / count for x in list(chain(*[data["list"][i]["report"]["time"]["combined"] for i in range(count)]))], + "submission" : [x / count for x in list(chain(*[data["list"][i]["report"]["time"]["submission"] for i in range(count)]))], + "completion" : [x / count for x in list(chain(*[data["list"][i]["report"]["time"]["completion"] for i in range(count)]))] + } + +# Function to plot the graph for the new benchmark +def create_mtsubmit_dataset(file_paths, engine_label): + times = [] + + engine_index = index_from_element(engine_label,engine_counts) + engine_nice = engine_counts_nice[engine_index] + + idx = 0 + for file_path in file_paths: + time = load_and_process_copy_json(file_path) + times.append(time["combined"]) + idx = idx + 1 + + throughput = [[calc_throughput(1024*1024,time) for time in t] for t in times] + + idx = 0 + for run_set in throughput: + run_idx = 0 + for run in run_set: + data.append({ runid : run_idx, x_label: thread_counts_nice[idx], var_label : engine_nice, y_label : throughput[idx][run_idx]}) + run_idx = run_idx + 1 + idx = idx + 1 + + +# Main function to iterate over files and create plots for the new benchmark +def main(): + folder_path = "benchmark-results/" # Replace with the actual path to your folder + + for engine_label in engine_counts: + mt_file_paths = [os.path.join(folder_path, f"mtsubmit-{thread_count}-{engine_label}.json") for thread_count in thread_counts] + create_mtsubmit_dataset(mt_file_paths, engine_label) + + df = pd.DataFrame(data) + df.set_index(index, inplace=True) + + sns.barplot(x=x_label, y=y_label, hue=var_label, data=df, palette="rocket", errorbar="sd") + + plt.title(title) + plt.savefig(os.path.join(folder_path, "plot-perf-mtsubmit.png"), bbox_inches='tight') + plt.show() + + +if __name__ == "__main__": + main() diff --git a/benchmarks/benchmark-plotters/plot-perf-submitmethod.py b/benchmarks/benchmark-plotters/plot-perf-submitmethod.py index c7444d2..c2381bd 100644 --- a/benchmarks/benchmark-plotters/plot-perf-submitmethod.py +++ b/benchmarks/benchmark-plotters/plot-perf-submitmethod.py @@ -20,7 +20,7 @@ index = [runid, x_label, var_label] data = [] def calc_throughput(size_bytes,time_microseconds): - time_seconds = time_microseconds * 1e-6 + time_seconds = time_microseconds * 1e-9 size_gib = size_bytes / (1024 ** 3) throughput_gibs = size_gib / time_seconds return throughput_gibs @@ -35,16 +35,11 @@ def index_from_element(value,array): def load_and_process_submit_json(file_path): with open(file_path, 'r') as file: data = json.load(file) - time = { - "combined" : data["list"][0]["report"]["time"]["combined"], - "submit" : data["list"][0]["report"]["time"]["submission"], - "complete" : data["list"][0]["report"]["time"]["completion"] - } + return data["list"][0]["report"]["time"] - return time # Function to plot the graph for the new benchmark -def plot_submit_graph(file_paths, type_label): +def create_submit_dataset(file_paths, type_label): times = [] type_index = index_from_element(type_label,types) @@ -68,7 +63,7 @@ def plot_submit_graph(file_paths, type_label): times[2] = [t / (1024) for t in times[2]] times[3] = [t / (32*1024) for t in times[3]] - throughput = [[calc_throughput(1000*1000,time) for time in t] for t in times] + throughput = [[calc_throughput(1024,time) for time in t] for t in times] idx = 0 for run_set in throughput: @@ -85,7 +80,7 @@ def main(): for type_label in types: file_paths = [os.path.join(folder_path, f"submit-{type_label}-{size}-1e.json") for size in sizes] - plot_submit_graph(file_paths, type_label) + create_submit_dataset(file_paths, type_label) df = pd.DataFrame(data) df.set_index(index, inplace=True) diff --git a/benchmarks/benchmark-results/plot-perf-submitmethod.png b/benchmarks/benchmark-results/plot-perf-submitmethod.png index 977569089d9df41b05fa2ef543028d18e455f050..87c5e8a62995b6a3421b9dd4c7f1d006a0553b64 100644 GIT binary patch literal 37060 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 literal 36958 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