Browse Source

restructure the engine location bench, correct and update the plotter to use new total time

master
Constantin Fürst 1 year ago
parent
commit
b7cae18b6d
  1. 21
      benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-internode-n0ton1-1gib.json
  2. 0
      benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-internode-n0ton1-1mib.json
  3. 21
      benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-intersock-n0ton4-1gib.json
  4. 0
      benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-intersock-n0ton4-1mib.json
  5. 21
      benchmarks/benchmark-descriptors/engine-location-bench/dstoutsidercopy-intersock-n0to4-1gib.json
  6. 21
      benchmarks/benchmark-descriptors/engine-location-bench/dstoutsidercopy-intersock-n0to4-1mib.json
  7. 21
      benchmarks/benchmark-descriptors/engine-location-bench/outsidercopy-internode-n0ton1-1gib.json
  8. 21
      benchmarks/benchmark-descriptors/engine-location-bench/outsidercopy-internode-n0ton1-1mib.json
  9. 21
      benchmarks/benchmark-descriptors/engine-location-bench/srccopy-internode-n0ton1-1gib.json
  10. 0
      benchmarks/benchmark-descriptors/engine-location-bench/srccopy-internode-n0ton1-1mib.json
  11. 21
      benchmarks/benchmark-descriptors/engine-location-bench/srccopy-intersock-n0ton4-1gib.json
  12. 0
      benchmarks/benchmark-descriptors/engine-location-bench/srccopy-intersock-n0ton4-1mib.json
  13. 21
      benchmarks/benchmark-descriptors/engine-location-bench/srcoutsidercopy-intersock-n0to4-1gib.json
  14. 21
      benchmarks/benchmark-descriptors/engine-location-bench/srcoutsidercopy-intersock-n0to4-1mib.json
  15. 36
      benchmarks/benchmark-descriptors/engine-location-bench/xcopy-internode-n0ton1-1gib.json
  16. 0
      benchmarks/benchmark-descriptors/engine-location-bench/xcopy-internode-n0ton1-1mib.json
  17. 36
      benchmarks/benchmark-descriptors/engine-location-bench/xcopy-intersock-n0ton4-1gib.json
  18. 0
      benchmarks/benchmark-descriptors/engine-location-bench/xcopy-intersock-n0ton4-1mib.json
  19. 17
      benchmarks/benchmark-plotters/plot-perf-enginelocation.py

21
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"
}

0
benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-internode-n0ton1-1mib.json → benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-internode-n0ton1-1mib.json

21
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"
}

0
benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-intersock-n0ton4-1mib.json → benchmarks/benchmark-descriptors/engine-location-bench/dstcopy-intersock-n0ton4-1mib.json

21
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"
}

21
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"
}

21
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"
}

21
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"
}

21
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"
}

0
benchmarks/benchmark-descriptors/cross-copy-bench/srccopy-internode-n0ton1-1mib.json → benchmarks/benchmark-descriptors/engine-location-bench/srccopy-internode-n0ton1-1mib.json

21
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"
}

0
benchmarks/benchmark-descriptors/cross-copy-bench/srccopy-intersock-n0ton4-1mib.json → benchmarks/benchmark-descriptors/engine-location-bench/srccopy-intersock-n0ton4-1mib.json

21
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"
}

21
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"
}

36
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"
}

0
benchmarks/benchmark-descriptors/cross-copy-bench/xcopy-internode-n0ton1-1mib.json → benchmarks/benchmark-descriptors/engine-location-bench/xcopy-internode-n0ton1-1mib.json

36
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"
}

0
benchmarks/benchmark-descriptors/cross-copy-bench/xcopy-intersock-n0ton4-1mib.json → benchmarks/benchmark-descriptors/engine-location-bench/xcopy-intersock-n0ton4-1mib.json

17
benchmarks/benchmark-plotters/plot-perf-enginelocation.py

@ -9,11 +9,11 @@ runid = "Run ID"
x_label = "Copy Type" x_label = "Copy Type"
y_label = "Throughput in GiB/s" y_label = "Throughput in GiB/s"
var_label = "Configuration" 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 = ["dstcopy", "srccopy", "xcopy"]
copy_methods_nice = [ "Engine on DST-Node", "Engine on SRC-Node", "Cross-Copy / Both Engines" ] 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] index = [runid, x_label, var_label]
data = [] data = []
@ -42,9 +42,10 @@ def load_and_process_copy_json(file_path,method_label):
time1 = data["list"][1]["report"]["time"] time1 = data["list"][1]["report"]["time"]
return { 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: else:
@ -60,7 +61,7 @@ def create_copy_dataset(file_paths, method_label):
idx = 0 idx = 0
for file_path in file_paths: for file_path in file_paths:
time = load_and_process_copy_json(file_path,method_label) time = load_and_process_copy_json(file_path,method_label)
times.append(time["combined"])
times.append(time["total"])
idx = idx + 1 idx = idx + 1
throughput = [[calc_throughput(1024*1024,time) for time in t] for t in times] throughput = [[calc_throughput(1024*1024,time) for time in t] for t in times]
@ -78,7 +79,7 @@ def main():
folder_path = "benchmark-results/" folder_path = "benchmark-results/"
for method_label in copy_methods: 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) create_copy_dataset(copy_file_paths, method_label)
df = pd.DataFrame(data) df = pd.DataFrame(data)

Loading…
Cancel
Save