Browse Source

restructure mtsubmit benchmarks

master
Constantin Fürst 1 year ago
parent
commit
a548d9afe5
  1. 186
      benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t-1gib.json
  2. 186
      benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t-1mib.json
  3. 21
      benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t-1gib.json
  4. 21
      benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t-1mib.json
  5. 36
      benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t-1gib.json
  6. 36
      benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t-1mib.json
  7. 66
      benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t-1gib.json
  8. 66
      benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t-1mib.json
  9. 126
      benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t-1gib.json
  10. 126
      benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t-1mib.json
  11. 28
      benchmarks/benchmark-plotters/plot-cost-mtsubmit.py

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

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

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

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

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

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

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

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

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

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

28
benchmarks/benchmark-plotters/plot-cost-mtsubmit.py

@ -11,15 +11,15 @@ y_label = "Throughput in GiB/s LogScale"
var_label = "Thread Counts" var_label = "Thread Counts"
thread_counts = ["1t", "2t", "4t", "8t", "12t"] thread_counts = ["1t", "2t", "4t", "8t", "12t"]
thread_counts_nice = ["1 Thread", "2 Threads", "4 Threads", "8 Threads", "12 Threads"] 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" title = "Per-Thread Throughput - 120 Copy Operations split on Threads Intra-Node on DDR with Size 1 MiB"
index = [runid, x_label, var_label] index = [runid, x_label, var_label]
data = [] 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) size_gib = size_bytes / (1024 ** 3)
throughput_gibs = size_gib / time_seconds throughput_gibs = size_gib / time_seconds
return throughput_gibs return throughput_gibs
@ -31,16 +31,18 @@ def index_from_element(value,array):
return 0 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: with open(file_path, 'r') as file:
data = json.load(file) data = json.load(file)
count = data["count"] count = data["count"]
iterations = data["list"][0]["task"]["iterations"]
return { 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 # Function to plot the graph for the new benchmark
@ -52,10 +54,14 @@ def create_mtsubmit_dataset(file_paths, engine_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, engine_label)
times.append(time["combined"])
time = load_and_process_copy_json(file_path)
times.append(time["total"])
idx = idx + 1 idx = idx + 1
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] throughput = [[calc_throughput(1024*1024,time) for time in t] for t in times]
idx = 0 idx = 0
@ -78,7 +84,7 @@ def main():
df = pd.DataFrame(data) df = pd.DataFrame(data)
df.set_index(index, inplace=True) 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.title(title)
plt.savefig(os.path.join(folder_path, "plot-perf-mtsubmit.png"), bbox_inches='tight') plt.savefig(os.path.join(folder_path, "plot-perf-mtsubmit.png"), bbox_inches='tight')

Loading…
Cancel
Save