From d3a09181ce6ebeb0fc90aefe8d4ef49f19dbf9cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Constantin=20F=C3=BCrst?= Date: Tue, 5 Dec 2023 14:14:46 +0100 Subject: [PATCH] move the existing results into a new folder and modify them to be only benchmark descriptors --- .../benchmarker.sh} | 10 +- .../dstcopy-internode-n0ton1-1mib.json | 21 ++ .../dstcopy-intersock-n0ton4-1mib.json | 21 ++ .../srccopy-internode-n0ton1-1mib.json | 21 ++ .../srccopy-intersock-n0ton4-1mib.json | 21 ++ .../xcopy-internode-n0ton1-1mib.json | 36 ++ .../xcopy-intersock-n0ton4-1mib.json | 36 ++ .../mtsubmit-bench/mtsubmit-12t.json | 186 ++++++++++ .../mtsubmit-bench/mtsubmit-1t.json | 21 ++ .../mtsubmit-bench/mtsubmit-2t.json | 36 ++ .../mtsubmit-bench/mtsubmit-4t.json | 66 ++++ .../mtsubmit-bench/mtsubmit-8t.json | 126 +++++++ .../peak-perf-bench/task-description.json | 0 .../submit-bench/submit-bs10-1gib.json | 21 ++ .../submit-bench/submit-bs10-1kib.json | 21 ++ .../submit-bench/submit-bs10-1mib.json | 21 ++ .../submit-bench/submit-bs10-4kib.json | 21 ++ .../submit-bench/submit-bs50-1gib.json | 21 ++ .../submit-bench/submit-bs50-1kib.json | 21 ++ .../submit-bench/submit-bs50-1mib.json | 21 ++ .../submit-bench/submit-bs50-4kib.json | 21 ++ .../submit-bench/submit-ms10-1gib.json | 21 ++ .../submit-bench/submit-ms10-1kib.json | 21 ++ .../submit-bench/submit-ms10-1mib.json | 21 ++ .../submit-bench/submit-ms10-4kib.json | 21 ++ .../submit-bench/submit-ms50-1gib.json | 21 ++ .../submit-bench/submit-ms50-1kib.json | 21 ++ .../submit-bench/submit-ms50-1mib.json | 21 ++ .../submit-bench/submit-ms50-4kib.json | 21 ++ .../submit-bench/submit-ssaw-1gib.json | 21 ++ .../submit-bench/submit-ssaw-1kib.json | 21 ++ .../submit-bench/submit-ssaw-1mib.json | 21 ++ .../submit-bench/submit-ssaw-4kib.json | 21 ++ .../dstcopy-internode-n0ton1-1mib-4e.json | 34 -- .../dstcopy-intersock-n0ton4-1mib-4e.json | 34 -- .../plot-perf-enginelocation.png | Bin 33246 -> 0 bytes .../srccopy-internode-n0ton1-1mib-4e.json | 34 -- .../srccopy-intersock-n0ton4-1mib-4e.json | 34 -- .../cross-copy-bench/task-description.json | 21 -- .../xcopy-internode-n0ton1-1mib-4e.json | 62 ---- .../xcopy-intersock-n0ton4-1mib-4e.json | 62 ---- .../mtsubmit-bench/mtsubmit-12t-1e.json | 342 ------------------ .../mtsubmit-bench/mtsubmit-12t-4e.json | 342 ------------------ .../mtsubmit-bench/mtsubmit-1t-1e.json | 34 -- .../mtsubmit-bench/mtsubmit-1t-4e.json | 34 -- .../mtsubmit-bench/mtsubmit-2t-1e.json | 62 ---- .../mtsubmit-bench/mtsubmit-2t-4e.json | 62 ---- .../mtsubmit-bench/mtsubmit-4t-1e.json | 118 ------ .../mtsubmit-bench/mtsubmit-4t-4e.json | 118 ------ .../mtsubmit-bench/mtsubmit-8t-1e.json | 230 ------------ .../mtsubmit-bench/mtsubmit-8t-4e.json | 230 ------------ .../mtsubmit-bench/plot-cost-mtsubmit.png | Bin 32636 -> 0 bytes .../mtsubmit-bench/task-description.json | 186 ---------- .../submit-bench/plot-perf-submitmethod.png | Bin 35759 -> 0 bytes .../submit-bench/submit-bs10-1gib-1e.json | 34 -- .../submit-bench/submit-bs10-1gib-4e.json | 34 -- .../submit-bench/submit-bs10-1kib-1e.json | 34 -- .../submit-bench/submit-bs10-1kib-4e.json | 34 -- .../submit-bench/submit-bs10-1mib-1e.json | 34 -- .../submit-bench/submit-bs10-1mib-4e.json | 34 -- .../submit-bench/submit-bs10-4kib-1e.json | 34 -- .../submit-bench/submit-bs10-4kib-4e.json | 34 -- .../submit-bench/submit-bs50-1gib-1e.json | 34 -- .../submit-bench/submit-bs50-1gib-4e.json | 34 -- .../submit-bench/submit-bs50-1kib-1e.json | 34 -- .../submit-bench/submit-bs50-1kib-4e.json | 34 -- .../submit-bench/submit-bs50-1mib-1e.json | 34 -- .../submit-bench/submit-bs50-1mib-4e.json | 34 -- .../submit-bench/submit-bs50-4kib-1e.json | 34 -- .../submit-bench/submit-bs50-4kib-4e.json | 34 -- .../submit-bench/submit-ms10-1gib-1e.json | 34 -- .../submit-bench/submit-ms10-1gib-4e.json | 34 -- .../submit-bench/submit-ms10-1kib-1e.json | 34 -- .../submit-bench/submit-ms10-1kib-4e.json | 34 -- .../submit-bench/submit-ms10-1mib-1e.json | 34 -- .../submit-bench/submit-ms10-1mib-4e.json | 34 -- .../submit-bench/submit-ms10-4kib-1e.json | 34 -- .../submit-bench/submit-ms10-4kib-4e.json | 34 -- .../submit-bench/submit-ms50-1gib-1e.json | 34 -- .../submit-bench/submit-ms50-1gib-4e.json | 34 -- .../submit-bench/submit-ms50-1kib-1e.json | 34 -- .../submit-bench/submit-ms50-1kib-4e.json | 34 -- .../submit-bench/submit-ms50-1mib-1e.json | 34 -- .../submit-bench/submit-ms50-1mib-4e.json | 34 -- .../submit-bench/submit-ms50-4kib-1e.json | 34 -- .../submit-bench/submit-ms50-4kib-4e.json | 34 -- .../submit-bench/submit-ssaw-1gib-1e.json | 34 -- .../submit-bench/submit-ssaw-1gib-4e.json | 34 -- .../submit-bench/submit-ssaw-1kib-1e.json | 34 -- .../submit-bench/submit-ssaw-1kib-4e.json | 34 -- .../submit-bench/submit-ssaw-1mib-1e.json | 34 -- .../submit-bench/submit-ssaw-1mib-4e.json | 34 -- .../submit-bench/submit-ssaw-4kib-1e.json | 34 -- .../submit-bench/submit-ssaw-4kib-4e.json | 34 -- .../submit-bench/task-description.json | 21 -- 95 files changed, 1018 insertions(+), 3423 deletions(-) rename benchmarks/{run-all-benchmarks-in-folder.sh => benchmark-descriptors/benchmarker.sh} (63%) create mode 100644 benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-internode-n0ton1-1mib.json create mode 100644 benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-intersock-n0ton4-1mib.json create mode 100644 benchmarks/benchmark-descriptors/cross-copy-bench/srccopy-internode-n0ton1-1mib.json create mode 100644 benchmarks/benchmark-descriptors/cross-copy-bench/srccopy-intersock-n0ton4-1mib.json create mode 100644 benchmarks/benchmark-descriptors/cross-copy-bench/xcopy-internode-n0ton1-1mib.json create mode 100644 benchmarks/benchmark-descriptors/cross-copy-bench/xcopy-intersock-n0ton4-1mib.json create mode 100644 benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t.json create mode 100644 benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t.json create mode 100644 benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t.json create mode 100644 benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t.json create mode 100644 benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t.json rename benchmarks/{benchmark-results => benchmark-descriptors}/peak-perf-bench/task-description.json (100%) create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1gib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1kib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1mib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-bs10-4kib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1gib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1kib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1mib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-bs50-4kib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1gib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1kib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1mib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ms10-4kib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1gib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1kib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1mib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ms50-4kib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1gib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1kib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1mib.json create mode 100644 benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-4kib.json delete mode 100644 benchmarks/benchmark-results/cross-copy-bench/dstcopy-internode-n0ton1-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/cross-copy-bench/dstcopy-intersock-n0ton4-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/cross-copy-bench/plot-perf-enginelocation.png delete mode 100644 benchmarks/benchmark-results/cross-copy-bench/srccopy-internode-n0ton1-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/cross-copy-bench/srccopy-intersock-n0ton4-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/cross-copy-bench/task-description.json delete mode 100644 benchmarks/benchmark-results/cross-copy-bench/xcopy-internode-n0ton1-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/cross-copy-bench/xcopy-intersock-n0ton4-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/mtsubmit-12t-1e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/mtsubmit-12t-4e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/mtsubmit-1t-1e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/mtsubmit-1t-4e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/mtsubmit-2t-1e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/mtsubmit-2t-4e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/mtsubmit-4t-1e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/mtsubmit-4t-4e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/mtsubmit-8t-1e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/mtsubmit-8t-4e.json delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/plot-cost-mtsubmit.png delete mode 100644 benchmarks/benchmark-results/mtsubmit-bench/task-description.json delete mode 100644 benchmarks/benchmark-results/submit-bench/plot-perf-submitmethod.png delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs10-1gib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs10-1gib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs10-1kib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs10-1kib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs10-1mib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs10-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs10-4kib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs10-4kib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs50-1gib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs50-1gib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs50-1kib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs50-1kib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs50-1mib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs50-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs50-4kib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-bs50-4kib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms10-1gib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms10-1gib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms10-1kib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms10-1kib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms10-1mib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms10-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms10-4kib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms10-4kib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms50-1gib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms50-1gib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms50-1kib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms50-1kib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms50-1mib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms50-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms50-4kib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ms50-4kib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ssaw-1gib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ssaw-1gib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ssaw-1kib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ssaw-1kib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ssaw-1mib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ssaw-1mib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ssaw-4kib-1e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/submit-ssaw-4kib-4e.json delete mode 100644 benchmarks/benchmark-results/submit-bench/task-description.json diff --git a/benchmarks/run-all-benchmarks-in-folder.sh b/benchmarks/benchmark-descriptors/benchmarker.sh similarity index 63% rename from benchmarks/run-all-benchmarks-in-folder.sh rename to benchmarks/benchmark-descriptors/benchmarker.sh index bf4fffb..2f8ef72 100644 --- a/benchmarks/run-all-benchmarks-in-folder.sh +++ b/benchmarks/benchmark-descriptors/benchmarker.sh @@ -1,14 +1,16 @@ #!/bin/bash # Check if the correct number of arguments is provided -if [ "$#" -ne 2 ]; then - echo "Usage: $0 " +if [ "$#" -ne 3 ]; then + echo "Usage: $0 " exit 1 fi # Assign arguments to variables program_location="$1" json_directory="$2" +output_dir="$3" +file_extender="$4" # Check if the specified directory exists if [ ! -d "$json_directory" ]; then @@ -21,6 +23,8 @@ for json_file in "$json_directory"/*.json; do # Check if there are matching files if [ -e "$json_file" ]; then # Execute the program with the JSON file as parameters - "$program_location" "$json_file" "$json_file" + name="${filename%.*}" + echo "running test ${name} ..." + "$program_location" "$json_file" "${output-directory}/${name}${file_extender}.json" fi done diff --git a/benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-internode-n0ton1-1mib.json b/benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-internode-n0ton1-1mib.json new file mode 100644 index 0000000..551341f --- /dev/null +++ b/benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-internode-n0ton1-1mib.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": 100, + "size": 1048576 + } + } + ], + "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/cross-copy-bench/dstcopy-intersock-n0ton4-1mib.json new file mode 100644 index 0000000..22a8e7b --- /dev/null +++ b/benchmarks/benchmark-descriptors/cross-copy-bench/dstcopy-intersock-n0ton4-1mib.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": 100, + "size": 1048576 + } + } + ], + "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/cross-copy-bench/srccopy-internode-n0ton1-1mib.json new file mode 100644 index 0000000..b79b737 --- /dev/null +++ b/benchmarks/benchmark-descriptors/cross-copy-bench/srccopy-internode-n0ton1-1mib.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": 100, + "size": 1048576 + } + } + ], + "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/cross-copy-bench/srccopy-intersock-n0ton4-1mib.json new file mode 100644 index 0000000..457f92d --- /dev/null +++ b/benchmarks/benchmark-descriptors/cross-copy-bench/srccopy-intersock-n0ton4-1mib.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": 100, + "size": 1048576 + } + } + ], + "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/cross-copy-bench/xcopy-internode-n0ton1-1mib.json new file mode 100644 index 0000000..c0206dc --- /dev/null +++ b/benchmarks/benchmark-descriptors/cross-copy-bench/xcopy-internode-n0ton1-1mib.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": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 1, + "nnode_src": 0, + "node": 1 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "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/cross-copy-bench/xcopy-intersock-n0ton4-1mib.json new file mode 100644 index 0000000..4bab223 --- /dev/null +++ b/benchmarks/benchmark-descriptors/cross-copy-bench/xcopy-intersock-n0ton4-1mib.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": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 4, + "nnode_src": 0, + "node": 4 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t.json new file mode 100644 index 0000000..f35fe5b --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-12t.json @@ -0,0 +1,186 @@ +{ + "count": 12, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t.json new file mode 100644 index 0000000..d2d44ce --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-1t.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t.json new file mode 100644 index 0000000..a98673f --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-2t.json @@ -0,0 +1,36 @@ +{ + "count": 2, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t.json new file mode 100644 index 0000000..2cf373a --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-4t.json @@ -0,0 +1,66 @@ +{ + "count": 4, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t.json b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t.json new file mode 100644 index 0000000..185c4e3 --- /dev/null +++ b/benchmarks/benchmark-descriptors/mtsubmit-bench/mtsubmit-8t.json @@ -0,0 +1,126 @@ +{ + "count": 8, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + }, + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-results/peak-perf-bench/task-description.json b/benchmarks/benchmark-descriptors/peak-perf-bench/task-description.json similarity index 100% rename from benchmarks/benchmark-results/peak-perf-bench/task-description.json rename to benchmarks/benchmark-descriptors/peak-perf-bench/task-description.json diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1gib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1gib.json new file mode 100644 index 0000000..69c6c0b --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": true + }, + "iterations": 10, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1kib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1kib.json new file mode 100644 index 0000000..337511d --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1kib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": true + }, + "iterations": 100, + "size": 1024 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1mib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1mib.json new file mode 100644 index 0000000..a60216f --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-1mib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": true + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-4kib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-4kib.json new file mode 100644 index 0000000..e5b08bd --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-bs10-4kib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": true + }, + "iterations": 100, + "size": 4096 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1gib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1gib.json new file mode 100644 index 0000000..fa2baa7 --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 50, + "batch_submit": true + }, + "iterations": 10, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1kib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1kib.json new file mode 100644 index 0000000..7601d09 --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1kib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 50, + "batch_submit": true + }, + "iterations": 100, + "size": 1024 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1mib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1mib.json new file mode 100644 index 0000000..d16e47e --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-1mib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 50, + "batch_submit": true + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-4kib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-4kib.json new file mode 100644 index 0000000..73db459 --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-bs50-4kib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 50, + "batch_submit": true + }, + "iterations": 100, + "size": 4096 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1gib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1gib.json new file mode 100644 index 0000000..e1f49ac --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "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/submit-bench/submit-ms10-1kib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1kib.json new file mode 100644 index 0000000..80804f4 --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1kib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 100, + "size": 1024 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1mib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1mib.json new file mode 100644 index 0000000..f9aa752 --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-1mib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-4kib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-4kib.json new file mode 100644 index 0000000..e3bae4a --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ms10-4kib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 10, + "batch_submit": false + }, + "iterations": 100, + "size": 4096 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1gib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1gib.json new file mode 100644 index 0000000..6b2950e --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 50, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1kib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1kib.json new file mode 100644 index 0000000..e7252c8 --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1kib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 50, + "batch_submit": false + }, + "iterations": 100, + "size": 1024 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1mib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1mib.json new file mode 100644 index 0000000..b2cef86 --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-1mib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 50, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-4kib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-4kib.json new file mode 100644 index 0000000..9c9e9ab --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ms50-4kib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 50, + "batch_submit": false + }, + "iterations": 100, + "size": 4096 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1gib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1gib.json new file mode 100644 index 0000000..778ffc1 --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1gib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 10, + "size": 1073741824 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1kib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1kib.json new file mode 100644 index 0000000..706ab2f --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1kib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1024 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1mib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1mib.json new file mode 100644 index 0000000..d2d44ce --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-1mib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 1048576 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-4kib.json b/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-4kib.json new file mode 100644 index 0000000..21d0554 --- /dev/null +++ b/benchmarks/benchmark-descriptors/submit-bench/submit-ssaw-4kib.json @@ -0,0 +1,21 @@ +{ + "count": 1, + "list": [ + { + "affinity": { + "nnode_dst": 0, + "nnode_src": 0, + "node": 0 + }, + "task": { + "batching": { + "batch_size": 0, + "batch_submit": false + }, + "iterations": 100, + "size": 4096 + } + } + ], + "path": "hw" +} \ No newline at end of file diff --git a/benchmarks/benchmark-results/cross-copy-bench/dstcopy-internode-n0ton1-1mib-4e.json b/benchmarks/benchmark-results/cross-copy-bench/dstcopy-internode-n0ton1-1mib-4e.json deleted file mode 100644 index 88779f6..0000000 --- a/benchmarks/benchmark-results/cross-copy-bench/dstcopy-internode-n0ton1-1mib-4e.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "count": 1, - "list": [ - { - "affinity": { - "nnode_dst": 1, - "nnode_src": 0, - "node": 1 - }, - "report": { - "iterations_completed": 10000, - "status": "ok", - "time": { - "combined_avg": 55.7704, - "combined_stdev": 24.298524314039348, - "completion_avg": 55.2905, - "completion_stdev": 24.02476034740095, - "submission_avg": 0.0647, - "submission_stdev": 1.9673621705222173, - "unit": "microseconds" - } - }, - "task": { - "batching": { - "batch_size": 0, - "batch_submit": false - }, - "iterations": 10000, - "size": 1048576 - } - } - ], - "path": "hw" -} \ No newline at end of file diff --git a/benchmarks/benchmark-results/cross-copy-bench/dstcopy-intersock-n0ton4-1mib-4e.json b/benchmarks/benchmark-results/cross-copy-bench/dstcopy-intersock-n0ton4-1mib-4e.json deleted file mode 100644 index 810488a..0000000 --- a/benchmarks/benchmark-results/cross-copy-bench/dstcopy-intersock-n0ton4-1mib-4e.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "count": 1, - "list": [ - { - "affinity": { - "nnode_dst": 4, - "nnode_src": 0, - "node": 4 - }, - "report": { - "iterations_completed": 10000, - "status": "ok", - "time": { - "combined_avg": 70.134, - "combined_stdev": 16.262282865573315, - "completion_avg": 69.6715, - "completion_stdev": 15.949482366209697, - "submission_avg": 0.0601, - "submission_stdev": 1.8249076661575903, - "unit": "microseconds" - } - }, - "task": { - "batching": { - "batch_size": 0, - "batch_submit": false - }, - "iterations": 10000, - "size": 1048576 - } - } - ], - "path": "hw" -} \ No newline at end of file diff --git a/benchmarks/benchmark-results/cross-copy-bench/plot-perf-enginelocation.png b/benchmarks/benchmark-results/cross-copy-bench/plot-perf-enginelocation.png deleted file mode 100644 index 874cfd2c9ba19505225fea0afcaa06419d451bfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33246 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