From b7cae18b6d778455c95feba1d6831c71952e268c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Constantin=20F=C3=BCrst?= Date: Mon, 11 Dec 2023 14:05:19 +0100 Subject: [PATCH] restructure the engine location bench, correct and update the plotter to use new total time --- .../dstcopy-internode-n0ton1-1gib.json | 21 +++++++++++ .../dstcopy-internode-n0ton1-1mib.json | 0 .../dstcopy-intersock-n0ton4-1gib.json | 21 +++++++++++ .../dstcopy-intersock-n0ton4-1mib.json | 0 .../dstoutsidercopy-intersock-n0to4-1gib.json | 21 +++++++++++ .../dstoutsidercopy-intersock-n0to4-1mib.json | 21 +++++++++++ .../outsidercopy-internode-n0ton1-1gib.json | 21 +++++++++++ .../outsidercopy-internode-n0ton1-1mib.json | 21 +++++++++++ .../srccopy-internode-n0ton1-1gib.json | 21 +++++++++++ .../srccopy-internode-n0ton1-1mib.json | 0 .../srccopy-intersock-n0ton4-1gib.json | 21 +++++++++++ .../srccopy-intersock-n0ton4-1mib.json | 0 .../srcoutsidercopy-intersock-n0to4-1gib.json | 21 +++++++++++ .../srcoutsidercopy-intersock-n0to4-1mib.json | 21 +++++++++++ .../xcopy-internode-n0ton1-1gib.json | 36 +++++++++++++++++++ .../xcopy-internode-n0ton1-1mib.json | 0 .../xcopy-intersock-n0ton4-1gib.json | 36 +++++++++++++++++++ .../xcopy-intersock-n0ton4-1mib.json | 0 .../plot-perf-enginelocation.py | 17 ++++----- 19 files changed, 291 insertions(+), 8 deletions(-) create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-internode-n0ton1-1gib.json rename benchmarks/benchmark-descriptors/{cross-copy-bench => engine-location-bench}/dstcopy-internode-n0ton1-1mib.json (100%) create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-intersock-n0ton4-1gib.json rename benchmarks/benchmark-descriptors/{cross-copy-bench => engine-location-bench}/dstcopy-intersock-n0ton4-1mib.json (100%) create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/dstoutsidercopy-intersock-n0to4-1gib.json create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/dstoutsidercopy-intersock-n0to4-1mib.json create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/outsidercopy-internode-n0ton1-1gib.json create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/outsidercopy-internode-n0ton1-1mib.json create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/srccopy-internode-n0ton1-1gib.json rename benchmarks/benchmark-descriptors/{cross-copy-bench => engine-location-bench}/srccopy-internode-n0ton1-1mib.json (100%) create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/srccopy-intersock-n0ton4-1gib.json rename benchmarks/benchmark-descriptors/{cross-copy-bench => engine-location-bench}/srccopy-intersock-n0ton4-1mib.json (100%) create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/srcoutsidercopy-intersock-n0to4-1gib.json create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/srcoutsidercopy-intersock-n0to4-1mib.json create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/xcopy-internode-n0ton1-1gib.json rename benchmarks/benchmark-descriptors/{cross-copy-bench => engine-location-bench}/xcopy-internode-n0ton1-1mib.json (100%) create mode 100644 benchmarks/benchmark-descriptors/engine-location-bench/xcopy-intersock-n0ton4-1gib.json rename benchmarks/benchmark-descriptors/{cross-copy-bench => engine-location-bench}/xcopy-intersock-n0ton4-1mib.json (100%) diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-internode-n0ton1-1gib.json b/benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-internode-n0ton1-1gib.json new file mode 100644 index 0000000..ee2dc1c --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-internode-n0ton1-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 1, + "nnode_src": 0, + "node": 1 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-internode-n0ton1-1mib.json b/benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-internode-n0ton1-1mib.json similarity index 100% rename from benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-internode-n0ton1-1mib.json rename to benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-internode-n0ton1-1mib.json diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-intersock-n0ton4-1gib.json b/benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-intersock-n0ton4-1gib.json new file mode 100644 index 0000000..dfe2363 --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-intersock-n0ton4-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 4, + "nnode_src": 0, + "node": 4 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-intersock-n0ton4-1mib.json b/benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-intersock-n0ton4-1mib.json similarity index 100% rename from benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-intersock-n0ton4-1mib.json rename to benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-intersock-n0ton4-1mib.json diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/dstoutsidercopy-intersock-n0to4-1gib.json b/benchmarks/benchmark-descriptors/engine-location-bench/dstoutsidercopy-intersock-n0to4-1gib.json new file mode 100644 index 0000000..ec71ef4 --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/dstoutsidercopy-intersock-n0to4-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 4, + "nnode_src": 0, + "node": 7 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/dstoutsidercopy-intersock-n0to4-1mib.json b/benchmarks/benchmark-descriptors/engine-location-bench/dstoutsidercopy-intersock-n0to4-1mib.json new file mode 100644 index 0000000..6ce8577 --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/dstoutsidercopy-intersock-n0to4-1mib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 4, + "nnode_src": 0, + "node": 7 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/outsidercopy-internode-n0ton1-1gib.json b/benchmarks/benchmark-descriptors/engine-location-bench/outsidercopy-internode-n0ton1-1gib.json new file mode 100644 index 0000000..f2aa177 --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/outsidercopy-internode-n0ton1-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 1, + "nnode_src": 0, + "node": 3 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/outsidercopy-internode-n0ton1-1mib.json b/benchmarks/benchmark-descriptors/engine-location-bench/outsidercopy-internode-n0ton1-1mib.json new file mode 100644 index 0000000..461f6d1 --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/outsidercopy-internode-n0ton1-1mib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 1, + "nnode_src": 0, + "node": 3 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/srccopy-internode-n0ton1-1gib.json b/benchmarks/benchmark-descriptors/engine-location-bench/srccopy-internode-n0ton1-1gib.json new file mode 100644 index 0000000..d352319 --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/srccopy-internode-n0ton1-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 1, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/cross-copy-bench/srccopy-internode-n0ton1-1mib.json b/benchmarks/benchmark-descriptors/engine-location-bench/srccopy-internode-n0ton1-1mib.json similarity index 100% rename from benchmarks/benchmark-descriptors/cross-copy-bench/srccopy-internode-n0ton1-1mib.json rename to benchmarks/benchmark-descriptors/engine-location-bench/srccopy-internode-n0ton1-1mib.json diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/srccopy-intersock-n0ton4-1gib.json b/benchmarks/benchmark-descriptors/engine-location-bench/srccopy-intersock-n0ton4-1gib.json new file mode 100644 index 0000000..05c75fc --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/srccopy-intersock-n0ton4-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 4, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/cross-copy-bench/srccopy-intersock-n0ton4-1mib.json b/benchmarks/benchmark-descriptors/engine-location-bench/srccopy-intersock-n0ton4-1mib.json similarity index 100% rename from benchmarks/benchmark-descriptors/cross-copy-bench/srccopy-intersock-n0ton4-1mib.json rename to benchmarks/benchmark-descriptors/engine-location-bench/srccopy-intersock-n0ton4-1mib.json diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/srcoutsidercopy-intersock-n0to4-1gib.json b/benchmarks/benchmark-descriptors/engine-location-bench/srcoutsidercopy-intersock-n0to4-1gib.json new file mode 100644 index 0000000..a3109e1 --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/srcoutsidercopy-intersock-n0to4-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 4, + "nnode_src": 0, + "node": 3 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size":1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/srcoutsidercopy-intersock-n0to4-1mib.json b/benchmarks/benchmark-descriptors/engine-location-bench/srcoutsidercopy-intersock-n0to4-1mib.json new file mode 100644 index 0000000..3f42be2 --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/srcoutsidercopy-intersock-n0to4-1mib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 4, + "nnode_src": 0, + "node": 3 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/xcopy-internode-n0ton1-1gib.json b/benchmarks/benchmark-descriptors/engine-location-bench/xcopy-internode-n0ton1-1gib.json new file mode 100644 index 0000000..e8e5f85 --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/xcopy-internode-n0ton1-1gib.json @@ -0,0 +1,36 @@ +{ + "count": 2, + "list": [ + { + "affinity": { + "nnode_dst": 1, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 536870912 + } + }, + { + "affinity": { + "nnode_dst": 1, + "nnode_src": 0, + "node": 1 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 536870912 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/cross-copy-bench/xcopy-internode-n0ton1-1mib.json b/benchmarks/benchmark-descriptors/engine-location-bench/xcopy-internode-n0ton1-1mib.json similarity index 100% rename from benchmarks/benchmark-descriptors/cross-copy-bench/xcopy-internode-n0ton1-1mib.json rename to benchmarks/benchmark-descriptors/engine-location-bench/xcopy-internode-n0ton1-1mib.json diff --git a/benchmarks/benchmark-descriptors/engine-location-bench/xcopy-intersock-n0ton4-1gib.json b/benchmarks/benchmark-descriptors/engine-location-bench/xcopy-intersock-n0ton4-1gib.json new file mode 100644 index 0000000..44faa83 --- /dev/null +++ b/benchmarks/benchmark-descriptors/engine-location-bench/xcopy-intersock-n0ton4-1gib.json @@ -0,0 +1,36 @@ +{ + "count": 2, + "list": [ + { + "affinity": { + "nnode_dst": 4, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 536870912 + } + }, + { + "affinity": { + "nnode_dst": 4, + "nnode_src": 0, + "node": 4 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 1000, + "size": 536870912 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/cross-copy-bench/xcopy-intersock-n0ton4-1mib.json b/benchmarks/benchmark-descriptors/engine-location-bench/xcopy-intersock-n0ton4-1mib.json similarity index 100% rename from benchmarks/benchmark-descriptors/cross-copy-bench/xcopy-intersock-n0ton4-1mib.json rename to benchmarks/benchmark-descriptors/engine-location-bench/xcopy-intersock-n0ton4-1mib.json diff --git a/benchmarks/benchmark-plotters/plot-perf-enginelocation.py b/benchmarks/benchmark-plotters/plot-perf-enginelocation.py index bc90cb7..f78db1f 100644 --- a/benchmarks/benchmark-plotters/plot-perf-enginelocation.py +++ b/benchmarks/benchmark-plotters/plot-perf-enginelocation.py @@ -9,11 +9,11 @@ runid = "Run ID" x_label = "Copy Type" y_label = "Throughput in GiB/s" var_label = "Configuration" -types = ["intersock-n0ton4", "internode-n0ton1"] -types_nice = ["Inter-Socket Copy", "Inter-Node Copy"] +types = ["intersock-n0ton4-1mib", "internode-n0ton1-1mib", "intersock-n0ton4-1gib", "internode-n0ton1-1gib"] +types_nice = ["Inter-Socket Copy 1MiB", "Inter-Node Copy 1MiB", "Inter-Socket Copy 1GiB", "Inter-Node Copy 1GiB"] 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 and 1 Engine per WQ" +title = "Performance of Engine Location - Copy Operation on DDR with 1 Engine per WQ" index = [runid, x_label, var_label] data = [] @@ -42,9 +42,10 @@ def load_and_process_copy_json(file_path,method_label): time1 = data["list"][1]["report"]["time"] 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"])] + "total": max(time0["total"],time1["total"]), + "combined" : [max(x,y) for x,y in zip(time0["combined"], time1["combined"])], + "submission" : [max(x,y) for x,y in zip(time0["completion"], time1["completion"])], + "completion" : [max(x,y) for x,y in zip(time0["submission"], time1["submission"])] } else: @@ -60,7 +61,7 @@ def create_copy_dataset(file_paths, method_label): idx = 0 for file_path in file_paths: time = load_and_process_copy_json(file_path,method_label) - times.append(time["combined"]) + times.append(time["total"]) idx = idx + 1 throughput = [[calc_throughput(1024*1024,time) for time in t] for t in times] @@ -78,7 +79,7 @@ def main(): folder_path = "benchmark-results/" for method_label in copy_methods: - copy_file_paths = [os.path.join(folder_path, f"{method_label}-{type_label}-1mib-1e.json") for type_label in types] + copy_file_paths = [os.path.join(folder_path, f"{method_label}-{type_label}-1e.json") for type_label in types] create_copy_dataset(copy_file_paths, method_label) df = pd.DataFrame(data)