diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t-1gib.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t-1gib.json new file mode 100644 index 0000000..759e607 --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t-1gib.json @@ -0,0 +1,186 @@ +{ + "count": 12, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t-1mib.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t-1mib.json new file mode 100644 index 0000000..e4ff363 --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t-1mib.json @@ -0,0 +1,186 @@ +{ + "count": 12, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t-1gib.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t-1gib.json new file mode 100644 index 0000000..7dc64e0 --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 120, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t-1mib.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t-1mib.json new file mode 100644 index 0000000..90b7460 --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t-1mib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 120, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t-1gib.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t-1gib.json new file mode 100644 index 0000000..ea86725 --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t-1gib.json @@ -0,0 +1,36 @@ +{ + "count": 2, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 60, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 60, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t-1mib.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t-1mib.json new file mode 100644 index 0000000..6660715 --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t-1mib.json @@ -0,0 +1,36 @@ +{ + "count": 2, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 60, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 60, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t-1gib.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t-1gib.json new file mode 100644 index 0000000..6dcc330 --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t-1gib.json @@ -0,0 +1,66 @@ +{ + "count": 4, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 30, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 30, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 30, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 30, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t-1mib.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t-1mib.json new file mode 100644 index 0000000..95aedd8 --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t-1mib.json @@ -0,0 +1,66 @@ +{ + "count": 4, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 30, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 30, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 30, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 30, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t-1gib.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t-1gib.json new file mode 100644 index 0000000..c97579d --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t-1gib.json @@ -0,0 +1,126 @@ +{ + "count": 8, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t-1mib.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t-1mib.json new file mode 100644 index 0000000..088a4b7 --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t-1mib.json @@ -0,0 +1,126 @@ +{ + "count": 8, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 15, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-plotters/plot-cost-mtsubmit.py b/benchmarks/benchmark-plotters/plot-cost-mtsubmit.py index 01a0cf4..c9c72ee 100644 --- a/benchmarks/benchmark-plotters/plot-cost-mtsubmit.py +++ b/benchmarks/benchmark-plotters/plot-cost-mtsubmit.py @@ -11,15 +11,15 @@ y_label = "Throughput in GiB/s LogScale" 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 E/WQ", "4 E/WQ"] +engine_counts = ["1mib-1e", "1mib-4e", "1gib-1e", "1gib-4e"] +engine_counts_nice = ["1 E/WQ and Tasksize 1 MiB", "4 E/WQ and Tasksize 1 MiB", "1 E/WQ and Tasksize 1 GiB", "4 E/WQ and Tasksize 1 GiB"] title = "Per-Thread Throughput - 120 Copy Operations split on Threads 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 +def calc_throughput(size_bytes,time_nanosec): + time_seconds = time_nanosec * 1e-9 size_gib = size_bytes / (1024 ** 3) throughput_gibs = size_gib / time_seconds return throughput_gibs @@ -31,16 +31,18 @@ def index_from_element(value,array): return 0 -def load_and_process_copy_json(file_path,mode): +def load_and_process_copy_json(file_path): with open(file_path, 'r') as file: data = json.load(file) count = data["count"] + iterations = data["list"][0]["task"]["iterations"] return { - "combined" : [x / ((120 / count) * count) for x in list(chain(*[data["list"][i]["report"]["time"]["combined"] for i in range(count)]))], - "submission" : [x / ((120 / count) * count) for x in list(chain(*[data["list"][i]["report"]["time"]["submission"] for i in range(count)]))], - "completion" : [x / ((120 / count) * count) for x in list(chain(*[data["list"][i]["report"]["time"]["completion"] for i in range(count)]))] + "total" : sum([x / (iterations * (120 / count)) for x in list(chain(*[data["list"][i]["report"]["time"]["total"] for i in range(count)]))]), + "combined" : [x / (120 / count) for x in list(chain(*[data["list"][i]["report"]["time"]["combined"] for i in range(count)]))], + "submission" : [x / (120 / count) for x in list(chain(*[data["list"][i]["report"]["time"]["submission"] for i in range(count)]))], + "completion" : [x / (120 / 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 @@ -52,11 +54,15 @@ def create_mtsubmit_dataset(file_paths, engine_label): idx = 0 for file_path in file_paths: - time = load_and_process_copy_json(file_path, engine_label) - times.append(time["combined"]) + time = load_and_process_copy_json(file_path) + times.append(time["total"]) idx = idx + 1 - throughput = [[calc_throughput(1024*1024,time) for time in t] for t in times] + throughput = [] + if engine_label in ["1gib-1e", "1gib-4e"]: + throughput = [[calc_throughput(1024*1024*1024,time) for time in t] for t in times] + else: + throughput = [[calc_throughput(1024*1024,time) for time in t] for t in times] idx = 0 for run_set in throughput: @@ -78,7 +84,7 @@ def main(): 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").set(yscale="log") + 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')