From 1615e47681f276b2cafcaf02d17a44cf3d5a74a5 Mon Sep 17 00:00:00 2001
From: Szczepaniak-M
Date: Wed, 6 Nov 2024 01:30:40 +0100
Subject: [PATCH] Add example benchmarks
(cherry picked from commit 4b6680e1046f24bb6f67fa016f7b9263bde92978)
---
README.md | 1 +
example-benchmarks/README.md | 14 +
example-benchmarks/cache_latency/ansible.yml | 28 +
.../cache_latency/configuration.yml | 64 ++
.../cache_latency/format_output.py | 34 +
example-benchmarks/cache_latency/latency.cpp | 44 ++
.../cache_latency/run_latency.sh | 67 ++
.../memory_bandwidth/ansible.yml | 28 +
.../memory_bandwidth/configuration.yml | 101 +++
.../memory_bandwidth/format_output.py | 38 +
example-benchmarks/memory_bandwidth/membw.cpp | 78 ++
.../memory_bandwidth/run_membw.sh | 15 +
.../network_bandwidth/ansible.yml | 15 +
.../network_bandwidth/configuration.yml | 64 ++
.../network_bandwidth/format_output.py | 62 ++
.../network_bandwidth/run_bandwidth.sh | 7 +
.../network_latency/ansible.yml | 61 ++
.../network_latency/configuration.yml | 56 ++
.../network_latency/format_output.py | 48 ++
.../network_latency/run_latency_bench.sh | 4 +
.../spec_cpu_all_cores/ansible.yml | 80 ++
.../spec_cpu_all_cores/config_graviton.cfg | 698 ++++++++++++++++++
.../spec_cpu_all_cores/config_x86.cfg | 653 ++++++++++++++++
.../spec_cpu_all_cores/configuration.yml | 300 ++++++++
.../spec_cpu_all_cores/format_output.py | 59 ++
.../spec_cpu_all_cores/run_spec.sh | 12 +
.../spec_cpu_half_cores/ansible.yml | 80 ++
.../spec_cpu_half_cores/config_graviton.cfg | 698 ++++++++++++++++++
.../spec_cpu_half_cores/config_x86.cfg | 653 ++++++++++++++++
.../spec_cpu_half_cores/configuration.yml | 300 ++++++++
.../spec_cpu_half_cores/format_output.py | 59 ++
.../spec_cpu_half_cores/run_spec.sh | 12 +
.../spec_cpu_single_core/ansible.yml | 80 ++
.../spec_cpu_single_core/config_graviton.cfg | 698 ++++++++++++++++++
.../spec_cpu_single_core/config_x86.cfg | 653 ++++++++++++++++
.../spec_cpu_single_core/configuration.yml | 302 ++++++++
.../spec_cpu_single_core/format_output.py | 59 ++
.../spec_cpu_single_core/run_spec.sh | 11 +
example-benchmarks/ssd_bandwidth/ansible.yml | 15 +
.../ssd_bandwidth/configuration.yml | 47 ++
.../ssd_bandwidth/format_output.py | 27 +
example-benchmarks/ssd_bandwidth/run_fio.sh | 41 +
42 files changed, 6366 insertions(+)
create mode 100644 example-benchmarks/README.md
create mode 100644 example-benchmarks/cache_latency/ansible.yml
create mode 100644 example-benchmarks/cache_latency/configuration.yml
create mode 100644 example-benchmarks/cache_latency/format_output.py
create mode 100755 example-benchmarks/cache_latency/latency.cpp
create mode 100755 example-benchmarks/cache_latency/run_latency.sh
create mode 100644 example-benchmarks/memory_bandwidth/ansible.yml
create mode 100644 example-benchmarks/memory_bandwidth/configuration.yml
create mode 100644 example-benchmarks/memory_bandwidth/format_output.py
create mode 100755 example-benchmarks/memory_bandwidth/membw.cpp
create mode 100755 example-benchmarks/memory_bandwidth/run_membw.sh
create mode 100644 example-benchmarks/network_bandwidth/ansible.yml
create mode 100644 example-benchmarks/network_bandwidth/configuration.yml
create mode 100644 example-benchmarks/network_bandwidth/format_output.py
create mode 100644 example-benchmarks/network_bandwidth/run_bandwidth.sh
create mode 100644 example-benchmarks/network_latency/ansible.yml
create mode 100644 example-benchmarks/network_latency/configuration.yml
create mode 100644 example-benchmarks/network_latency/format_output.py
create mode 100644 example-benchmarks/network_latency/run_latency_bench.sh
create mode 100644 example-benchmarks/spec_cpu_all_cores/ansible.yml
create mode 100644 example-benchmarks/spec_cpu_all_cores/config_graviton.cfg
create mode 100644 example-benchmarks/spec_cpu_all_cores/config_x86.cfg
create mode 100644 example-benchmarks/spec_cpu_all_cores/configuration.yml
create mode 100644 example-benchmarks/spec_cpu_all_cores/format_output.py
create mode 100644 example-benchmarks/spec_cpu_all_cores/run_spec.sh
create mode 100644 example-benchmarks/spec_cpu_half_cores/ansible.yml
create mode 100644 example-benchmarks/spec_cpu_half_cores/config_graviton.cfg
create mode 100644 example-benchmarks/spec_cpu_half_cores/config_x86.cfg
create mode 100644 example-benchmarks/spec_cpu_half_cores/configuration.yml
create mode 100644 example-benchmarks/spec_cpu_half_cores/format_output.py
create mode 100644 example-benchmarks/spec_cpu_half_cores/run_spec.sh
create mode 100644 example-benchmarks/spec_cpu_single_core/ansible.yml
create mode 100644 example-benchmarks/spec_cpu_single_core/config_graviton.cfg
create mode 100644 example-benchmarks/spec_cpu_single_core/config_x86.cfg
create mode 100644 example-benchmarks/spec_cpu_single_core/configuration.yml
create mode 100644 example-benchmarks/spec_cpu_single_core/format_output.py
create mode 100644 example-benchmarks/spec_cpu_single_core/run_spec.sh
create mode 100644 example-benchmarks/ssd_bandwidth/ansible.yml
create mode 100644 example-benchmarks/ssd_bandwidth/configuration.yml
create mode 100644 example-benchmarks/ssd_bandwidth/format_output.py
create mode 100644 example-benchmarks/ssd_bandwidth/run_fio.sh
diff --git a/README.md b/README.md
index 8eb6ff4..bf317fd 100644
--- a/README.md
+++ b/README.md
@@ -11,6 +11,7 @@ The repository consists from 4 main parts:
- `benchmark-service` - Spring Boot service responsible for excecuting benchmarks
- `webpage-backend` - Spring Boot service responsible for exposing data about benchmark results
- `webpage-frontend` - Angular application responsible for presenting results to the user
+- `example-benchmarks` - example benchmarks with their configuration files that can be executed by the service after moving them to separate repository
## Architecture overview
diff --git a/example-benchmarks/README.md b/example-benchmarks/README.md
new file mode 100644
index 0000000..e62b57e
--- /dev/null
+++ b/example-benchmarks/README.md
@@ -0,0 +1,14 @@
+# TUManyBenchmarks - Benchmark repository
+## About
+The repository store benchmarks executed by TUManyBenchmarks service.
+Each directory contains separate benchmark, which can be reproduced locally.
+
+## How to add new benchmark?
+1. Fork a repository
+2. Add benchmark in a new directory
+3. Add Ansible playbook to configure benchmark environment
+4. Configure benchmark execution in the `configuration.yml` file
+5. Create merge request
+6. The GitHub action pipeline validates the `configuration.yml` file
+7. The repository maintainer accepts new benchmark
+8. Benchmark is automatically and regularly executed
\ No newline at end of file
diff --git a/example-benchmarks/cache_latency/ansible.yml b/example-benchmarks/cache_latency/ansible.yml
new file mode 100644
index 0000000..3759432
--- /dev/null
+++ b/example-benchmarks/cache_latency/ansible.yml
@@ -0,0 +1,28 @@
+---
+- name: Install benchmark and dependencies
+ hosts: localhost
+ tasks:
+ - name: Update apt cache
+ become: yes
+ apt:
+ update_cache: yes
+
+ - name: Install dependencies
+ become: yes
+ apt:
+ name:
+ - bc
+ - g++
+ - numactl
+ state: present
+
+ - name: Install dependencies
+ command: g++ latency.cpp -o latency -O3 -march=native
+ args:
+ chdir: /home/ubuntu/cache_latency
+
+
+ - name: Make run_latency.sh executable
+ file:
+ path: /home/ubuntu/cache_latency/run_latency.sh
+ mode: '0755'
diff --git a/example-benchmarks/cache_latency/configuration.yml b/example-benchmarks/cache_latency/configuration.yml
new file mode 100644
index 0000000..e505136
--- /dev/null
+++ b/example-benchmarks/cache_latency/configuration.yml
@@ -0,0 +1,64 @@
+configuration:
+ name: "Cache latency"
+ description: "Benchmark analyzing the basic properties of the CPU cache"
+ directory: cache_latency
+ cron: "0 * * * *"
+ instance-number: 1
+ instance-types:
+ # Graviton
+ - c6g.medium
+ - c6g.2xlarge
+ - c6g.metal
+
+ - c7g.metal
+ - c7g.2xlarge
+ - c7g.medium
+
+ - c8g.medium
+ - c8g.2xlarge
+ - c8g.metal-24xl
+
+ # Intel
+ - c5.metal
+ - c5.2xlarge
+ - c5.large
+
+ - c6i.metal
+ - c6i.2xlarge
+ - c6i.large
+
+ - c7i.metal-24xl
+ - c7i.2xlarge
+ - c7i.large
+
+ # AMD
+ - m5a.24xlarge
+ - m5a.2xlarge
+ - m5a.large
+
+ - c5a.24xlarge
+ - c5a.2xlarge
+ - c5a.large
+
+ - c6a.metal
+ - c6a.2xlarge
+ - c6a.large
+
+ - c7a.metal-48xl
+ - c7a.2xlarge
+ - c7a.large
+
+nodes:
+ - node-id: 0
+ ansible-configuration: ansible.yml
+ benchmark-command: ./run_latency.sh
+ output-command: python3 format_output.py results.csv
+plots:
+ - type: line
+ title: Cache latency for different input sizes
+ xaxis: Input size [10^x MB]
+ yaxis: Latency [ns]
+ series:
+ - x: input_size_log10
+ y: latency
+ legend: Latency
diff --git a/example-benchmarks/cache_latency/format_output.py b/example-benchmarks/cache_latency/format_output.py
new file mode 100644
index 0000000..c729736
--- /dev/null
+++ b/example-benchmarks/cache_latency/format_output.py
@@ -0,0 +1,34 @@
+import json
+import sys
+import math
+from collections import defaultdict
+
+
+def parse_file_to_json(file_path):
+ with open(file_path, 'r') as file:
+ lines = file.readlines()
+
+ results = defaultdict(list)
+ data = {
+ "input_size_log10": [],
+ "latency": [],
+ }
+ for i in range(0, len(lines)):
+ size, time = lines[i].split(",")
+ results[size].append(float(time))
+ for key, values in results.items():
+ size = math.log10(int(key) / 1024 / 1024)
+ time = sum(values) / len(values)
+ data["input_size_log10"].append(size)
+ data["latency"].append(time)
+
+ json_output = json.dumps(data, indent=4)
+ print(json_output)
+
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python format_output.py ")
+ else:
+ file_path = sys.argv[1]
+ parse_file_to_json(file_path)
diff --git a/example-benchmarks/cache_latency/latency.cpp b/example-benchmarks/cache_latency/latency.cpp
new file mode 100755
index 0000000..e46e5ad
--- /dev/null
+++ b/example-benchmarks/cache_latency/latency.cpp
@@ -0,0 +1,44 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+using namespace std;
+
+static inline double gettime(void) {
+ struct timeval now_tv;
+ gettimeofday (&now_tv, NULL);
+ return ((double)now_tv.tv_sec) + ((double)now_tv.tv_usec)/1000000.0;
+}
+
+int main(int argc, char** argv) {
+ uint64_t n = atol(argv[1]) / 8;
+ unsigned rep = atoi(argv[2]);
+ if (!n)
+ n = 16;
+
+ uint64_t* v2 = new uint64_t[n];
+ for (uint64_t i=0; i> results.csv
+done
diff --git a/example-benchmarks/memory_bandwidth/ansible.yml b/example-benchmarks/memory_bandwidth/ansible.yml
new file mode 100644
index 0000000..c224c6a
--- /dev/null
+++ b/example-benchmarks/memory_bandwidth/ansible.yml
@@ -0,0 +1,28 @@
+---
+- name: Install packages and compile programs
+ hosts: localhost
+ tasks:
+ - name: Update APT package list
+ become: yes
+ apt:
+ update_cache: yes
+
+ - name: Install necessary packages
+ become: yes
+ apt:
+ name:
+ - g++
+ - numactl
+ - libtbb-dev
+ - bc
+ state: present
+
+ - name: Compile membw.cpp with optimizations
+ command: g++ membw.cpp -o membw -O3 -ltbb -march=native
+ args:
+ chdir: /home/ubuntu/memory_bandwidth
+
+ - name: Make run_membw.sh executable
+ file:
+ path: /home/ubuntu/memory_bandwidth/run_membw.sh
+ mode: '0755'
diff --git a/example-benchmarks/memory_bandwidth/configuration.yml b/example-benchmarks/memory_bandwidth/configuration.yml
new file mode 100644
index 0000000..1f3dab2
--- /dev/null
+++ b/example-benchmarks/memory_bandwidth/configuration.yml
@@ -0,0 +1,101 @@
+---
+configuration:
+ name: "Memory Bandwidth"
+ description: "Benchmark testing Memory Bandwidth for different number of threads"
+ directory: memory_bandwidth
+ cron: "0 * * * *"
+ instance-number: 1
+ instance-types:
+ # Graviton
+ - c6g.metal
+ - c6g.4xlarge
+ - c6g.2xlarge
+ - c6g.xlarge
+ - c6g.large
+
+ - c7g.metal
+ - c7g.4xlarge
+ - c7g.2xlarge
+ - c7g.xlarge
+ - c7g.large
+
+ - c8g.metal-24xl
+ - c8g.8xlarge
+ - c8g.4xlarge
+ - c8g.2xlarge
+ - c8g.xlarge
+ - c8g.large
+
+ # Intel
+ - c4.8xlarge
+ - c4.2xlarge
+ - c4.xlarge
+ - c4.large
+
+ - c5.metal
+ - c5.9xlarge
+ - c5.4xlarge
+ - c5.2xlarge
+ - c5.xlarge
+ - c5.large
+
+ - c6i.metal
+ - c6i.8xlarge
+ - c6i.2xlarge
+ - c6i.xlarge
+ - c6i.large
+
+ - c7i.metal-24xl
+ - c7i.8xlarge
+ - c7i.2xlarge
+ - c7i.xlarge
+ - c7i.large
+
+ # AMD
+ - m5a.24xlarge
+ - m5a.2xlarge
+ - m5a.xlarge
+ - m5a.large
+
+ - c5a.24xlarge
+ - c5a.16xlarge
+ - c5a.12xlarge
+ - c5a.8xlarge
+ - c5a.4xlarge
+ - c5a.2xlarge
+ - c5a.xlarge
+ - c5a.large
+
+ - c6a.metal
+ - c6a.16xlarge
+ - c6a.12xlarge
+ - c6a.8xlarge
+ - c6a.4xlarge
+ - c6a.2xlarge
+ - c6a.xlarge
+ - c6a.large
+
+ - c7a.metal-48xl
+ - c7a.16xlarge
+ - c7a.12xlarge
+ - c7a.8xlarge
+ - c7a.4xlarge
+ - c7a.2xlarge
+ - c7a.xlarge
+ - c7a.large
+
+nodes:
+ - node-id: 0
+ ansible-configuration: ansible.yml
+ benchmark-command: ./run_membw.sh
+ output-command: python3 format_output.py results.csv
+
+plots:
+ - type: line
+ title: Bandwidth depending on number of threads
+ xaxis: Threads count
+ yaxis: Memory Bandwidth [GB/s]
+ series:
+ - x: thread_counts
+ y: memory_bandwidth
+ legend: Memory bandwidth
diff --git a/example-benchmarks/memory_bandwidth/format_output.py b/example-benchmarks/memory_bandwidth/format_output.py
new file mode 100644
index 0000000..ae8ad5a
--- /dev/null
+++ b/example-benchmarks/memory_bandwidth/format_output.py
@@ -0,0 +1,38 @@
+import csv
+import json
+import sys
+from collections import defaultdict
+
+def parse_file_to_json(csv_file):
+ bw_sum_count = defaultdict(lambda: {'sum': 0, 'count': 0})
+
+ with open(csv_file, 'r') as file:
+ reader = csv.DictReader(file)
+ for row in reader:
+ threads = int(row['threads'])
+ bw = float(row['bw'])
+
+ bw_sum_count[threads]['sum'] += bw
+ bw_sum_count[threads]['count'] += 1
+
+ threads_list = []
+ bw_list = []
+ for threads, values in bw_sum_count.items():
+ avg_bw = values['sum'] / values['count']
+ threads_list.append(threads)
+ bw_list.append(avg_bw)
+
+
+ data = {
+ "thread_counts": threads_list,
+ "memory_bandwidth": bw_list,
+ }
+ json_output = json.dumps(data, indent=4)
+ print(json_output)
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python format_output.py ")
+ else:
+ file_path = sys.argv[1]
+ parse_file_to_json(file_path)
diff --git a/example-benchmarks/memory_bandwidth/membw.cpp b/example-benchmarks/memory_bandwidth/membw.cpp
new file mode 100755
index 0000000..9d9f5d4
--- /dev/null
+++ b/example-benchmarks/memory_bandwidth/membw.cpp
@@ -0,0 +1,78 @@
+///usr/bin/env -S g++ "$0" -ltbb -O3 -o /tmp/membw.out && exec /tmp/membw.out "$@"
+#include // malloc, free
+#include // memset, memcpy
+#include // integer types
+//#include // x86 SSE intrinsics
+#include
+#include
+#include // gettime
+#include // std::random_shuffle
+#include
+#include
+#include
+#include
+#include
+
+#define HUGEPAGE_SIZE (2 * 1024 * 1024) // 2MB per huge page
+
+using namespace tbb;
+
+static double gettime(void) {
+ struct timeval now_tv;
+ gettimeofday (&now_tv,NULL);
+ return ((double)now_tv.tv_sec) + ((double)now_tv.tv_usec)/1000000.0;
+}
+
+
+int main(int argc,char** argv) {
+ if (argc < 3) {
+ printf("Usage: %s \n", argv[0]);
+ return 1;
+ }
+ uint64_t n=atof(argv[1]);
+ int num_threads = atoi(argv[2]);
+ int iterations = atoi(argv[3]);
+
+ // Use Huge Pages
+ size_t size_in_bytes = n * sizeof(uint64_t);
+ if (size_in_bytes % HUGEPAGE_SIZE != 0) {
+ size_in_bytes = ((size_in_bytes / HUGEPAGE_SIZE) + 1) * HUGEPAGE_SIZE;
+ }
+
+ uint64_t* keys = (uint64_t*) mmap(nullptr, size_in_bytes,
+ PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
+
+ if (keys == MAP_FAILED) {
+ perror("mmap failed");
+ return 1;
+ }
+
+ oneapi::tbb::global_control global_limit(oneapi::tbb::global_control::max_allowed_parallelism, num_threads);
+ static affinity_partitioner ap;
+
+ {
+ double start = gettime();
+ // Step size 8 to hit cache line only once
+ tbb::parallel_for(tbb::blocked_range (0, n, 8), [&] (const tbb::blocked_range& range) {
+ for (uint64_t i=range.begin(); i!=range.end(); i++) {
+ keys[i] =i;
+ }}, ap);
+ }
+
+ for (volatile int cnt=0; cnt < iterations; cnt++) {
+ std::atomic s(0);
+ double start = gettime();
+ tbb::parallel_for(tbb::blocked_range (0, n), [&] (const tbb::blocked_range& range) {
+ uint64_t sum = 0;
+ for (uint64_t i=range.begin(); i!=range.end(); i+=1) {
+ sum += keys[i];
+ }
+ s += sum;
+ }, ap);
+ printf("%i,%f,%ld\n",num_threads,(static_cast(sizeof(uint64_t)*n)/(1024ull*1024*1024))/(gettime()-start), s.load());
+ }
+
+
+ return 0;
+}
diff --git a/example-benchmarks/memory_bandwidth/run_membw.sh b/example-benchmarks/memory_bandwidth/run_membw.sh
new file mode 100755
index 0000000..385ddfb
--- /dev/null
+++ b/example-benchmarks/memory_bandwidth/run_membw.sh
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+
+echo "threads,bw,sum" > results.csv
+threads=(1 2 4 6 8 12 16 18 20 22 24 28 32 36 40 44 48)
+# fill 70% of RAM available per NUMA node with uint64_t
+size=$(free -b | grep Mem: | awk '{print $2}')
+numa_nodes=$(lscpu | grep "NUMA node(s):" | awk '{print $3}')
+input_size=$(echo "$size / $numa_nodes * 0.7 / 8" | bc)
+huge_pages=$(echo "$input_size * 8 / 1024 / 1024 / 2 + 1" | bc)
+sudo bash -c "echo $huge_pages > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages"
+
+for t_count in "${threads[@]}";
+do
+ numactl --cpubind=0 --membind=0 ./membw $input_size $t_count 10 >> results.csv
+done
diff --git a/example-benchmarks/network_bandwidth/ansible.yml b/example-benchmarks/network_bandwidth/ansible.yml
new file mode 100644
index 0000000..b17eb10
--- /dev/null
+++ b/example-benchmarks/network_bandwidth/ansible.yml
@@ -0,0 +1,15 @@
+---
+- name: Install iperf
+ hosts: localhost
+ tasks:
+ - name: Install dependencies
+ become: yes
+ apt:
+ name:
+ - iperf
+ state: present
+
+ - name: Make run_bandwidth.sh executable
+ file:
+ path: /home/ubuntu/network_bandwidth/run_bandwidth.sh
+ mode: '0755'
diff --git a/example-benchmarks/network_bandwidth/configuration.yml b/example-benchmarks/network_bandwidth/configuration.yml
new file mode 100644
index 0000000..ea1d70d
--- /dev/null
+++ b/example-benchmarks/network_bandwidth/configuration.yml
@@ -0,0 +1,64 @@
+---
+configuration:
+ name: Network Bandwidth
+ description: Benchmark testing network bandwidth over a time using iperf
+ directory: network_bandwidth
+ cron: "0 * * * *"
+ instance-number: 2
+ instance-types:
+ - c8g.metal-24xl
+ - c7gn.metal
+ - c7g.metal
+ - c7i.metal-24xl
+ - c7a.metal-48xl
+ - c5.metal
+ - c6g.medium
+ - t2.micro
+
+ - c7g.medium
+ - c7g.large
+ - c7g.xlarge
+
+ - c6i.2xlarge
+ - c7i.2xlarge
+
+ - c6a.2xlarge
+ - c7a.2xlarge
+
+ - c6g.2xlarge
+ - c7g.2xlarge
+ - c8g.2xlarge
+
+nodes:
+ - node-id: 0
+ ansible-configuration: ansible.yml
+
+ - node-id: 1
+ benchmark-command: ./run_bandwidth.sh
+ output-command: python3 format_output.py results.txt
+
+ - node-id: 2
+ benchmark-command: timeout 620 iperf -s
+ instance-type: c7gn.metal
+
+plots:
+ - type: line
+ title: Network Bandwidth over Time
+ xaxis: Time [s]
+ yaxis: Network Bandwidth [Gbit/s]
+ series:
+ - x: increasing_values
+ y: connection_min
+ legend: Minimum Connection Bandwidth
+
+ - x: increasing_values
+ y: connection_avg
+ legend: Average Connection Bandwidth
+
+ - x: increasing_values
+ y: connection_max
+ legend: Maximum Connection Bandwidth
+
+ - x: increasing_values
+ y: sum_bandwidth
+ legend: Connections Sum
diff --git a/example-benchmarks/network_bandwidth/format_output.py b/example-benchmarks/network_bandwidth/format_output.py
new file mode 100644
index 0000000..efa0ee7
--- /dev/null
+++ b/example-benchmarks/network_bandwidth/format_output.py
@@ -0,0 +1,62 @@
+import re
+import sys
+import json
+from collections import defaultdict
+
+def parse_iperf(file_path):
+ connection_bandwidths = defaultdict(lambda: defaultdict(float))
+ sum_bandwidth = defaultdict(float)
+ min_bandwidth = defaultdict(float)
+ max_bandwidth = defaultdict(float)
+ avg_bandwidth = defaultdict(float)
+ intervals = set()
+
+ connection_pattern = re.compile(r'\[\s*(\d+)\]\s+([\d.]+)-([\d.]+)\s+sec\s+([\d.]+)\s+GBytes\s+([\d.]+)\s+Gbits/sec')
+ sum_pattern = re.compile(r'\[SUM\]\s+([\d.]+)-([\d.]+)\s+sec\s+([\d.]+)\s+GBytes\s+([\d.]+)\s+Gbits/sec')
+
+ with open(file_path, 'r') as f:
+ for line in f:
+ connection_match = connection_pattern.search(line)
+ if connection_match:
+ connection_id = int(connection_match.group(1))
+ start_time = float(connection_match.group(2))
+ bandwidth = float(connection_match.group(5))
+
+ connection_bandwidths[connection_id][start_time] = bandwidth
+ intervals.add(start_time)
+
+ sum_match = sum_pattern.search(line)
+ if sum_match:
+ start_time = float(sum_match.group(1))
+ bandwidth_sum = float(sum_match.group(4))
+
+ sum_bandwidth[start_time] = bandwidth_sum
+ intervals.add(start_time)
+ if not sum_bandwidth:
+ sum_bandwidth = connection_bandwidths[1]
+ intervals = sorted(intervals)[1:-1]
+ for i in intervals:
+ interval = []
+ for j in range(1, len(connection_bandwidths) + 1):
+ interval.append(connection_bandwidths[j][i])
+ min_bandwidth[i] = min(interval)
+ max_bandwidth[i] = max(interval)
+ avg_bandwidth[i] = sum(interval) / len(interval)
+
+ data = {
+ 'connection_min': [min_bandwidth.get(i, 0) for i in intervals],
+ 'connection_max': [max_bandwidth.get(i, 0) for i in intervals],
+ 'connection_avg': [avg_bandwidth.get(i, 0) for i in intervals],
+ 'sum_bandwidth': [sum_bandwidth.get(i, 0) for i in intervals]
+ }
+
+ return data
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python3 format_output.py ")
+ sys.exit(1)
+
+ file_path = sys.argv[1]
+ data = parse_iperf(file_path)
+ print(json.dumps(data, indent=4))
diff --git a/example-benchmarks/network_bandwidth/run_bandwidth.sh b/example-benchmarks/network_bandwidth/run_bandwidth.sh
new file mode 100644
index 0000000..3a84a67
--- /dev/null
+++ b/example-benchmarks/network_bandwidth/run_bandwidth.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+sleep 5
+num_threads=$(lscpu | grep "^CPU(s):" | awk '{print $2}')
+num_threads_plus_two=$(("$num_threads" + 2))
+threads=$((num_threads_plus_two < 50 ? num_threads_plus_two : 50))
+iperf -c node-2 -t 602 -P $threads -i 1 -f g >> results.txt
diff --git a/example-benchmarks/network_latency/ansible.yml b/example-benchmarks/network_latency/ansible.yml
new file mode 100644
index 0000000..87df7fc
--- /dev/null
+++ b/example-benchmarks/network_latency/ansible.yml
@@ -0,0 +1,61 @@
+---
+- name: Install and run sockperf
+ hosts: localhost
+ tasks:
+ - name: Install dependencies
+ become: yes
+ apt:
+ name:
+ - git
+ - perl
+ - make
+ - automake
+ - autoconf
+ - m4
+ - libtool-bin
+ - g++
+ state: present
+
+ - name: Ensure entries are present in /etc/hosts to allow GitHub communication via IPv6
+ become: yes
+ lineinfile:
+ path: /etc/hosts
+ state: present
+ line: "{{ item }}"
+ loop:
+ - "2a01:4f8:c010:d56::2 github.com"
+ - "2a01:4f8:c010:d56::3 api.github.com"
+ - "2a01:4f8:c010:d56::4 codeload.github.com"
+ - "2a01:4f8:c010:d56::5 objects.githubusercontent.com"
+ - "2a01:4f8:c010:d56::6 ghcr.io"
+ - "2a01:4f8:c010:d56::7 pkg.github.com npm.pkg.github.com maven.pkg.github.com nuget.pkg.github.com rubygems.pkg.github.com"
+
+ - name: Clone sockperf repository
+ git:
+ repo: "https://github.com/Mellanox/sockperf.git"
+ dest: /home/ubuntu/network_latency/sockperf
+
+ - name: Run sockperf autogen.sh
+ command: ./autogen.sh
+ args:
+ chdir: /home/ubuntu/network_latency/sockperf
+
+ - name: Configure sockperf
+ command: ./configure
+ args:
+ chdir: /home/ubuntu/network_latency/sockperf
+
+ - name: Compile sockperf
+ make:
+ chdir: /home/ubuntu/network_latency/sockperf
+
+ - name: Install sockperf
+ become: yes
+ command: make install
+ args:
+ chdir: /home/ubuntu/network_latency/sockperf
+
+ - name: Make run_latency_bench.sh executable
+ file:
+ path: /home/ubuntu/network_latency/run_latency_bench.sh
+ mode: '0755'
diff --git a/example-benchmarks/network_latency/configuration.yml b/example-benchmarks/network_latency/configuration.yml
new file mode 100644
index 0000000..6e6af1e
--- /dev/null
+++ b/example-benchmarks/network_latency/configuration.yml
@@ -0,0 +1,56 @@
+---
+configuration:
+ name: Network Latency
+ description: Benchmark using sockperf to test network latency
+ directory: network_latency
+ cron: "0 * * * *"
+ instance-number: 2
+ instance-types:
+ - c8g.metal-24xl
+ - c7gn.metal
+ - c7g.metal
+ - c7i.metal-24xl
+ - c7a.metal-48xl
+ - c5.metal
+nodes:
+ - node-id: 0
+ ansible-configuration: ansible.yml
+
+ - node-id: 1
+ benchmark-command: ./run_latency_bench.sh
+ output-command: python3 format_output.py results.txt
+
+ - node-id: 2
+ benchmark-command: timeout 90 ./sockperf/sockperf server -i node-2 --tcp
+
+plots:
+ - type: scatter
+ title: Round-trip time
+ yaxis: Time [us]
+ series:
+ - y: average
+ legend: Average
+ - y: average_plus_std_dev
+ legend: Average + Std Dev
+ - y: average_minus_std_dev
+ legend: Average - Std Dev
+ - y: minimum
+ legend: Minimum
+ - y: maximum
+ legend: Maximum
+ - y: percentile_99_999
+ legend: Percentile 99.999%
+ - y: percentile_99_990
+ legend: Percentile 99.99%
+ - y: percentile_99_900
+ legend: Percentile 99.9%
+ - y: percentile_99_000
+ legend: Percentile 99%
+ - y: percentile_90_000
+ legend: Percentile 90%
+ - y: percentile_75_000
+ legend: Percentile 75%
+ - y: percentile_50_000
+ legend: Median
+ - y: percentile_25_000
+ legend: Percentile 25%
diff --git a/example-benchmarks/network_latency/format_output.py b/example-benchmarks/network_latency/format_output.py
new file mode 100644
index 0000000..d1be02d
--- /dev/null
+++ b/example-benchmarks/network_latency/format_output.py
@@ -0,0 +1,48 @@
+import re
+import json
+import sys
+
+
+def parse_sockperf_output(file_path):
+ parsed_data = {}
+ avg_rtt_pattern = r'avg-rtt=(\d+\.\d+)'
+ std_dev_pattern = r'std-dev=(\d+\.\d+)'
+ min_pattern = r' observation =\s+(\d+\.\d+)'
+ max_pattern = r' observation =\s+(\d+\.\d+)'
+ percentile_pattern = r'percentile (\d+\.\d+) =\s+(\d+\.\d+)'
+
+ with open(file_path, 'r') as file:
+ content = file.read()
+
+ avg_rtt_match = re.search(avg_rtt_pattern, content)
+ if avg_rtt_match:
+ parsed_data['average'] = float(avg_rtt_match.group(1))
+
+ std_dev_match = re.search(std_dev_pattern, content)
+ if std_dev_match:
+ parsed_data['average_plus_std_dev'] = parsed_data['average'] + float(std_dev_match.group(1))
+ parsed_data['average_minus_std_dev'] = parsed_data['average'] - float(std_dev_match.group(1))
+
+ min_match = re.search(min_pattern, content)
+ if min_match:
+ parsed_data['minimum'] = float(min_match.group(1))
+
+ max_match = re.search(max_pattern, content)
+ if max_match:
+ parsed_data['maximum'] = float(max_match.group(1))
+
+ for percentile_match in re.finditer(percentile_pattern, content):
+ percentile = percentile_match.group(1).replace('.', '_')
+ value = float(percentile_match.group(2))
+ parsed_data[f'percentile_{percentile}'] = value
+
+ print(json.dumps(parsed_data, indent=4))
+
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python parse_results.py ")
+ sys.exit(1)
+
+ file_path = sys.argv[1]
+ parse_sockperf_output(file_path)
diff --git a/example-benchmarks/network_latency/run_latency_bench.sh b/example-benchmarks/network_latency/run_latency_bench.sh
new file mode 100644
index 0000000..108fed6
--- /dev/null
+++ b/example-benchmarks/network_latency/run_latency_bench.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+
+sleep 5
+./sockperf/sockperf ping-pong -i node-2 -t 60 --full-log logs.csv --full-rtt --tcp >> results.txt
\ No newline at end of file
diff --git a/example-benchmarks/spec_cpu_all_cores/ansible.yml b/example-benchmarks/spec_cpu_all_cores/ansible.yml
new file mode 100644
index 0000000..1ee9edf
--- /dev/null
+++ b/example-benchmarks/spec_cpu_all_cores/ansible.yml
@@ -0,0 +1,80 @@
+---
+- name: Install and run sockperf
+ hosts: localhost
+ tasks:
+ - name: Ensure the directory exists
+ file:
+ path: /home/ubuntu/specbench
+ state: directory
+ mode: '0755'
+
+ - name: Mount image
+ become: true
+ command: mount -t iso9660 -o ro,exec,loop cpu2017-1.1.9.iso /mnt
+ args:
+ chdir: /home/ubuntu
+
+ - name: Install SPEC CPU
+ command: ./install.sh -f -d /home/ubuntu/specbench
+ args:
+ chdir: /mnt
+
+ - name: Copy x86 config
+ copy:
+ src: /home/ubuntu/spec_cpu_all_cores/config_x86.cfg
+ dest: /home/ubuntu/specbench/config/config_x86.cfg
+
+ - name: Copy ARM config
+ copy:
+ src: /home/ubuntu/spec_cpu_all_cores/config_graviton.cfg
+ dest: /home/ubuntu/specbench/config/config_graviton.cfg
+
+ - name: Add flags tags to gcc.xml
+ community.general.xml:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ xpath: /flagsdescription
+ add_children:
+ - flag:
+ name: std-c-plus-plus-14
+ regexp: -std=c\+\+14
+ class: portability
+ - flag:
+ name: Wno-error-register
+ regexp: -Wno-error=register
+ class: portability
+ state: present
+ pretty_print: yes
+
+ - name: Add placeholder for C++14 description
+ community.general.xml:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ xpath: /flagsdescription/flag[@name='std-c-plus-plus-14']
+ value: DESCRIPTION_STD_C14
+ state: present
+ pretty_print: yes
+
+ - name: Add placeholder for WNo-Error description
+ community.general.xml:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ xpath: /flagsdescription/flag[@name='Wno-error-register']
+ value: DESCRIPTION_WNO_ERROR
+ state: "present"
+ pretty_print: yes
+
+ - name: Replace DESCRIPTION_STD_C14
+ replace:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ regexp: DESCRIPTION_STD_C14
+ replace: Compile source code with C++14.
]]>
+
+
+ - name: Replace DESCRIPTION_WNO_ERROR
+ replace:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ regexp: DESCRIPTION_WNO_ERROR
+ replace: Disable treating the use of the 'register' keyword as an error.]]>
+
+ - name: Make run_spec.sh executable
+ file:
+ path: /home/ubuntu/spec_cpu_all_cores/run_spec.sh
+ mode: '0755'
\ No newline at end of file
diff --git a/example-benchmarks/spec_cpu_all_cores/config_graviton.cfg b/example-benchmarks/spec_cpu_all_cores/config_graviton.cfg
new file mode 100644
index 0000000..8d73351
--- /dev/null
+++ b/example-benchmarks/spec_cpu_all_cores/config_graviton.cfg
@@ -0,0 +1,698 @@
+#------------------------------------------------------------------------------
+# SPEC CPU2017 config file for: gcc / g++ / gfortran on Linux ARM systems
+#------------------------------------------------------------------------------
+#
+# Usage: (1) Copy this to a new name
+# cd $SPEC/config
+# cp Example-x.cfg myname.cfg
+# (2) Change items that are marked 'EDIT' (search for it)
+#
+# SPEC tested this config file with:
+# Compiler version(s): 5.3, 6.2
+# Operating system(s): Ubuntu 16.04
+# Hardware: Cavium ThunderX, HPE Moonshot
+#
+# If your system differs, this config file might not work.
+# You might find a better config file at http://www.spec.org/cpu2017/results
+#
+# Known Limitations
+# It is possible that you might encounter compile time or run time errors
+# with older versions of GCC (for example, 4.x)
+# Recommendation: Use a newer version of the compiler.
+# If that is not possible, try reducing the optimization.
+#
+#
+# Compiler issues: Contact your compiler vendor, not SPEC.
+# For SPEC help: http://www.spec.org/cpu2017/Docs/techsupport.html
+#------------------------------------------------------------------------------
+
+
+#--------- Label --------------------------------------------------------------
+# Arbitrary string to tag binaries
+# Two Suggestions: # (1) EDIT this label as you try new ideas.
+%define label spec_graviton # (2) Use a label meaningful to *you*.
+
+
+#--------- Preprocessor -------------------------------------------------------
+%ifndef %{bits} # EDIT to control 32 or 64 bit compilation. Or,
+% define bits 64 # you can set it on the command line using:
+%endif # 'runcpu --define bits=nn'
+
+%ifndef %{build_ncpus} # EDIT to adjust number of simultaneous compiles.
+% define build_ncpus 8 # Or, you can set it on the command line:
+%endif # 'runcpu --define build_ncpus=nn'
+
+# Don't change this part.
+%define os LINUX
+
+%ifndef %{model}
+% if %{bits} == 64
+% define model -mabi=lp64
+% elif %{bits} == 32
+% define model -mabi=ilp32
+% else
+% error Please define number of bits - see instructions in config file
+% endif
+%endif
+
+
+#--------- Global Settings ----------------------------------------------------
+# For info, see:
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#tune
+
+command_add_redirect = 1
+flagsurl = $[top]/config/flags/gcc.xml
+ignore_errors = 0
+iterations = 1
+label = %{label}-%{bits}
+line_width = 1020
+log_line_width = 1020
+makeflags = --jobs=%{build_ncpus}
+mean_anyway = 1
+output_format = txt,html,cfg,pdf,csv
+preenv = 1
+reportable = 0
+tune = base,peak
+
+
+#--------- How Many CPUs? -----------------------------------------------------
+# Both SPECrate and SPECspeed can test multiple chips / cores / hw threads
+# - For SPECrate, you set the number of copies.
+# - For SPECspeed, you set the number of threads.
+# See: https://www.spec.org/cpu2017/Docs/system-requirements.html#MultipleCPUs
+#
+# q. How many should I set?
+# a. Unknown, you will have to try it and see!
+#
+# To get you started, some suggestions:
+#
+# copies - This config file defaults to testing only 1 copy. You might
+# try changing it to match the number of cores on your system,
+# or perhaps the number of virtual CPUs as reported by:
+# grep -c processor /proc/cpuinfo
+# Be sure you have enough memory. See:
+# https://www.spec.org/cpu2017/Docs/system-requirements.html#memory
+#
+# threads - This config file sets a starting point. You could try raising
+# it. A higher thread count is much more likely to be useful for
+# fpspeed than for intspeed.
+#
+intrate,fprate:
+ copies = 1 # EDIT to change number of copies (see above)
+intspeed,fpspeed:
+ threads = 8 # EDIT to change number of OpenMP threads (see above)
+
+
+#------- Compilers ------------------------------------------------------------
+default:
+# EDIT: the directory where your compiler is installed
+%ifndef %{gcc_dir}
+% define gcc_dir /usr
+%endif
+
+# EDIT if needed: the preENV line adds library directories to the runtime
+# path. You can adjust it, or add lines for other environment variables.
+# See: https://www.spec.org/cpu2017/Docs/config.html#preenv
+# and: https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
+ preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64
+ #preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64:%{ENV_LD_LIBRARY_PATH}
+ SPECLANG = %{gcc_dir}/bin/
+ CC = $(SPECLANG)gcc -std=c99 %{model}
+ CXX = $(SPECLANG)g++ -std=c++03 %{model}
+ FC = $(SPECLANG)gfortran %{model}
+ # How to say "Show me your version, please"
+ CC_VERSION_OPTION = -v
+ CXX_VERSION_OPTION = -v
+ FC_VERSION_OPTION = -v
+
+default:
+%if %{bits} == 64
+ sw_base_ptrsize = 64-bit
+ sw_peak_ptrsize = 64-bit
+%else
+ sw_base_ptrsize = 32-bit
+ sw_peak_ptrsize = 32-bit
+%endif
+
+
+#--------- Portability --------------------------------------------------------
+default: # data model applies to all benchmarks
+%if %{bits} == 32
+ # Strongly recommended because at run-time, operations using modern file
+ # systems may fail spectacularly and frequently (or, worse, quietly and
+ # randomly) if a program does not accommodate 64-bit metadata.
+ EXTRA_PORTABILITY = -D_FILE_OFFSET_BITS=64
+%else
+ EXTRA_PORTABILITY = -DSPEC_LP64
+%endif
+
+# Benchmark-specific portability (ordered by last 2 digits of bmark number)
+
+500.perlbench_r,600.perlbench_s: #lang='C'
+%if %{bits} == 32
+% define suffix AARCH32
+%else
+% define suffix AARCH64
+%endif
+ PORTABILITY = -DSPEC_%{os}_%{suffix}
+
+520.omnetpp_r:
+ PORTABILITY = -Wno-error=register -std=c++14
+
+521.wrf_r,621.wrf_s: #lang='F,C'
+ CPORTABILITY = -DSPEC_CASE_FLAG
+ FPORTABILITY = -fconvert=big-endian
+
+523.xalancbmk_r,623.xalancbmk_s: #lang='CXX'
+ PORTABILITY = -DSPEC_%{os}
+
+526.blender_r: #lang='CXX,C'
+ PORTABILITY = -funsigned-char -DSPEC_LINUX
+
+527.cam4_r,627.cam4_s: #lang='F,C'
+ PORTABILITY = -DSPEC_CASE_FLAG
+
+628.pop2_s: #lang='F,C'
+ PORTABILITY = -DSPEC_CASE_FLAG -fconvert=big-endian
+
+#----------------------------------------------------------------------
+# GCC workarounds that do not count as PORTABILITY
+#----------------------------------------------------------------------
+# The workarounds in this section would not qualify under the SPEC CPU
+# PORTABILITY rule.
+# - In peak, they can be set as needed for individual benchmarks.
+# - In base, individual settings are not allowed; set for whole suite.
+# See:
+# https://www.spec.org/cpu2017/Docs/runrules.html#portability
+# https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+# Integer workarounds - peak
+#
+ 500.perlbench_r,600.perlbench_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only
+ 502.gcc_r,602.gcc_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fgnu89-inline
+ 505.mcf_r,605.mcf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/505.mcf_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 525.x264_r,625.x264_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/525.x264_r.html
+ EXTRA_CFLAGS = -fcommon
+#
+# Integer workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ intrate,intspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only -fgnu89-inline -fcommon
+#
+# Floating Point workarounds - peak
+#
+ 511.povray_r=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/511.povray_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 521.wrf_r,621.wrf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/521.wrf_r.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ 527.cam4_r,627.cam4_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/527.cam4_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ # See also topic "628.pop2_s basepeak" below
+ 628.pop2_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+#
+# FP workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ fprate,fpspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+
+#-------- Tuning Flags common to Base and Peak --------------------------------
+
+#
+# Speed (OpenMP and Autopar allowed)
+#
+%if %{bits} == 32
+ intspeed,fpspeed:
+ #
+ # Many of the speed benchmarks (6nn.benchmark_s) do not fit in 32 bits
+ # If you wish to run SPECint2017_speed or SPECfp2017_speed, please use
+ #
+ # runcpu --define bits=64
+ #
+ fail_build = 1
+%else
+ intspeed,fpspeed:
+ EXTRA_OPTIMIZE = -fopenmp -DSPEC_OPENMP
+ fpspeed:
+ #
+ # 627.cam4 needs a big stack; the preENV will apply it to all
+ # benchmarks in the set, as required by the rules.
+ #
+ preENV_OMP_STACKSIZE = 120M
+%endif
+
+
+#-------- Baseline Tuning Flags ----------------------------------------------
+#
+default=base: # flags for all base
+ OPTIMIZE = -g -O3 -march=native
+
+intrate,intspeed=base: # flags for integer base
+%if %{bits} == 32
+ EXTRA_COPTIMIZE = -fgnu89-inline -fno-strict-aliasing
+%else
+ EXTRA_COPTIMIZE = -fgnu89-inline -fno-strict-aliasing
+ LDCFLAGS = -z muldefs
+%endif
+# Notes about the above
+# - 500.perlbench_r/600.perlbench_s needs -fno-strict-aliasing.
+# - 502.gcc_r/602.gcc_s needs -fgnu89-inline or -z muldefs
+# - 520.omnetpp_r needs -fno-new-ttp-matching (See https://inbox.sourceware.org/gcc-patches/20200629145741.GG3394@redhat.com/T/)
+# - For 'base', all benchmarks in a set must use the same options.
+# - Therefore, all base benchmarks get the above. See:
+# www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+# www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html
+# www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
+
+#-------- Peak Tuning Flags ----------------------------------------------
+default=peak:
+ OPTIMIZE = -g -Ofast -march=native -flto
+ PASS1_FLAGS = -fprofile-generate
+ PASS2_FLAGS = -fprofile-use
+
+# 628.pop2_s basepeak: Depending on the interplay of several optimizations,
+# 628.pop2_s might not validate with peak tuning. Use the base
+# version instead. See:
+# https:// www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+628.pop2_s=peak:
+ basepeak = yes
+
+ #
+ # -----------------------
+ # About the -fno switches
+ # -----------------------
+ #
+ # For 'base', this config file (conservatively) disables some optimizations.
+ # You might want to try turning some of them back on, by creating a 'peak'
+ # section here, with individualized benchmark options:
+ #
+ # 500.perlbench_r=peak:
+ # OPTIMIZE = this
+ # 502.gcc_r=peak:
+ # OPTIMIZE = that
+ # 503.bwaves_r=peak:
+ # OPTIMIZE = other .....(and so forth)
+ #
+ # If you try it:
+ # - You must remove the 'basepeak' option, above.
+ # - You will need time and patience, to diagnose and avoid any errors.
+ # - perlbench is unlikely to work with strict aliasing
+ # - Some floating point benchmarks may get wrong answers, depending on:
+ # the particular chip
+ # the version of GCC
+ # other optimizations enabled
+ # -m32 vs. -m64
+ # - See: http://www.spec.org/cpu2017/Docs/config.html
+ # - and: http://www.spec.org/cpu2017/Docs/runrules.html
+
+
+#------------------------------------------------------------------------------
+# Tester and System Descriptions - EDIT all sections below this point
+#------------------------------------------------------------------------------
+# For info about any field, see
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#hw_memory
+#-------------------------------------------------------------------------------
+
+#--------- EDIT to match your version -----------------------------------------
+default:
+ sw_compiler001 = C/C++/Fortran: Version 13.2.0 of GCC, the
+ sw_compiler002 = GNU Compiler Collection
+
+#--------- EDIT info about you ------------------------------------------------
+# To understand the difference between hw_vendor/sponsor/tester, see:
+# https://www.spec.org/cpu2017/Docs/config.html#test_sponsor
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ hw_vendor = Amazon Web Services
+ tester = TUM I13
+ test_sponsor = TUM
+ license_num = nnn (Your SPEC license number)
+# prepared_by = # Ima Pseudonym # Whatever you like: is never output
+
+
+#--------- EDIT system availability dates -------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+ hw_avail = # Nov-2099 # Date of LAST hardware component to ship
+ sw_avail = # Nov-2099 # Date of LAST software component to ship
+
+#--------- EDIT system information --------------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+ # hw_cpu_name = # Intel Xeon E9-9999 v9 # chip name
+ hw_cpu_nominal_mhz = # 9999 # Nominal chip frequency, in MHz
+ hw_cpu_max_mhz = # 9999 # Max chip frequency, in MHz
+ # hw_disk = # 9 x 9 TB SATA III 9999 RPM # Size, type, other perf-relevant info
+ hw_model = # TurboBlaster 3000 # system model name
+ # hw_nchips = # 99 # number chips enabled
+ hw_ncores = # 9999 # number cores enabled
+ hw_ncpuorder = # 1-9 chips # Ordering options
+ hw_nthreadspercore = # 9 # number threads enabled per core
+ hw_other = # TurboNUMA Router 10 Gb # Other perf-relevant hw, or "None"
+
+# hw_memory001 = # 999 GB (99 x 9 GB 2Rx4 PC4-2133P-R, # The 'PCn-etc' is from the JEDEC
+# hw_memory002 = # running at 1600 MHz) # label on the DIMM.
+
+ hw_pcache = # 99 KB I + 99 KB D on chip per core # Primary cache size, type, location
+ hw_scache = # 99 KB I+D on chip per 9 cores # Second cache or "None"
+ hw_tcache = # 9 MB I+D on chip per chip # Third cache or "None"
+ hw_ocache = # 9 GB I+D off chip per system board # Other cache or "None"
+
+ fw_bios = # American Megatrends 39030100 02/29/2016 # Firmware information
+ # sw_file = # ext99 # File system
+ # sw_os001 = # Linux Sailboat # Operating system
+ # sw_os002 = # Distribution 7.2 SP1 # and version
+ sw_other = # TurboHeap Library V8.1 # Other perf-relevant sw, or "None"
+ # sw_state = # Run level 99 # Software state.
+
+# Note: Some commented-out fields above are automatically set to preliminary
+# values by sysinfo
+# https://www.spec.org/cpu2017/Docs/config.html#sysinfo
+# Uncomment lines for which you already know a better answer than sysinfo
+
+__HASH__
+502.gcc_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:04:30
+opthash=f109483d241781652e51b7b88d11d9a21c1a4cb053bc972cd7a7fdcb122a309b
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNq1UtFumzAUfecrLL87SdttWqJSCRyaeCXYClBte7ESByJvYKcYKrVfX5uUNn1qHjZLiCPuMffc\
+c26iFao3f4tSVgXQh1ZqZWaeaRspWt50aicb/lg0snzy4QX0LDSWYvFoMplAz8N0xWYAjjvTjLdS\
+jfdCAHeQaXe+mE4drDdb6VeHb18AEgDpoc1IAzRPWYTtK5lHYb4AiIzcM5ZKVN2u6LE5FII/GN20\
+r3T+dXI5wCDPKE9zxtZRmnLKomTFbI0kfIHdf5fBfcQxTW7Jgi+tFHoFTg4q96r7PkVSVVLZbqXS\
+6Dg62lRyY6TaO9axVczsAODa6K4RxQ308Axg7J85+ZFOwx+UZT78YAP0rIGY5bdxsEht7aMlfTWM\
+ErzkA+G/egQ9OgNWJFmR35FtRq/6L9HPbB1Y0nvhc+t66ceLjK6zICQxyX4NE/Z+Qi8myd35+wPQ\
+M6i7aleUpiedxHlOltd6+6cQrblx/Kp+v/sWBgB9UvH8/GCpo+MhnDd9/9RIK2kVZEsek9A1qepX\
+lTR323SySi8GFRoV
+exehash=5104cdfe94db9b351f6890ead073919d3dd7fcbe28495886f98c547b67586ef7
+
+500.perlbench_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:20:40
+opthash=947c5d5bb410de4cb52ba0adb24d11823e0351a2d31dca231ec6a4a5b3e13e18
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNrVU12rmzAYvvdXBO9TO84Yazke0DStbmkTjMLZboK1acmmsRgd2/n1S+zHTmGwwi7GAuKbN8/7\
+/bybVsOm/Cr3qpagPfaq1Wbumb5TVS+6Qe9UJ77JTu1/hP4b37OisRArT6bTqe95iK7ZHPjBYLpg\
+q3RwqCrgDjT9LqxmMyc25VaF9fHdWwArANtLmEkL4IIzjOxvs8BxsbICwxkRiGYYwHRiv50yfZBS\
+K1XHUge5aiRMVCbNRZPkawJZ2RnZWZX83gedtII5yqor9c66XNAiJlhwEvEEc+EiphEJp+foIipy\
+KnjBWIY5F5ThzZrZN0GibIXFMiWYX6/uJjgtMoSdbrzS5ZLjXMRpzkNbI4D0AZzPOQJJN8WziKIM\
+JQ5g9fuDHt7PoNK10jbdvW7hqeewrFVplD68smbO6NG0Q1fJJ99Dc4BQeGfLT3Aaf6AsD/2b/vue\
+nRxixZJEK27fbmcxvsZ4gxJxBfz3w/E9Oge2E+k6/YxtRfRhLJPRLI/ilKT5p0sfbmc22uHnPIts\
++b/M/zzF0f3J8LdBmPNtQ328f4cAfAHNUO/k3oygM9v+hmqP7faLrHrz5PB1A670vXIFgJFIZHE/\
+76iDowt3rjn/gxHYxNdRnlh/sUulbs610MKtxKt9+Anm8HdT
+exehash=d05a3a8991d2354440134f80d8ee02b2ba72cbe3e9db2f47c33108e3298f4bae
+
+505.mcf_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:20:43
+opthash=2b4ee5d95adc68b4be57409edc22f0f0064766b5e23db32adb25cf345a157ec4
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNqtUtFugjAUfecrmr5XXVyWacQEKlM2pI1Asu2lQUTTDVpHYcn29SugDp/Gw/rS295ze885t74U\
+KI/f0z3PUiCPJZdCTQ1VFjwpWVGJHS/YZ1rw/ZcJb6ChQ6UhOh6MRiNoGJis6RTAYaWK4ZaL4SFJ\
+QL2QKndmMpnUYR5vuZkd724BSgCS5zYDCdAioA7Wm79w7Gipsa46pgn7ULIoT1lmRSFhQUTpxgkC\
+RqjjrylAZAw6C+0PorqfIC4yLlJ9FBK1IlCc8VhxcahR7YMe1VTATMmqSNI5NPAUYGz21NDCif1I\
+aGjCK0HQ0FZgGj141jLQuWtxTdZ2fLxi+IzoqRYaZAp0P3ftvjq6jIybG+c53FgMdxJ/u9CwaAsp\
+2YSW7Xpu+HIm21gDDc/1n/oPFaBvkFfZLt2rBtSZTJ+xzOT2LU1KNa/xWf5be/EVgMZ0b9F/RqSG\
+X2y+8PtXIzWltRWumOfadZMsP7EkUf0xOr/iByWg/Ws=
+exehash=1f2e6cf9670ff39d468e67fa6a1b9d33d630807ca98a1c1e435b76b6d9272e63
+
+520.omnetpp_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:22:49
+opthash=274005286c078201e7a17f3e4b5c63e726b9fe2abd72d9e87de35af6c25702cc
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNq1UctOwzAQvPsrLF+rNEVFHKKmUh6mNaSxlYcoXKw2dZEhjSMnQeLvMSmBFi694MuuvbO7M+NY\
+VdZh8yr2shRQ1a1UVeOAptWyaLnuqp3U/E1ouX930RUCJm0MxOTjyWSCAAjoijkQ2V2j7a2s7OfR\
+CP46Zv5WumV9cw2tAlpqWDNW0ApThgMT4hD7+QJapJGHrty0Stu1CTtRn76Z/KB2ojQNDyRb8hhn\
+fk6iECdfk7iXZ5SnOWMJTlNOGY5XzDCg0x82R2DEDB04a1SnCzFHIHBgsF67FwoZ8NS/oyxz0Zku\
+BIwjActvI2+Rmtq5xr7q4zhY8gHwH6IRoA403MiKPGGzg077xXidJR5nNMk8n0Qkexz49YYgEJH4\
+/vLvPN5PzIUztX0RRdvMzzq+rYGwdy4KLzf6r4x+AM0/bT/x/AP2tsQE
+exehash=1cf2aed85696fcfe3a730b6638402f19d208b0c45616569d233848172725a44e
+
+523.xalancbmk_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:28:06
+opthash=6d3d0e94f77cea8d755bb0658ee676291353bcf5b40fe2e49963fc426b39d5b4
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNrtVEFvmzAUvvMrLK4VIVurHaKmkgNeSmdjC8PEdrEIoZU3giNMqvbf9wVERrodssNuQ0K8773P\
+D/t9nxybxtsVP6tHXVfI7DttGrtwbNfqslPtodnqVj1XrX58XbofXAdCCxSIZ/P53HWcgDOxQK5/\
+sK2/0Y3/dHWF3j3Qf6OX9f7TDfJK5JnxNzODvFAKEsAnDskqWwM3xEKomKv0PiE4lJDIMcWximJG\
+mGJyrSjHIUmQF83gfanasrLlr8jfmt058vVuX09StniZoEOna5/ZJ2qKLZzNjxpW7Uz7+p6StkVj\
+SzNwStM8HwlFXTSlr5uyPmwr2KpI+IPKGRU4kcctnhJZGtERDkU5Qonzm2ACPo5xyNkYfsU0CnHK\
++1XQTmWSjBMhUuI1GYfSz1PhLOVKZkIkUFVckJgJ5PHrXo2BQqM4y9E0IUAfdGvNAU595zrBAgV5\
+vrxQ2ZHPVw9cpEv3TGjXAYsEIvtM8VpC7Vz0vroicXCvoMGJ898H/8YHrsMXCDSKWPSdwKD5dS+A\
+4EmKVxGN0m+jQoNH+irJ0wSrP3LEUXxgfrn8FhjwYMff/XhrNj+qsrN3Z6tPZkKo9xoNL7fm3x64\
+b8+zo40nHn4DYzCAUg==
+exehash=c7afcfbdfebfed96e6db07f3747c9f0d57546e96a0c087fd295607c4331a3ca1
+
+525.x264_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:28:47
+opthash=9f8249deba2ee1bc4326c744c0aad9b1c72974092b5a064cd194306c4abc49a8
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNrtU11vmzAUfedXWH53SZssa6JSCYjXshFs8SGte7GIQyJvYFcYpmy/foY0HXlaHip1D/jF177H\
+9r3n+ERKoir/UexEWQD13Agl9dLSTS14w+pWbkXNfha12P1y4DW0TKgNxMRXk8kEWpZP1nQJoN3q\
+2t4Iae85B91Autk6fLHowirfCKd8ns8A4gCp0zNXCqBVQrFvpmiFvewBoKDcFlxtma65LaRBB4eb\
++axbDkK7ODR1roc7XFWVki/3MTdLCUsySmOcJIxQHK3pWc57SjGJVzh2Jofrm+nsw/zjrSmUTMFg\
+oN1etrcLJGQpZGGWUqEjMSgvRa6F3Heo47UhNe2BO63amhf30PKXwPedC3k5won3mdDUgWckQcvQ\
+69PsU+g+JCZ3Tlif9XDkP7IT4B0ZhBZZAtNCsA6+YVMKmfY7+Gsau8wfJP5NbN/Y8SAlcep6QRik\
+T6f+e7ahFQbRl8v/HkC/QdUadna6Bw3EvkTpO7X5XvBG33f4svp79lUqAHodw9XlspMO7p+ke63v\
+TYk0Ja3d9JGFgdc9UlYvVZKs+2uDjzZ6efTy6OXRy6OXRy+PXv5/vPwHT71lnQ==
+exehash=67469200b738606c248c542608d955fae32c6d0d607cb97bf57a70f767d6ff33
+
+531.deepsjeng_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:28:52
+opthash=7b83f00e401cd189a6e69735bcb63a0af85e9342734f1788fb82d1e640a9d463
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNqNUMtOwzAQvPsrLF+rtEFFHKKmUh6mBOzYykNKuVgkpMhQ4ioPJP4eN21oA5f44l3t7MzOhKoy\
+Pl8+yp3cl1AdWqmqxgJNW8uiFXVXvcpafJW13H3b6AYBXTYaouu5aZoIAI9RbkG06Jp6kctq8Tab\
+wT9P8+fS3h/ubqFRQEMNMnMFDT/m2NNf6GM33Rx76hAiKKYs2p7HwkkTJuKU8wjHsWAch5RrWra8\
+SJyAhGsNuGpUVxflGgHPgl6W2ROvG/DMfWQ8sdHoWAS0TY+n98TZxHo2Pryfujj0HsQFMNEJAsyC\
+WjCgwTPWi2zZs+EsiRzBWZQ4bkCCZDuI9i4RIEH4ND34U3+VGFyp/L0s2mY92vj1C2EfB/Gnp/ff\
+Rk/A0mOWV0H+ACXCpPw=
+exehash=13c9182a8c3b527b60e2e0c4f73d5ce349e281bff507020815536a048b3034d8
+
+541.leela_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:06
+opthash=a25eb362e6d382db558c966a388109f406c2dd1d4e0bbe1c8906a0a369648988
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNqNUMtOwzAQvPsrVr5WeaAiDlFTKQ9TAkls5SEFLhYJKTKUuMoDib/HTQm0IKH44rV3dnZmYtlo\
+b4+v9VbsapD7Xsims1DXt6LqeTs0T6Ll73Urth82vsBIlZ2CqFo3TRMj5NGIWYCNoWuNUjTG82IB\
+v47iL4W9219dglaBJqc1ugTNTxnx1BX7xM03oAX61x938ozyNGcsIWnKKSNxxBQXXf7wHoEhU8Sw\
+6uTQVvUaI88CryjsmZImPHVvKctsfKYQI+XNY/l16GxS1TtXO3ZdEns3fAL8Lx8jaoHaEkTBA1Fo\
+uhwpSJElDmc0yRw3CIPsfto0WsMoDOK7+REf3ycxwUqWL3XVd+uziW+TAGMGoT8/sr82RgKaHwI8\
+Se8TH9yeAA==
+exehash=59eb1a8fb591abab12921ae4158c3efbaa5cd7788013faed4c2482117473de7b
+
+548.exchange2_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:26
+opthash=54bed106c6ee37e8de4e41711455fdf3bb1eb9c3be994b3f3fc94ad7a4dc44a1
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2gnAItNMy4wPlI5MZEjLEaY+MLK1tBVly9BFIfn1lYwcn0Is90mpXb/e9\
+J7SYbv7M1w83q7vN6j72v3HwaLjMUOK4sJhLZEqgph9MV8vlfBpvrqfTKHRGhwmXYZYqbTWR79Fl\
+vNr8XU/u7+frwynBE9gDDTNKQ0I0zX+MsODS7XEmXTgYhsIqvNOkLEEHq8ViuZrMNvFkfT2PN3eT\
+2/lDJF9Ku8dSSfgcn80Xk8dlHA2CmOgM7Bid3BBMlUx55jQwtOM2H6N+PzSahrTdR/gFYVzFcLnN\
+XkAbrmT05TFx0jo0GPav+pf4aujq9ehLezZxPllEKRcwDsO6VZMTDSFTdbPYt7aeT2a38/5vlxmf\
+BpIkArAgMnMkAxPRHmGkRy8uepnqsV4zyp5Knmj1wVWkuPKZpYaU7+t5ttdXNxTkSWncIMZKitf6\
+rMo0KbBxaZXjYXQ2m0InU8JHeHUTrAOXyy1oXKmBYV4FGkYZ1x8YbpApV4mGCseAYc+Jhb09VrO5\
+BsJMVCrD94da3TrHg1J0RkaFokRA5JF2gSXGMrrfYwaejHMBywuIXsG0Q2OQEudFfTxBEh5J2J1L\
+Tgjdej4oHIPVpJzkzw6w5wdo1Rjjpk18doQVxObndz0jZekpPpYrhcu8v97XLbySQ4vYvBoLBX77\
+MBu/KHOVKINpDnTrzRppEEDMe5qt7dDNjoiz6lii0pjX0Kfdwt/OK20ct7xcMPWowc/q+xD/HA1H\
+g1+dBnegtdKdwmkqFGENAtMxbxTWGmq8gdnNbra7bFcHm4WeSU5kaIsS14mN4j/VbuZUq7SVHHWM\
+YKa5d0NHN6fjqTGcGsBHcmXs2cChldNQENdiRoViIMaolnTwcCDZY/MvIaKq8JYzlT8REZnSHm1h\
+xqjm880LLfD9o8bBzVuDvv7n6fmGgn+sp/g9
+compile_options=\
+@eNqtkMtOwzAQRff5Csv7pEVFSERNpSR1SyCNrTwkYGO1qYMMJbbsFAFfj5OWUB6LLJiNZzTXM3NP\
+Imr7ef3EKr5jQMiGi1q7lm4ULxuq9vWWK/rCFK/ePHgGLZNqIzG5Mx6PoWUtCHEB1JKVUgJ7nhEU\
+mieZo6BYHmvqFzmmWUFIirKMYoKSFfnsxeTiHEy12KuSzYAt+typpOTvbOtUl6/QMktCUixif5l5\
+8MearhugJLyi3wR/7u3E6DZPfUpwmvtBFEf5Xf+lPQdaIV61rkZ7rUYbXo8eKqEata7BVxhoG+7t\
+pLneLtu7j+wcAWw86V2YWS5YhN7AWQc5Dq4xyc1Np4P/lQF2gdkQraJ7ZJR4MohKHCU3w6kcaoOi\
+j6nYPLKy0TNw+qM3CEDnPp4Ph/XbRjcAFy28E3IfNALPSA==
+exehash=2a1a71c7b3cc305af6b28da5a0fa8f2ca7c28c617a74e9adedc544e84097d7db
+
+557.xz_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:33
+opthash=421bea877b6815c1807781f6a889dfd067c221fb6ed1ccf96d1b44a28a3e9490
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNrtU09vmzAcvfMpLO7On6brmqhUIsRN2ABbgUxtLxYxJvUKdoRJtfXTz5AlBe2wHHacJfDv2c/G\
+fu8RKQnL9JXnouBA7WuhpJ5Zuq4Eq2l1kJmo6BuvRP7Tsce2ZUptKKYejEYj27I8HJIZsIcHXQ23\
+Qg53jIGmQV1nDptOm7JMt8Ip9jfXADIA1ekzAwXgIibIM120QPPN8jem7ibBdP6UILxeoLUz+jG+\
+mlx/uvl8awgr9xuiHo4e/CVdOePTkhCF1Mcn9Pjc2yreELJGcUwxQVFIAPQH5tF7zmjJSypUg15S\
+eGV6pspSSVMUYlu8l+kw3YsOal4d+AebvXD22sFalHuj7MdAxos67W3YAVUqd5ypjFdGNjwBnQbz\
+nTzcTqGQhZBmw1wqeLQJpoVItZC7hnW8dUCM2OBOq0PF+L1teTPgec6FLh3peP4Fk8Sxe5bZljHb\
+I5uHwF3GZq5vXzs7R5G3oj3Cfz95ZVt4Boygfug/IyMMnrQj6DFZu+b6HxN/t7mV+biQ4HXizv3A\
+T57OYjfe21bgR18v/y8BfAfloch4rltSJ3qX5O5Obb9zVuv7XmDPqQGgjVSwuDyBuKF7pxSdD/dP\
+VWyPhDdNxjsB/wWIH4oW
+exehash=2abaee9754cf40a947430898c8a92ee6cc105d41eeca5ede0ba581993517a4ca
+
+999.specrand_ir=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:34
+opthash=defc697dfd9d9f3abf3a128aa625ba453c48adf1498e058efb28e0336037187c
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNqtUdFugjAUfecrmr5XXVyWScREKnNsSIlisu2FYCmmG7SGwpLt61dqMLiX8bC+9Lb33HvPPSeU\
+ApXpB8t5wYA81VwKZVuqrjitk6oRGa+ST1bx/MuBN9DSodIQHY8mkwm0LEw2kQ3guFHV+MDF+Egp\
+aA9SdebQ2awNy/TAneJ0dwsQBUh2Y0YSoNUu8rC+wpXn7tcA+erEaJWKDFFZllLoajIFvYPyo2ju\
+Z4iLggumn0KiM1uUFjxVXBxblOmbBJGeCeZKNhVlC2hhG2DsDCR7hhP3iUSxA6+YQ0vvjKP9Q7Bc\
+73TueguTdb0QPyYd4Pda0CI20H39jf/m6TyZmh/vJd4uE9xL/L2tmXYujMg2Xrp+4MevHSkjAbQC\
+P3we7hJA36BsiozlyoB6DgyRfy4P74zWanHl20U8AIyywWq4EaSF407MC7l/VdFQIvvW6p7PP1rQ\
+6fs=
+exehash=a68b2becada00a5b440ba02b35ca0a971d74af8ee11bb26bd2aa0276b3ad744f
\ No newline at end of file
diff --git a/example-benchmarks/spec_cpu_all_cores/config_x86.cfg b/example-benchmarks/spec_cpu_all_cores/config_x86.cfg
new file mode 100644
index 0000000..4b556c0
--- /dev/null
+++ b/example-benchmarks/spec_cpu_all_cores/config_x86.cfg
@@ -0,0 +1,653 @@
+#------------------------------------------------------------------------------
+# SPEC CPU(R) 2017 config for gcc/g++/gfortran on Linux x86
+#------------------------------------------------------------------------------
+#
+# Usage: (1) Copy this to a new name
+# cd $SPEC/config
+# cp Example-x.cfg myname.cfg
+# (2) Change items that are marked 'EDIT' (search for it)
+#
+# SPEC tested this config file with:
+# Compiler version(s): Various. See note "Older GCC" below.
+# Operating system(s): Oracle Linux Server 6, 7, 8 /
+# Red Hat Enterprise Linux Server 6, 7, 8
+# SUSE Linux Enterprise Server 15
+# Ubuntu 19.04
+# Hardware: Xeon, EPYC
+#
+# If your system differs, this config file might not work.
+# You might find a better config file at https://www.spec.org/cpu2017/results
+#
+# Note: Older GCC
+#
+# Please use the newest GCC that you can. The default version packaged with
+# your operating system may be very old; look for alternate packages with a
+# newer version.
+#
+# If you have no choice and must use an old version, here is what to expect:
+#
+# - "peak" tuning: Several benchmarks will fail at peak tuning if you use
+# compilers older than GCC 7.
+# In that case, please use base only.
+# See: https://www.spec.org/cpu2017/Docs/overview.html#Q16
+# https://www.spec.org/cpu2017/Docs/config.html#tune
+# Peak tuning is expected to work for all or nearly all
+# benchmarks as of GCC 7 or later.
+# Exception:
+# - See topic "628.pop2_s basepeak", below.
+#
+# - "base" tuning: This config file is expected to work for base tuning with
+# GCC 4.8.5 or later
+# Exception:
+# - Compilers vintage about 4.9 may need to turn off the
+# tree vectorizer, by adding to the base OPTIMIZE flags:
+# -fno-tree-loop-vectorize
+#
+# Unexpected errors? Try reducing the optimization level, or try removing:
+# -march=native
+#
+# Compiler issues: Contact your compiler vendor, not SPEC.
+# For SPEC help: https://www.spec.org/cpu2017/Docs/techsupport.html
+#------------------------------------------------------------------------------
+
+
+#--------- Label --------------------------------------------------------------
+# Arbitrary string to tag binaries (no spaces allowed)
+# Two Suggestions: # (1) EDIT this label as you try new ideas.
+%ifndef %{label}
+% define label "c6itest" # (2) Use a label meaningful to *you*.
+%endif
+
+
+#--------- Preprocessor -------------------------------------------------------
+%ifndef %{bits} # EDIT to control 32 or 64 bit compilation. Or,
+% define bits 64 # you can set it on the command line using:
+%endif # 'runcpu --define bits=nn'
+
+%ifndef %{build_ncpus} # EDIT to adjust number of simultaneous compiles.
+% define build_ncpus 8 # Or, you can set it on the command line:
+%endif # 'runcpu --define build_ncpus=nn'
+
+# Don't change this part.
+%if %{bits} == 64
+% define model -m64
+%elif %{bits} == 32
+% define model -m32
+%else
+% error Please define number of bits - see instructions in config file
+%endif
+%if %{label} =~ m/ /
+% error Your label "%{label}" contains spaces. Please try underscores instead.
+%endif
+%if %{label} !~ m/^[a-zA-Z0-9._-]+$/
+% error Illegal character in label "%{label}". Please use only alphanumerics, underscore, hyphen, and period.
+%endif
+
+
+#--------- Global Settings ----------------------------------------------------
+# For info, see:
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#tune
+
+command_add_redirect = 1
+flagsurl = $[top]/config/flags/gcc.xml
+ignore_errors = 1
+iterations = 1
+label = %{label}-m%{bits}
+line_width = 1020
+log_line_width = 1020
+makeflags = --jobs=%{build_ncpus}
+mean_anyway = 1
+output_format = txt,html,cfg,pdf,csv
+preenv = 1
+reportable = 0
+tune = base,peak
+
+
+#--------- How Many CPUs? -----------------------------------------------------
+# Both SPECrate and SPECspeed can test multiple chips / cores / hw threads
+# - For SPECrate, you set the number of copies.
+# - For SPECspeed, you set the number of threads.
+# See: https://www.spec.org/cpu2017/Docs/system-requirements.html#MultipleCPUs
+#
+# q. How many should I set?
+# a. Unknown, you will have to try it and see!
+#
+# To get you started, some suggestions:
+#
+# copies - This config file defaults to testing only 1 copy. You might
+# try changing it to match the number of cores on your system,
+# or perhaps the number of virtual CPUs as reported by:
+# grep -c processor /proc/cpuinfo
+# Be sure you have enough memory. See:
+# https://www.spec.org/cpu2017/Docs/system-requirements.html#memory
+#
+# threads - This config file sets a starting point. You could try raising
+# it. A higher thread count is much more likely to be useful for
+# fpspeed than for intspeed.
+#
+intrate,fprate:
+ copies = 1 # EDIT to change number of copies (see above)
+intspeed,fpspeed:
+ threads = 4 # EDIT to change number of OpenMP threads (see above)
+
+
+#------- Compilers ------------------------------------------------------------
+default:
+# EDIT: The parent directory for your compiler.
+# Do not include the trailing /bin/
+# Do not include a trailing slash
+# Examples:
+# 1 On a Red Hat system, you said:
+# 'dnf install gcc-toolset-11'
+# Use: % define gcc_dir "/opt/rh/gcc-toolset-11/root/usr"
+#
+# 2 You built GCC in: /disk1/mybuild/gcc-11.2.0/bin/gcc
+# Use: % define gcc_dir "/disk1/mybuild/gcc-11.2.0"
+#
+# 3 You want: /usr/bin/gcc
+# Use: % define gcc_dir "/usr"
+# WARNING: See section "Older GCC" above.
+#
+%ifndef %{gcc_dir}
+% define gcc_dir "/usr" # EDIT (see above)
+%endif
+
+# EDIT: If your compiler version is 10 or greater, you must enable the next
+# line to avoid compile errors for several FP benchmarks
+#
+%define GCCge10 # EDIT: remove the '#' from column 1 if using GCC 10 or later
+
+# EDIT if needed: the preENV line adds library directories to the runtime
+# path. You can adjust it, or add lines for other environment variables.
+# See: https://www.spec.org/cpu2017/Docs/config.html#preenv
+# and: https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
+ preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64
+ #preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64:%{ENV_LD_LIBRARY_PATH}
+ SPECLANG = %{gcc_dir}/bin/
+ CC = $(SPECLANG)gcc -std=c99 %{model}
+ CXX = $(SPECLANG)g++ -std=c++03 %{model}
+ FC = $(SPECLANG)gfortran %{model}
+ # How to say "Show me your version, please"
+ CC_VERSION_OPTION = --version
+ CXX_VERSION_OPTION = --version
+ FC_VERSION_OPTION = --version
+
+default:
+%if %{bits} == 64
+ sw_base_ptrsize = 64-bit
+ sw_peak_ptrsize = 64-bit
+%else
+ sw_base_ptrsize = 32-bit
+ sw_peak_ptrsize = 32-bit
+%endif
+
+
+#--------- Portability --------------------------------------------------------
+default: # data model applies to all benchmarks
+%if %{bits} == 32
+ # Strongly recommended because at run-time, operations using modern file
+ # systems may fail spectacularly and frequently (or, worse, quietly and
+ # randomly) if a program does not accommodate 64-bit metadata.
+ EXTRA_PORTABILITY = -D_FILE_OFFSET_BITS=64
+%else
+ EXTRA_PORTABILITY = -DSPEC_LP64
+%endif
+
+# Benchmark-specific portability (ordered by last 2 digits of bmark number)
+
+500.perlbench_r,600.perlbench_s: #lang='C'
+%if %{bits} == 32
+% define suffix IA32
+%else
+% define suffix X64
+%endif
+ PORTABILITY = -DSPEC_LINUX_%{suffix}
+
+521.wrf_r,621.wrf_s: #lang='F,C'
+ CPORTABILITY = -DSPEC_CASE_FLAG
+ FPORTABILITY = -fconvert=big-endian
+
+523.xalancbmk_r,623.xalancbmk_s: #lang='CXX'
+ PORTABILITY = -DSPEC_LINUX
+
+526.blender_r: #lang='CXX,C'
+ PORTABILITY = -funsigned-char -DSPEC_LINUX
+
+527.cam4_r,627.cam4_s: #lang='F,C'
+ PORTABILITY = -DSPEC_CASE_FLAG
+
+628.pop2_s: #lang='F,C'
+ CPORTABILITY = -DSPEC_CASE_FLAG
+ FPORTABILITY = -fconvert=big-endian
+
+#----------------------------------------------------------------------
+# GCC workarounds that do not count as PORTABILITY
+#----------------------------------------------------------------------
+# The workarounds in this section would not qualify under the SPEC CPU
+# PORTABILITY rule.
+# - In peak, they can be set as needed for individual benchmarks.
+# - In base, individual settings are not allowed; set for whole suite.
+# See:
+# https://www.spec.org/cpu2017/Docs/runrules.html#portability
+# https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+# Integer workarounds - peak
+#
+ 500.perlbench_r,600.perlbench_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only
+ 502.gcc_r,602.gcc_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fgnu89-inline
+ 505.mcf_r,605.mcf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/505.mcf_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 525.x264_r,625.x264_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/525.x264_r.html
+ EXTRA_CFLAGS = -fcommon
+#
+# Integer workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ intrate,intspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only -fgnu89-inline -fcommon
+#
+# Floating Point workarounds - peak
+#
+ 511.povray_r=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/511.povray_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 521.wrf_r,621.wrf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/521.wrf_r.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ 527.cam4_r,627.cam4_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/527.cam4_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ # See also topic "628.pop2_s basepeak" below
+ 628.pop2_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+#
+# FP workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ fprate,fpspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+
+
+#-------- Tuning Flags common to Base and Peak --------------------------------
+#
+# Speed (OpenMP and Autopar allowed)
+#
+%if %{bits} == 32
+ intspeed,fpspeed:
+ #
+ # Many of the speed benchmarks (6nn.benchmark_s) do not fit in 32 bits
+ # If you wish to run SPECint2017_speed or SPECfp2017_speed, please use
+ #
+ # runcpu --define bits=64
+ #
+ fail_build = 1
+%else
+ intspeed,fpspeed:
+ EXTRA_OPTIMIZE = -fopenmp -DSPEC_OPENMP
+ fpspeed:
+ #
+ # 627.cam4 needs a big stack; the preENV will apply it to all
+ # benchmarks in the set, as required by the rules.
+ #
+ preENV_OMP_STACKSIZE = 120M
+%endif
+
+#-------- Base Tuning Flags ----------------------------------------------
+# EDIT if needed -- If you run into errors, you may need to adjust the
+# optimization - for example you may need to remove
+# the -march=native. See topic "Older GCC" above.
+#
+default=base: # flags for all base
+ OPTIMIZE = -g -O3 -march=native
+
+
+#-------- Peak Tuning Flags ----------------------------------------------
+default=peak:
+ OPTIMIZE = -g -Ofast -march=native -flto
+ PASS1_FLAGS = -fprofile-generate
+ PASS2_FLAGS = -fprofile-use
+
+# 628.pop2_s basepeak: Depending on the interplay of several optimizations,
+# 628.pop2_s might not validate with peak tuning. Use the base
+# version instead. See:
+# https:// www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+628.pop2_s=peak:
+ basepeak = yes
+
+
+#------------------------------------------------------------------------------
+# Tester and System Descriptions - EDIT all sections below this point
+#------------------------------------------------------------------------------
+# For info about any field, see
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#hw_memory
+#-------------------------------------------------------------------------------
+
+#--------- EDIT to match your version -----------------------------------------
+default:
+ sw_compiler001 = C/C++/Fortran: Version 13.2.0 of GCC, the
+ sw_compiler002 = GNU Compiler Collection
+
+#--------- EDIT info about you ------------------------------------------------
+# To understand the difference between hw_vendor/sponsor/tester, see:
+# https://www.spec.org/cpu2017/Docs/config.html#test_sponsor
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ hw_vendor = Amazon Web Services
+ tester = TUM I13
+ test_sponsor = TUM
+ license_num = nnn (Your SPEC license number)
+# prepared_by = # Ima Pseudonym # Whatever you like: is never output
+
+
+#--------- EDIT system availability dates -------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+ hw_avail = # Nov-2099 # Date of LAST hardware component to ship
+ sw_avail = # Nov-2099 # Date of LAST software component to ship
+ fw_bios = # Version Mumble released May-2099 # Firmware information
+
+#--------- EDIT system information --------------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+# hw_cpu_name = # Intel Xeon E9-9999 v9 # chip name
+ hw_cpu_nominal_mhz = # 9999 # Nominal chip frequency, in MHz
+ hw_cpu_max_mhz = # 9999 # Max chip frequency, in MHz
+# hw_disk = # 9 x 9 TB SATA III 9999 RPM # Size, type, other perf-relevant info
+ hw_model = # TurboBlaster 3000 # system model name
+# hw_nchips = # 99 # number chips enabled
+ hw_ncores = # 9999 # number cores enabled
+ hw_ncpuorder = # 1-9 chips # Ordering options
+ hw_nthreadspercore = # 9 # number threads enabled per core
+ hw_other = # TurboNUMA Router 10 Gb # Other perf-relevant hw, or "None"
+
+# hw_memory001 = # 999 GB (99 x 9 GB 2Rx4 PC4-2133P-R, # The 'PCn-etc' is from the JEDEC
+# hw_memory002 = # running at 1600 MHz) # label on the DIMM.
+
+ hw_pcache = # 99 KB I + 99 KB D on chip per core # Primary cache size, type, location
+ hw_scache = # 99 KB I+D on chip per 9 cores # Second cache or "None"
+ hw_tcache = # 9 MB I+D on chip per chip # Third cache or "None"
+ hw_ocache = # 9 GB I+D off chip per system board # Other cache or "None"
+
+# sw_file = # ext99 # File system
+# sw_os001 = # Linux Sailboat # Operating system
+# sw_os002 = # Distribution 7.2 SP1 # and version
+ sw_other = # TurboHeap Library V8.1 # Other perf-relevant sw, or "None"
+# sw_state = # Run level 99 # Software state.
+
+ power_management = # briefly summarize power settings
+
+# Note: Some commented-out fields above are automatically set to preliminary
+# values by sysinfo
+# https://www.spec.org/cpu2017/Docs/config.html#sysinfo
+# Uncomment lines for which you already know a better answer than sysinfo
+
+__HASH__
+505.mcf_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:47:11
+opthash=5737cf0e0d89c6869a2881cb41c2cd15f2e18ec5db2c750058f995d78d11b73f
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNq1Ul1PgzAUfedXNH2vm9EYt8gSYKgoo82ARH0hWMusQqu0mMxfb4GxucToXuxLb+89vR/n3EgK\
+VOWvrOAlA/JNcynU1FK65lRndSOeeJ19sJoXaxseQ8uYykCMfTQej6FleXhBpgCOGlWPHrkYrSgF\
+7UFKP9l0MmnN6uwUIAqQHAocSYDmMfE9c0Vz302vDCpQb4xm70rWehPNnDTBWZwSsvTjOMPEjxYE\
+oBVA+MRkzWv6bItc8w8GtgcVQqK+fZSXPFdcrHpnI1ReMPNNP6O2j4p/5l03fbjggushLMq18a5E\
+cz5BXJRcMPOksqqk6Kv0/YXETAYulGxqymbQ8qbA8+w/yeiB2L3BJLHhHjPQMmx6JL0MnavYxPZZ\
+6qKuH3nXmTcgDqQNWngKTL1gETz45tsPJHYQ/y5ZOrvs/81mN1Ffk+Bl4rhBGCT3w+AdwdAKg+j2\
+kB3rnb+ux4V8fGFUq1mLLKvd2mwVAKCTJ5wfouMBnJpcCye5zsLAbQktq016nLbafxP+C37ADqE=
+exehash=c3ef8d086929e175d8c740f973851247759390233c84140a0f4310f137c36ff5
+
+505.mcf_r=peak=c6itest-m64:
+# Last updated 2024-06-27 08:48:21
+opthash=6804b57c3c4683509df403791e0b2fdb5e33b25419c71b81edddd2810afe1671
+baggage=
+compiler_version=\
+@eNrtUMtqwzAAu/srdGxhC22y03ryTEINXWJsZ9BTyVzncbGL42z07+eUfsZAICQkHSSoUnswdvkq\
+peJNfWmETvROBmOwab8XFxfsiyzPdq95sTz02/bpEOZv9zANY8SGbZHv8gJVsBbK9/G3CxaVX9y1\
+i5N3L+DOZESP04yEfo3Nz9gBc1JxXJ0lGIveB5i0PbkhsbtO68KcAXq0aTX164akZuhcvB/gfIT9\
+se7R+ywlO9Ja0w9+4vqMZFVc16VSqBoJCkGl5qw9UQnRStGoMiNEpB/y/x/+AMbCphg=
+compile_options=\
+@eNrFk1FvmzAUhd/5FZbVVzeJNU1qVSoBYS0bASuAtO7Foo5JvQWc2U6r/fuZurSrUmVk0zS/gHTO\
+tX3P9ZfJDrX1N96IDQdya4Ts9LmnjRLMULXrVkLRe65E88OHM+gZVYuOPghz58PHf+hZVdsqK59O\
+p1PoeVG+ILNzACc7rSa3opusGQP9QtqsfHZ21v+2798BxACSw6GnEqB5QeLIfrJ5HFZX1pXoLWf0\
+u5bKPKk0qMqcFhUhy7goaE7ibEEAarZK9i2gNe+4qg23xWuA8qbWtrKtFbvzu9qIe269GyPB80JN\
+J5HrF9UbUWvRrZ3gzkuJvSm40HKnGL+EXmRbiyL/t909OfPwY05KH77qFXp9QBGpPqTBVWHF1407\
+OYyz6JpGg2VkFNDLbS0JimJGh9K9cJzJ3itZJF9i6zgUlTPHn8tl8HKbN0Jzt3Y+ki/LIEzSpLwZ\
+unsMEnppkn0a9TjcbP54rBfy9itnRl/222zal3E/DwEAN6J0PmaYRwXWb7sIymuaJmGf1qYdjsqr\
+/i388hCWVWaFEybbtu5WDh78v+DZ6X/IDR7NDT7ADT7MDf4LbrDjBu9zY3Nx+nhk8Ehk8Dhk8PHI\
+HDPMkbTg0bQck1W/7R4t+E1afgKVOPDc
+exehash=662c677d0f4477ff312c9eb7844c9c73439a46ba32eca9e13cdf6de287004be5
+
+500.perlbench_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:50:47
+opthash=5bd0f9c928046a083e99de11face2bfb8b723401b2fc209a2a9d57c5d6ced82c
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNrVU8GOmzAQvfMVFneHVK2qJlpWAuIktCS2MEhpLxZLTNYtmJVNVt1+fQdI0kbdqntoD7WEGM+M\
+5s3Me962GjfFF1mpWqL2oVOttnPHdkaVnTBHvVdGPEqjqifffeU6YFpIAXsynU5dx4nohs2R6x2t\
+8e6U9g5lifqDbbf3y9msN5u3bxAuEW7PAJMW4QVnJILfdkHCfAUGI2kiIpoShOMJfHtlOy+mYJUP\
+hfYy1Ui8Vqm0Z8862ySYFcZKAy75tfOMBMM+yNIUeg8lFzQPEyJ4EvA14aJHjIPEn57QRZBnVPCc\
+sZRwLigj2w2DmEiCdEXEMk4Iv1z7m+A0TyPS+4YrXS45yUQYZ9yHGRE+IExfw8CFKe99XXTqUaLT\
+OUEm8Tbfid2QXekWj5vGRa0Kq/RhdB61LSoJZbp73K+sUd+KYXFjuFJadeewrp/Ae9DHdzOsdK00\
+7KAq26Zp9RUu6yFvbHs0pbx1nWiOosj/I29jIg3fU5b57hWJrgPERyxfJsGKQ+ya0CEakm20FpeE\
+/55h16FzBJuIN/EnAhM9Q/cwN6NpFoRxEmcfz4v5QfxQhOyyNBDReTX/WglDVyPms72xvi3o8MNL\
+nvLo/J3Uf9U5nJv27rMsO3vbJ9QNujyKi5oQGqSWLF6iyb/CAqBtgmwNrrCnoG5ODdC8V/pPMv8O\
+33uEXg==
+exehash=da51419028397adf783795465d5e7d46b7544819a1fdd34a01c495940d38a15e
+
+502.gcc_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:32
+opthash=84aa2d950cccb6fb8bcbdd2eabcd22c071c78c26fd529e000c30672e1575b736
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNq1UtFumzAUfecrLL87Sbd1WqJSCRyaeCPYCjBte7GoY1JvYHcYKrVfXwOlW6Vqy0stIa7uPb73\
++JybGI3q4pcsVSWBuW2V0Xbl2bZRouVNpw+q4XeyUeW9D8+g50LrIC6eLRYL6HmY7tgKwHlnm/m1\
+0vOjEKA/yLYHXyyXfVh//ACQAMhMA2YGoHXKIux+yToK8w1AZNZ/c6VF1R3kENtbKfhva5r2Cc7P\
+F++mMMgzytOcsX2UppyyKNkxVyMJ3+C+7zb4GnFMkyuy4VtH4ggQfe+4FI248XXRqjsJng8qtUHj\
+o1FRqcIqfRyTnbZFKd219gb17Gv1UAxvGMul0qqdyrq6d9mj7j4tkdKV0u4ZpTB1bfQ4ZWQeM6cH\
+uLCma4S8hB5eAYz9/0o4Amn4mbLMhy/0hJ7zALP8Kg42qau91HaohlGCt3wCvKnY0KMr4EiSHfkR\
+uWGvKD9Aom/ZPuB44vTWFgwyjDMZ3WdBSGKSfZ/UGlyBXkySL6es85j8505dmOufUrT2skdW9Z9d\
+e7YNgMHTeH2K+Sdo6nrtgmzLYxL2glb1U3ua9wvz17Y8AtEfKzw=
+exehash=819acba0a47fd12bc3c7da7c85264941d8f89011df65195a6ab53f5e5fbd60d0
+
+525.x264_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:46
+opthash=0afeb5ce7b3395d1b57166aa3e47fd089b6cf4afeb7ab0e5b2a8830cc74f222e
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNrtU99vmzAQfuevsHh3Sdssa6JSCQhr2Qi2+CG1e0HUMalbsCcMVdq/fgZCl0hVm5dp0oRfON8d\
+d+fvuy8QHJbZE81ZQYH4VTPB5UKTdcVInVYNX7MqfaYVy19M/VTXlClVirJPJpOJrmkOWuEF0I1G\
+VsY948aGENAeKOu1Sebz1ixnUwAJgGJocCIAXEbYddQnWLp2cg2gV6wpEetUVsRgXGV727PZtL3u\
+mQbd1lUm9z1ElKXgu3qplcQojRKMQzeKUoTdYIUPYvZd7KJw6YbmZHt6dj79Mvt6oUbcAIjO1aRZ\
+RR5MntXsmYK3A3MuYA8JzAqWScY3vbPhMsup+q1+gO3bSvaadS/swznjrB7CvHhR3g1vLuaQ8YJx\
+qq676bsu/ZQ+VmiBSymaitArXXMWwHHMTwHuE5H9HeHY1A/Q1jXFkIOTb751HanYIfJd1HYD5yYd\
+Ev4hFbqGFkA9wVt5P101yju8dCnubRxaqTNM/LcJ6kDqe2IUxpbt+V58N2DZcaZrvhf8OEYKvfPD\
+jbsU94+U1PKqzSzKP5v4RioAHeP+8pjVOAJTVWtlxTep79ktoEW5K4+Sdp32dmlU/Kj4UfGj4kfF\
+j4ofFf9/Kv43V6SZEg==
+exehash=01416fd84991bd7d6baf896abc1c1c5b67a6cbe5009d630c32adf0b3f31d9593
+
+557.xz_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:50
+opthash=db207b5f813628e5cd301cc205d208b033d0bd4d144e6245ed5ac334901d565a
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNrtVN9vmzAQfuevsHh3frRd10SlUkLchC1gRGBq+2I5jkm8gh1hUq3962egtESttrzsbZbA992d\
+7+C7Tw6UhDl95KnIOFD7Uiipx5YuC8FKUhzkRhTkiRcifXbsoW0ZU5sUY/cGg4FtWS72wzGw+wdd\
+9NdC9reMgWpBXW4cNhpVZn55ASADULUNegrA2SpErtmCGZom81dMJkmMyfQ+RjiaocgZ/BqenV98\
+ufx6ZRIWkx+IuDi49eZk4QzbIz7yiYdbdPdwVGqVhGGEViuCQxT4IYBezzx6zxnJeU6EqtCOwjOz\
+M5XnShojE+vsJad9uhcdVL068EM223H22MFa5HvD6btjw7OSHhXsgILKLWdqwwtD2BZAfG54owXb\
+OZKW4omDtwVTqWAzIEgzQbWQ28Z5kJqm3Bwrd7BiOhcvtOa7CadCirINy+zZeLfycDWCQmZCmi9N\
+X/+p7tKQuAzN7MC1VoeC8RvbcsfAdZ2/jrtJxNNvOIwd+2j2tmX04obJ7XIyX5nYsQ7q6BQF7oIc\
+JfwXBi9sC4+BIdTzvQdkiPlEJXUKuoujCXFb/v61XOqRNT1DHMWTqbf04vu3wVUKsq2lF3w/5Zpo\
+nH/U/7Va/+Ss1Degs971BUAtvuXsFJWeQGhdCyeVjDsa/g0wE5s9
+exehash=acb8529a5e3479c88f091ea0f1bef7200dd16b81160a52c3b7c015d2bfe2c122
+
+999.specrand_ir=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:51
+opthash=931cfbab34441c8f31ca9285c2a67f7e5e211e6824cf85c11aafbbf579d17f25
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNq1UlFPgzAQfu+vaPrebUZjHJElG8OJMiAbS9QX0nWFVaFdWlgyf70Fgm7G6F68F4777u67+66B\
+FLggbyzlOYNyV3IptAV0qTgtE1WJDVfJnimeHmx0gYBxtUkxfm8wGCAAnHAeWRD1K636ay76GaWw\
+NqzLjU2Hw9otrq8gphDLjqAnIZ4uI9cxn2DqTlYziD29Y1QRscFUFoUUpi6DOLw05UTRrS1IyfcM\
+fhpOhcTtnJjknGgusjZYCU1SZsrKLa4JC/5OGtoWTrngZQeL/GCimahuhpiLnAtmfrsBapZmzMSP\
+zArwVstKUTZCwLGg49h/bt0mhpOHMIptdCIBAkY2J1rd+ePZ0mCncjToxA2c+6RL+K4PAqEFTV9v\
+7r24Bv9BrCbFfYoX48Tp2vy3as3kLWcULuLxxPO9+LlbsBESAd8LHs95NG3w12dwK9evjJZ6BI/s\
+S2YImxv403OOdYagTa9wVV/z6JQfz5n7Ig==
+exehash=cec9428ef810cda0cdbbda5c0004d7a8a485862af3c544e720395406a63b22de
+
+520.omnetpp_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:52:52
+opthash=7170896242f47d9d1bbaf67da665ab85d63038e800e0b4c26958ce80f7bad925
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNq1UUtPg0AQvvMrJnslWzAaD6Q04bG2KGU3PGL1QihsK1rYhoeJ/94tltgmRntxLjOZ5/d9E4ga\
+V9kb35Q7DmLflaJuDaXtmjLv0qavi7JJ33lTbj5MdIUUGbayRcYTXdeRojh0yQxAWt822rqsta2q\
+wsFw2xVmrqr6NeDq9gZwDliMByYCsBsx4kgXuMRO5oC9tqz6XdaJRttLV/D9aU7GlSj4Tg48evEi\
+DUhsJ57vkvC4KbWSmKZRwlhIoiiljARLJmFsAdMDhKzJX8w668p3DqMdJ30m8cG0FX2T8xlSHAOc\
+1cr8k9PYSe17ymITnVFEipTFYcmdb80jWTunO1RtEjiLdGz4D/5IoQZIbN7Seybyxg9iDEjIKg6t\
+lNEwtmzP9+KnEfCgDVJ8L3i45Mlfyd8kh6lYv/K8a2dwYt+yAQyq+u4l8l9AbthFk8N3Tl7zCQlV\
+2HQ=
+exehash=b98c3655648414264b6708282e0f735e987abd609b58f4f492951afed00a5da9
+
+523.xalancbmk_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:53:31
+opthash=33fe2c11095c98ec29f6fc686a6380260f271a7bab6c5a1db6ac89895719188f
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNrtVN1umzAYvecpLG4jQrZVu4hKJQe8lA6whWFiu7GooZk3sCtMovbtZ0C0ZOu0StPuZgnx/ZzP\
+NucckSjptOX3+k40NVD3vVBSby3dd4L3rDvKSnTsVHfi7tGz39iWCbWBmHi92Wxsy/JxTLbAdo+6\
+c2+FdA+rFRiWo/vK46vV5h1w2vcXwOHAUfMBawWcgBLkm1cSoF2+NwMBJIQlmGXXKYIBNYUCRjBh\
+YRKjmMV0zyIMA5QCJ1yb56HueK35c+RWqj3PXNHeN4uSLh8W2bEXjRvrQ6TKynyVG8q4blX3+DMk\
+60qpuZowXMnTACibUnJXSN4cq9pclaT4hhVxRGBKhys+FfIsjOZ0atI5pbC48BfJ2zkOcDyHn2AU\
+BjDD45TZjuUUzYwgSuEezaSMfDKYZ5jRnJDUdBkmKIkJcA7AwYMOZce/erLsxakeNZpmojDJC7As\
+ECMYuNTqaGi4si1/C/yi8P4o8ozEuxtMMs8+09y2jE98kn+I4J6a3rn+Y3eHEv+amQ2eMP8t8W8s\
+YVt4C4xGYRx+QYboFwwyKkJwmsFdGIXZ51myyS5jFxVZCtmLGDK4wSA/vubfMBV/Y9JfXXqpbr/V\
+vNdXYLGejQbA6MMoeI1h/5qG8SScD25fWP0Hz/mUwg==
+exehash=183abcc0cc08586789e438463e5711c1db96c362d9ee7865f408410700819d6c
+
+531.deepsjeng_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:53:34
+opthash=07012bbeb02623a9b192a4e2da6bb7b84266044e1ece5ba0911465810254d88d
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNqNUV1vgjAUfe+vuOkrqbJs2QMRE8DOsQFt+Eh0L40ium4TloIm+/crTKImy8Z96W3vuefecxpV\
+Jdmv3out/Cig+mxkVdYWqhsl80aoQ7mRShwLJbdfNr7BSKe1huh8ZJomRshjIbcAjw+1Gq9lOd4Z\
+BrRB6mZj54Zh3gLZ398ByYFU/YBRBWSWcOrpI5pRN5u399AJAhHSkMXLU1k4WcpEknEe0yQRjNMo\
+5Jp7B4S1vCuVv9rlqpHHAvo4dQZcD4VJXR1UXkwx8izwFgv730V7JHOfGE9tfLU3Rlqrx7OHwJkn\
+unatoau6NPIexRkwUBRGzAI90A/9F6obf1HY0dNFGjuCszh1XD/w02W/RScYo8CPnod8x8/jXz7C\
+pFq/FXlTT+Eizl4AdFYFsyGeDhDXcbGstfzC728z2Lls
+exehash=98de8bf384c125395fe5156fb9438fe092b94ac97dcbe4e2b23c2ada5f2a6e6f
+
+541.leela_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:53:38
+opthash=2f1f63df0864751b52a7f6e3cfd3684a57c27f1a4cfb14559bd66349a00db30e
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNqNUNFOwjAUfe9X3PR1KcxofFgYyTYqTsfasC1BXxoYA6uymnaQ+PeWwSIkBrkvvbn39Jx7Tqpq\
+spl/VCv5WYH6aqSqjYdMo2XZCL2tl1KLXaXl6tvHNxjZ1liI7Xuu62KEIjbhHuD+1uj+Qtb9tePA\
+vohpln7pOO4tkM39HZASiOoEegrIKOM0sk86omExBhL3jjMRFDkTWcH5lGaZYJymE24J10DYnmyu\
+yze/njdyV0FXx58Jt0owMGqry2qIUeRBNJv5/17XIVn4xHju47NjMbIGI148JME4s7vzw9ttSNPo\
+UXSAy04wYh5YlXgSv1KL/sNWy0ln+TQQnE3zIIyTOH/ppFuXGCVx+nxN8IfhpfBgoBbvVdmYIZzU\
+bwAAbT7J6JogrzDXcrFin/NJyD/OSrJw
+exehash=2c0af257071500bf32683ff3c5d93f22651e278dadbe5469d5dc7cbbce6960a2
+
+548.exchange2_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:55:19
+opthash=22486be71bab3ebdc2399d31e9cc31a24122adedea4fb03610264eb5ac8c6376
+baggage=
+compiler_version=\
+@eNotjsFqwzAQRO/6ijkm0JrE7qk5ucJKBallZLnQU3AdOdZFKrLckr/vOgQWhhlmHgvBz5+VbqWq\
+z6oxJK/sWHcQIabYe2y678WnBfsiy7Pdc14sd/+yfSSMh59bdNcpYcO3yHd5ARGtRRvG9NdHS6TF\
+X/rkgn+C9EPGzORm0I1rbX7UDpjJpWlNljhYjCFiILbzV1J/cSthzgAzWaLSvlaMlvRkuh3gQ4L9\
+tf6++6g0fy9rU77JkzRfoEhIU1dtC6E0SjSlNpJ3p1Kj6XSj2ipj/9/qVFs=
+compile_options=\
+@eNqtkFFPgzAUhd/5FU3fYTMaE8lYAqybKKPNgER9aRgrs+ooadmi+/UWNnGaJfJgX3qbe3rPuV8k\
+SnOTvbKCvzEgqpqLUtmGqiXPayq35YpLumOSFx8OvICGLpWW6NoaDofQMKaE2ACqiuVVBcxJTJCv\
+r2iCvHR2fFM3TTCNU0IWKI4pJiiak69eSK6vwEiJrczZGJiiq62iqvierazi5h0a2sQn6TR0Z7ED\
+f9m0XQ9F/i39ITjr24rRQ7JwKcGLxPWCMEgeuy9NHGj4eN5sNdgqOVjycrAuhKxlVoLvY250bjNv\
+Eh+pWQKYa2DiS93LZP7slFnNd6xbSI+1wdR3/hx7EGLvDpNEBzv1+FcQ2AbaIZgHT0grz0TvxSoM\
+ovs+rA7VOUDdGYnlC8trNQann7vlAWjJhJM+CHss187CacP4BPAndKLddA==
+exehash=94f8ce66afd6ebe33a163a04e457e06501b1cb938789a08a98395f3f6afb6075
+
+500.perlbench_r=peak=c6itest-m64:
+# Last updated 2024-06-27 08:58:19
+opthash=26746eefd4c701d69be2dd89ab217f8349f05d47b236ed37fbc9e2bcc764ae86
+baggage=
+compiler_version=\
+@eNrtUMtqwzAAu/srdGxhC22y03ryTEINXWJsZ9BTyVzncbGL42z07+eUfsZAICQkHSSoUnswdvkq\
+peJNfWmETvROBmOwab8XFxfsiyzPdq95sTz02/bpEOZv9zANY8SGbZHv8gJVsBbK9/G3CxaVX9y1\
+i5N3L+DOZESP04yEfo3Nz9gBc1JxXJ0lGIveB5i0PbkhsbtO68KcAXq0aTX164akZuhcvB/gfIT9\
+se7R+ywlO9Ja0w9+4vqMZFVc16VSqBoJCkGl5qw9UQnRStGoMiNEpB/y/x/+AMbCphg=
+compile_options=\
+@eNrtVFFv0zAQfs+viCJevXYRQtpEJqWpuwbS2ooTafBiZanTGRqnst3B+PXYdVuYOm0BhgQIS1XP\
+d5e7831337wToK0+soavmN+tNe+EOveUlrzWVG7Egkt6yyRv7qLgNPC0rLign7i+iYKtHHjGqsxX\
+xnwyHA4Dz0vQDJ+e+8Fgo+TgmovBsq59e4DSi6g+O7Ni++qlD2ofdPukJ50PxgTDxPzNx3BUXhoB\
+wzyjCcqhD9IT81twpQcpMlK9rsSg4C0DU54ztddMi1kGcCUVk0bFPuuBZEZQa1bLSixMyDEqRxmk\
+JIvJFBJqM6ZxFg132WlcFoiSEuMcEkIRhvMZNjaaxfklpJM0g+RwtTdKUJkn0Oq2VzSZEFjQUVqQ\
+yLzRB81adra7YMkEk5VmRrf0AWoqpU0fKlnfRKLS/NYU2qx05+/Orp4snZdX9MqFEh1w0IBqxSvF\
+xdIpN0JVDTPB9A2w/Wz5l2rbVWduuOB6bxaru3vxsQ39WnUbWbOLwEsMdEkSPYnezhON3iBcRME9\
+LAPPDkCCy0kWXxJjvA+sM4/gPJnSg8dfD3XgIfMqHBNyenjVEfbOyXQsnaXvofF4bBJcnzDKi3iU\
+Zmnxbt/Jb0Ph4sGrIo9pcsj6TGPi8rvgD1aBbQGmlre91n2r+6ltOF4Fc1531x9YrdWFdVi1/mFv\
+DmPo+25Is3GfcX5uYGzmWVxMjW5kUVm1+2pQaRfmu23Jy7kxvKi7tjWT6xg0/M+gRwy6UX86eYa9\
+yTN8hDzDx8kz/CfJM3TkGR6Tp4Hd2fuvZ/g0b4a/kzfDfrwZ/jhv9tyBX6HMsDdlPjMmNvMRZYYP\
+UuZXamMstg==
+exehash=90f4c9c52de6dda1786d304e36f66611bb9d014dd912dc84023e8306644b6e51
+
diff --git a/example-benchmarks/spec_cpu_all_cores/configuration.yml b/example-benchmarks/spec_cpu_all_cores/configuration.yml
new file mode 100644
index 0000000..cce6ef1
--- /dev/null
+++ b/example-benchmarks/spec_cpu_all_cores/configuration.yml
@@ -0,0 +1,300 @@
+configuration:
+ name: "SPEC CPU2017 Integer Rate - All Cores"
+ description: "Benchmark analyzing CPU throughput using all cores (include multithreading)"
+ directory: spec_cpu_all_cores
+ cron: "0 * * * *"
+ instance-number: 1
+ instance-types:
+ - c3.2xlarge #Intel
+ - c4.2xlarge
+ - c5.2xlarge
+ - c6i.2xlarge
+ - c7i.2xlarge
+
+ - m5a.2xlarge #AMD
+ - c5a.2xlarge
+ - c6a.2xlarge
+ - c7a.2xlarge
+
+ - a1.2xlarge #Graviton
+ - c6g.2xlarge
+ - c7g.2xlarge
+ - c8g.2xlarge
+
+nodes:
+ - node-id: 1
+ ansible-configuration: ansible.yml
+ image-x86: ami-040ae5b7ceb70e213
+ image-arm: ami-0fb858c88e8a6483e
+ benchmark-command: ./run_spec.sh
+ output-command: python3 format_output.py /home/ubuntu/specbench/result/CPU2017.001.intrate.csv
+
+plots:
+ - type: scatter
+ title: SPEC CPU 2017 Total Score
+ yaxis: Score
+ series:
+ - y: SPECrate2017_int_base
+ legend: Int Rate Base
+ - y: SPECrate2017_int_peak
+ legend: Int Rate Peak
+
+ - type: scatter
+ title: 500.perlbench_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 500_perlbench_r_base_selected_time
+ legend: Selected Base Time
+ - y: 500_perlbench_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 500_perlbench_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 500_perlbench_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 500.perlbench_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 500_perlbench_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 500_perlbench_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 500_perlbench_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 500_perlbench_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 502.gcc_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 502_gcc_r_base_selected_time
+ legend: Selected Base Time
+ - y: 502_gcc_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 502_gcc_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 502_gcc_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 502.gcc_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 502_gcc_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 502_gcc_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 502_gcc_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 502_gcc_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 505.mcf_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 505_mcf_r_base_selected_time
+ legend: Selected Base Time
+ - y: 505_mcf_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 505_mcf_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 505_mcf_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 505.mcf_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 505_mcf_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 505_mcf_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 505_mcf_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 505_mcf_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 520.omnetpp_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 520_omnetpp_r_base_selected_time
+ legend: Selected Base Time
+ - y: 520_omnetpp_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 520_omnetpp_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 520_omnetpp_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 520.omnetpp_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 520_omnetpp_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 520_omnetpp_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 520_omnetpp_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 520_omnetpp_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 523.xalancbmk_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 523_xalancbmk_r_base_selected_time
+ legend: Selected Base Time
+ - y: 523_xalancbmk_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 523_xalancbmk_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 523_xalancbmk_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 523.xalancbmk_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 523_xalancbmk_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 523_xalancbmk_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 523_xalancbmk_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 523_xalancbmk_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 525.x264_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 525_x264_r_base_selected_time
+ legend: Selected Base Time
+ - y: 525_x264_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 525_x264_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 525_x264_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 525.x264_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 525_x264_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 525_x264_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 525_x264_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 525_x264_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 531.deepsjeng_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 531_deepsjeng_r_base_selected_time
+ legend: Selected Base Time
+ - y: 531_deepsjeng_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 531_deepsjeng_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 531_deepsjeng_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 531.deepsjeng_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 531_deepsjeng_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 531_deepsjeng_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 531_deepsjeng_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 531_deepsjeng_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 541.leela_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 541_leela_r_base_selected_time
+ legend: Selected Base Time
+ - y: 541_leela_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 541_leela_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 541_leela_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 541.leela_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 541_leela_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 541_leela_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 541_leela_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 541_leela_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 548.exchange2_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 548_exchange2_r_base_selected_time
+ legend: Selected Base Time
+ - y: 548_exchange2_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 548_exchange2_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 548_exchange2_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 548.exchange2_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 548_exchange2_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 548_exchange2_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 548_exchange2_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 548_exchange2_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 557.xz_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 557_xz_r_base_selected_time
+ legend: Selected Base Time
+ - y: 557_xz_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 557_xz_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 557_xz_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 557.xz_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 557_xz_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 557_xz_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 557_xz_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 557_xz_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
\ No newline at end of file
diff --git a/example-benchmarks/spec_cpu_all_cores/format_output.py b/example-benchmarks/spec_cpu_all_cores/format_output.py
new file mode 100644
index 0000000..8508478
--- /dev/null
+++ b/example-benchmarks/spec_cpu_all_cores/format_output.py
@@ -0,0 +1,59 @@
+import re
+import csv
+import sys
+import json
+
+def parse_spec_cpu_output(input_file):
+ with open(input_file, 'r') as f:
+ data = f.read()
+
+ lines = data.strip().split("\n")
+
+ parsed_data = {}
+ parse = False
+ for line in lines:
+ if line == "\"Full Results Table\"":
+ parse = True
+ elif line == "\"Selected Results Table\"":
+ parse = False
+
+ if parse and re.match(r'^\d{3}\.[a-z0-9]+.+', line):
+ fields = next(csv.reader([line]))
+ name = fields[0].replace(".", "_")
+ base_run_time = fields[2]
+ base_rate = fields[3]
+ base_selected = fields[4]
+ peak_run_time = fields[7]
+ peak_rate = fields[8]
+ peak_selected = fields[9]
+ if base_selected == '1':
+ parsed_data[f'{name}_base_selected_time'] = float(base_run_time)
+ parsed_data[f'{name}_base_selected_ratio'] = float(base_rate)
+ else:
+ parsed_data[f'{name}_base_not_selected_time'] = float(base_run_time)
+ parsed_data[f'{name}_base_not_selected_ratio'] = float(base_rate)
+
+ if peak_selected == '1':
+ parsed_data[f'{name}_peak_selected_time'] = float(peak_run_time)
+ parsed_data[f'{name}_peak_selected_ratio'] = float(peak_rate)
+ else:
+ parsed_data[f'{name}_peak_not_selected_time'] = float(peak_run_time)
+ parsed_data[f'{name}_peak_not_selected_ratio'] = float(peak_rate)
+
+ spec_base = re.search(r'SPECrate2017_int_base,([\d.]+)', data)
+ spec_peak = re.search(r'SPECrate2017_int_peak,([\d.]+)', data)
+
+ if spec_base:
+ parsed_data['SPECrate2017_int_base'] = float(spec_base.group(1))
+ if spec_peak:
+ parsed_data['SPECrate2017_int_peak'] = float(spec_peak.group(1))
+
+ print(json.dumps(parsed_data, indent=4))
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python format_output.py ")
+ sys.exit(1)
+
+ file_path = sys.argv[1]
+ parse_spec_cpu_output(file_path)
diff --git a/example-benchmarks/spec_cpu_all_cores/run_spec.sh b/example-benchmarks/spec_cpu_all_cores/run_spec.sh
new file mode 100644
index 0000000..63b93c5
--- /dev/null
+++ b/example-benchmarks/spec_cpu_all_cores/run_spec.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+arch=$(lscpu | grep "Architecture" | awk '{print $2}')
+cores=$(( $(lscpu | grep "^CPU(s):" | awk '{print $2}') ))
+
+cd /home/ubuntu/specbench
+source shrc
+if [[ "$arch" == "x86_64" ]]; then
+ runcpu --config=config_x86 --iterations=2 --copies=$cores --reportable intrate >> log.txt
+elif [[ "$arch" == "aarch64" ]]; then
+ runcpu --config=config_graviton --iterations=2 --copies=$cores --reportable intrate >> log.txt
+fi
diff --git a/example-benchmarks/spec_cpu_half_cores/ansible.yml b/example-benchmarks/spec_cpu_half_cores/ansible.yml
new file mode 100644
index 0000000..76ec359
--- /dev/null
+++ b/example-benchmarks/spec_cpu_half_cores/ansible.yml
@@ -0,0 +1,80 @@
+---
+- name: Install and run sockperf
+ hosts: localhost
+ tasks:
+ - name: Ensure the directory exists
+ file:
+ path: /home/ubuntu/specbench
+ state: directory
+ mode: '0755'
+
+ - name: Mount image
+ become: true
+ command: mount -t iso9660 -o ro,exec,loop cpu2017-1.1.9.iso /mnt
+ args:
+ chdir: /home/ubuntu
+
+ - name: Install SPEC CPU
+ command: ./install.sh -f -d /home/ubuntu/specbench
+ args:
+ chdir: /mnt
+
+ - name: Copy x86 config
+ copy:
+ src: /home/ubuntu/spec_cpu_half_cores/config_x86.cfg
+ dest: /home/ubuntu/specbench/config/config_x86.cfg
+
+ - name: Copy ARM config
+ copy:
+ src: /home/ubuntu/spec_cpu_half_cores/config_graviton.cfg
+ dest: /home/ubuntu/specbench/config/config_graviton.cfg
+
+ - name: Add flags tags to gcc.xml
+ community.general.xml:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ xpath: /flagsdescription
+ add_children:
+ - flag:
+ name: std-c-plus-plus-14
+ regexp: -std=c\+\+14
+ class: portability
+ - flag:
+ name: Wno-error-register
+ regexp: -Wno-error=register
+ class: portability
+ state: present
+ pretty_print: yes
+
+ - name: Add placeholder for C++14 description
+ community.general.xml:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ xpath: /flagsdescription/flag[@name='std-c-plus-plus-14']
+ value: DESCRIPTION_STD_C14
+ state: present
+ pretty_print: yes
+
+ - name: Add placeholder for WNo-Error description
+ community.general.xml:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ xpath: /flagsdescription/flag[@name='Wno-error-register']
+ value: DESCRIPTION_WNO_ERROR
+ state: "present"
+ pretty_print: yes
+
+ - name: Replace DESCRIPTION_STD_C14
+ replace:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ regexp: DESCRIPTION_STD_C14
+ replace: Compile source code with C++14.]]>
+
+
+ - name: Replace DESCRIPTION_WNO_ERROR
+ replace:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ regexp: DESCRIPTION_WNO_ERROR
+ replace: Disable treating the use of the 'register' keyword as an error.]]>
+
+ - name: Make run_spec.sh executable
+ file:
+ path: /home/ubuntu/spec_cpu_half_cores/run_spec.sh
+ mode: '0755'
\ No newline at end of file
diff --git a/example-benchmarks/spec_cpu_half_cores/config_graviton.cfg b/example-benchmarks/spec_cpu_half_cores/config_graviton.cfg
new file mode 100644
index 0000000..8d73351
--- /dev/null
+++ b/example-benchmarks/spec_cpu_half_cores/config_graviton.cfg
@@ -0,0 +1,698 @@
+#------------------------------------------------------------------------------
+# SPEC CPU2017 config file for: gcc / g++ / gfortran on Linux ARM systems
+#------------------------------------------------------------------------------
+#
+# Usage: (1) Copy this to a new name
+# cd $SPEC/config
+# cp Example-x.cfg myname.cfg
+# (2) Change items that are marked 'EDIT' (search for it)
+#
+# SPEC tested this config file with:
+# Compiler version(s): 5.3, 6.2
+# Operating system(s): Ubuntu 16.04
+# Hardware: Cavium ThunderX, HPE Moonshot
+#
+# If your system differs, this config file might not work.
+# You might find a better config file at http://www.spec.org/cpu2017/results
+#
+# Known Limitations
+# It is possible that you might encounter compile time or run time errors
+# with older versions of GCC (for example, 4.x)
+# Recommendation: Use a newer version of the compiler.
+# If that is not possible, try reducing the optimization.
+#
+#
+# Compiler issues: Contact your compiler vendor, not SPEC.
+# For SPEC help: http://www.spec.org/cpu2017/Docs/techsupport.html
+#------------------------------------------------------------------------------
+
+
+#--------- Label --------------------------------------------------------------
+# Arbitrary string to tag binaries
+# Two Suggestions: # (1) EDIT this label as you try new ideas.
+%define label spec_graviton # (2) Use a label meaningful to *you*.
+
+
+#--------- Preprocessor -------------------------------------------------------
+%ifndef %{bits} # EDIT to control 32 or 64 bit compilation. Or,
+% define bits 64 # you can set it on the command line using:
+%endif # 'runcpu --define bits=nn'
+
+%ifndef %{build_ncpus} # EDIT to adjust number of simultaneous compiles.
+% define build_ncpus 8 # Or, you can set it on the command line:
+%endif # 'runcpu --define build_ncpus=nn'
+
+# Don't change this part.
+%define os LINUX
+
+%ifndef %{model}
+% if %{bits} == 64
+% define model -mabi=lp64
+% elif %{bits} == 32
+% define model -mabi=ilp32
+% else
+% error Please define number of bits - see instructions in config file
+% endif
+%endif
+
+
+#--------- Global Settings ----------------------------------------------------
+# For info, see:
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#tune
+
+command_add_redirect = 1
+flagsurl = $[top]/config/flags/gcc.xml
+ignore_errors = 0
+iterations = 1
+label = %{label}-%{bits}
+line_width = 1020
+log_line_width = 1020
+makeflags = --jobs=%{build_ncpus}
+mean_anyway = 1
+output_format = txt,html,cfg,pdf,csv
+preenv = 1
+reportable = 0
+tune = base,peak
+
+
+#--------- How Many CPUs? -----------------------------------------------------
+# Both SPECrate and SPECspeed can test multiple chips / cores / hw threads
+# - For SPECrate, you set the number of copies.
+# - For SPECspeed, you set the number of threads.
+# See: https://www.spec.org/cpu2017/Docs/system-requirements.html#MultipleCPUs
+#
+# q. How many should I set?
+# a. Unknown, you will have to try it and see!
+#
+# To get you started, some suggestions:
+#
+# copies - This config file defaults to testing only 1 copy. You might
+# try changing it to match the number of cores on your system,
+# or perhaps the number of virtual CPUs as reported by:
+# grep -c processor /proc/cpuinfo
+# Be sure you have enough memory. See:
+# https://www.spec.org/cpu2017/Docs/system-requirements.html#memory
+#
+# threads - This config file sets a starting point. You could try raising
+# it. A higher thread count is much more likely to be useful for
+# fpspeed than for intspeed.
+#
+intrate,fprate:
+ copies = 1 # EDIT to change number of copies (see above)
+intspeed,fpspeed:
+ threads = 8 # EDIT to change number of OpenMP threads (see above)
+
+
+#------- Compilers ------------------------------------------------------------
+default:
+# EDIT: the directory where your compiler is installed
+%ifndef %{gcc_dir}
+% define gcc_dir /usr
+%endif
+
+# EDIT if needed: the preENV line adds library directories to the runtime
+# path. You can adjust it, or add lines for other environment variables.
+# See: https://www.spec.org/cpu2017/Docs/config.html#preenv
+# and: https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
+ preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64
+ #preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64:%{ENV_LD_LIBRARY_PATH}
+ SPECLANG = %{gcc_dir}/bin/
+ CC = $(SPECLANG)gcc -std=c99 %{model}
+ CXX = $(SPECLANG)g++ -std=c++03 %{model}
+ FC = $(SPECLANG)gfortran %{model}
+ # How to say "Show me your version, please"
+ CC_VERSION_OPTION = -v
+ CXX_VERSION_OPTION = -v
+ FC_VERSION_OPTION = -v
+
+default:
+%if %{bits} == 64
+ sw_base_ptrsize = 64-bit
+ sw_peak_ptrsize = 64-bit
+%else
+ sw_base_ptrsize = 32-bit
+ sw_peak_ptrsize = 32-bit
+%endif
+
+
+#--------- Portability --------------------------------------------------------
+default: # data model applies to all benchmarks
+%if %{bits} == 32
+ # Strongly recommended because at run-time, operations using modern file
+ # systems may fail spectacularly and frequently (or, worse, quietly and
+ # randomly) if a program does not accommodate 64-bit metadata.
+ EXTRA_PORTABILITY = -D_FILE_OFFSET_BITS=64
+%else
+ EXTRA_PORTABILITY = -DSPEC_LP64
+%endif
+
+# Benchmark-specific portability (ordered by last 2 digits of bmark number)
+
+500.perlbench_r,600.perlbench_s: #lang='C'
+%if %{bits} == 32
+% define suffix AARCH32
+%else
+% define suffix AARCH64
+%endif
+ PORTABILITY = -DSPEC_%{os}_%{suffix}
+
+520.omnetpp_r:
+ PORTABILITY = -Wno-error=register -std=c++14
+
+521.wrf_r,621.wrf_s: #lang='F,C'
+ CPORTABILITY = -DSPEC_CASE_FLAG
+ FPORTABILITY = -fconvert=big-endian
+
+523.xalancbmk_r,623.xalancbmk_s: #lang='CXX'
+ PORTABILITY = -DSPEC_%{os}
+
+526.blender_r: #lang='CXX,C'
+ PORTABILITY = -funsigned-char -DSPEC_LINUX
+
+527.cam4_r,627.cam4_s: #lang='F,C'
+ PORTABILITY = -DSPEC_CASE_FLAG
+
+628.pop2_s: #lang='F,C'
+ PORTABILITY = -DSPEC_CASE_FLAG -fconvert=big-endian
+
+#----------------------------------------------------------------------
+# GCC workarounds that do not count as PORTABILITY
+#----------------------------------------------------------------------
+# The workarounds in this section would not qualify under the SPEC CPU
+# PORTABILITY rule.
+# - In peak, they can be set as needed for individual benchmarks.
+# - In base, individual settings are not allowed; set for whole suite.
+# See:
+# https://www.spec.org/cpu2017/Docs/runrules.html#portability
+# https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+# Integer workarounds - peak
+#
+ 500.perlbench_r,600.perlbench_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only
+ 502.gcc_r,602.gcc_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fgnu89-inline
+ 505.mcf_r,605.mcf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/505.mcf_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 525.x264_r,625.x264_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/525.x264_r.html
+ EXTRA_CFLAGS = -fcommon
+#
+# Integer workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ intrate,intspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only -fgnu89-inline -fcommon
+#
+# Floating Point workarounds - peak
+#
+ 511.povray_r=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/511.povray_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 521.wrf_r,621.wrf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/521.wrf_r.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ 527.cam4_r,627.cam4_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/527.cam4_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ # See also topic "628.pop2_s basepeak" below
+ 628.pop2_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+#
+# FP workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ fprate,fpspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+
+#-------- Tuning Flags common to Base and Peak --------------------------------
+
+#
+# Speed (OpenMP and Autopar allowed)
+#
+%if %{bits} == 32
+ intspeed,fpspeed:
+ #
+ # Many of the speed benchmarks (6nn.benchmark_s) do not fit in 32 bits
+ # If you wish to run SPECint2017_speed or SPECfp2017_speed, please use
+ #
+ # runcpu --define bits=64
+ #
+ fail_build = 1
+%else
+ intspeed,fpspeed:
+ EXTRA_OPTIMIZE = -fopenmp -DSPEC_OPENMP
+ fpspeed:
+ #
+ # 627.cam4 needs a big stack; the preENV will apply it to all
+ # benchmarks in the set, as required by the rules.
+ #
+ preENV_OMP_STACKSIZE = 120M
+%endif
+
+
+#-------- Baseline Tuning Flags ----------------------------------------------
+#
+default=base: # flags for all base
+ OPTIMIZE = -g -O3 -march=native
+
+intrate,intspeed=base: # flags for integer base
+%if %{bits} == 32
+ EXTRA_COPTIMIZE = -fgnu89-inline -fno-strict-aliasing
+%else
+ EXTRA_COPTIMIZE = -fgnu89-inline -fno-strict-aliasing
+ LDCFLAGS = -z muldefs
+%endif
+# Notes about the above
+# - 500.perlbench_r/600.perlbench_s needs -fno-strict-aliasing.
+# - 502.gcc_r/602.gcc_s needs -fgnu89-inline or -z muldefs
+# - 520.omnetpp_r needs -fno-new-ttp-matching (See https://inbox.sourceware.org/gcc-patches/20200629145741.GG3394@redhat.com/T/)
+# - For 'base', all benchmarks in a set must use the same options.
+# - Therefore, all base benchmarks get the above. See:
+# www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+# www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html
+# www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
+
+#-------- Peak Tuning Flags ----------------------------------------------
+default=peak:
+ OPTIMIZE = -g -Ofast -march=native -flto
+ PASS1_FLAGS = -fprofile-generate
+ PASS2_FLAGS = -fprofile-use
+
+# 628.pop2_s basepeak: Depending on the interplay of several optimizations,
+# 628.pop2_s might not validate with peak tuning. Use the base
+# version instead. See:
+# https:// www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+628.pop2_s=peak:
+ basepeak = yes
+
+ #
+ # -----------------------
+ # About the -fno switches
+ # -----------------------
+ #
+ # For 'base', this config file (conservatively) disables some optimizations.
+ # You might want to try turning some of them back on, by creating a 'peak'
+ # section here, with individualized benchmark options:
+ #
+ # 500.perlbench_r=peak:
+ # OPTIMIZE = this
+ # 502.gcc_r=peak:
+ # OPTIMIZE = that
+ # 503.bwaves_r=peak:
+ # OPTIMIZE = other .....(and so forth)
+ #
+ # If you try it:
+ # - You must remove the 'basepeak' option, above.
+ # - You will need time and patience, to diagnose and avoid any errors.
+ # - perlbench is unlikely to work with strict aliasing
+ # - Some floating point benchmarks may get wrong answers, depending on:
+ # the particular chip
+ # the version of GCC
+ # other optimizations enabled
+ # -m32 vs. -m64
+ # - See: http://www.spec.org/cpu2017/Docs/config.html
+ # - and: http://www.spec.org/cpu2017/Docs/runrules.html
+
+
+#------------------------------------------------------------------------------
+# Tester and System Descriptions - EDIT all sections below this point
+#------------------------------------------------------------------------------
+# For info about any field, see
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#hw_memory
+#-------------------------------------------------------------------------------
+
+#--------- EDIT to match your version -----------------------------------------
+default:
+ sw_compiler001 = C/C++/Fortran: Version 13.2.0 of GCC, the
+ sw_compiler002 = GNU Compiler Collection
+
+#--------- EDIT info about you ------------------------------------------------
+# To understand the difference between hw_vendor/sponsor/tester, see:
+# https://www.spec.org/cpu2017/Docs/config.html#test_sponsor
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ hw_vendor = Amazon Web Services
+ tester = TUM I13
+ test_sponsor = TUM
+ license_num = nnn (Your SPEC license number)
+# prepared_by = # Ima Pseudonym # Whatever you like: is never output
+
+
+#--------- EDIT system availability dates -------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+ hw_avail = # Nov-2099 # Date of LAST hardware component to ship
+ sw_avail = # Nov-2099 # Date of LAST software component to ship
+
+#--------- EDIT system information --------------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+ # hw_cpu_name = # Intel Xeon E9-9999 v9 # chip name
+ hw_cpu_nominal_mhz = # 9999 # Nominal chip frequency, in MHz
+ hw_cpu_max_mhz = # 9999 # Max chip frequency, in MHz
+ # hw_disk = # 9 x 9 TB SATA III 9999 RPM # Size, type, other perf-relevant info
+ hw_model = # TurboBlaster 3000 # system model name
+ # hw_nchips = # 99 # number chips enabled
+ hw_ncores = # 9999 # number cores enabled
+ hw_ncpuorder = # 1-9 chips # Ordering options
+ hw_nthreadspercore = # 9 # number threads enabled per core
+ hw_other = # TurboNUMA Router 10 Gb # Other perf-relevant hw, or "None"
+
+# hw_memory001 = # 999 GB (99 x 9 GB 2Rx4 PC4-2133P-R, # The 'PCn-etc' is from the JEDEC
+# hw_memory002 = # running at 1600 MHz) # label on the DIMM.
+
+ hw_pcache = # 99 KB I + 99 KB D on chip per core # Primary cache size, type, location
+ hw_scache = # 99 KB I+D on chip per 9 cores # Second cache or "None"
+ hw_tcache = # 9 MB I+D on chip per chip # Third cache or "None"
+ hw_ocache = # 9 GB I+D off chip per system board # Other cache or "None"
+
+ fw_bios = # American Megatrends 39030100 02/29/2016 # Firmware information
+ # sw_file = # ext99 # File system
+ # sw_os001 = # Linux Sailboat # Operating system
+ # sw_os002 = # Distribution 7.2 SP1 # and version
+ sw_other = # TurboHeap Library V8.1 # Other perf-relevant sw, or "None"
+ # sw_state = # Run level 99 # Software state.
+
+# Note: Some commented-out fields above are automatically set to preliminary
+# values by sysinfo
+# https://www.spec.org/cpu2017/Docs/config.html#sysinfo
+# Uncomment lines for which you already know a better answer than sysinfo
+
+__HASH__
+502.gcc_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:04:30
+opthash=f109483d241781652e51b7b88d11d9a21c1a4cb053bc972cd7a7fdcb122a309b
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNq1UtFumzAUfecrLL87SdttWqJSCRyaeCXYClBte7ESByJvYKcYKrVfX5uUNn1qHjZLiCPuMffc\
+c26iFao3f4tSVgXQh1ZqZWaeaRspWt50aicb/lg0snzy4QX0LDSWYvFoMplAz8N0xWYAjjvTjLdS\
+jfdCAHeQaXe+mE4drDdb6VeHb18AEgDpoc1IAzRPWYTtK5lHYb4AiIzcM5ZKVN2u6LE5FII/GN20\
+r3T+dXI5wCDPKE9zxtZRmnLKomTFbI0kfIHdf5fBfcQxTW7Jgi+tFHoFTg4q96r7PkVSVVLZbqXS\
+6Dg62lRyY6TaO9axVczsAODa6K4RxQ308Axg7J85+ZFOwx+UZT78YAP0rIGY5bdxsEht7aMlfTWM\
+ErzkA+G/egQ9OgNWJFmR35FtRq/6L9HPbB1Y0nvhc+t66ceLjK6zICQxyX4NE/Z+Qi8myd35+wPQ\
+M6i7aleUpiedxHlOltd6+6cQrblx/Kp+v/sWBgB9UvH8/GCpo+MhnDd9/9RIK2kVZEsek9A1qepX\
+lTR323SySi8GFRoV
+exehash=5104cdfe94db9b351f6890ead073919d3dd7fcbe28495886f98c547b67586ef7
+
+500.perlbench_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:20:40
+opthash=947c5d5bb410de4cb52ba0adb24d11823e0351a2d31dca231ec6a4a5b3e13e18
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNrVU12rmzAYvvdXBO9TO84Yazke0DStbmkTjMLZboK1acmmsRgd2/n1S+zHTmGwwi7GAuKbN8/7\
+/bybVsOm/Cr3qpagPfaq1Wbumb5TVS+6Qe9UJ77JTu1/hP4b37OisRArT6bTqe95iK7ZHPjBYLpg\
+q3RwqCrgDjT9LqxmMyc25VaF9fHdWwArANtLmEkL4IIzjOxvs8BxsbICwxkRiGYYwHRiv50yfZBS\
+K1XHUge5aiRMVCbNRZPkawJZ2RnZWZX83gedtII5yqor9c66XNAiJlhwEvEEc+EiphEJp+foIipy\
+KnjBWIY5F5ThzZrZN0GibIXFMiWYX6/uJjgtMoSdbrzS5ZLjXMRpzkNbI4D0AZzPOQJJN8WziKIM\
+JQ5g9fuDHt7PoNK10jbdvW7hqeewrFVplD68smbO6NG0Q1fJJ99Dc4BQeGfLT3Aaf6AsD/2b/vue\
+nRxixZJEK27fbmcxvsZ4gxJxBfz3w/E9Oge2E+k6/YxtRfRhLJPRLI/ilKT5p0sfbmc22uHnPIts\
++b/M/zzF0f3J8LdBmPNtQ328f4cAfAHNUO/k3oygM9v+hmqP7faLrHrz5PB1A670vXIFgJFIZHE/\
+76iDowt3rjn/gxHYxNdRnlh/sUulbs610MKtxKt9+Anm8HdT
+exehash=d05a3a8991d2354440134f80d8ee02b2ba72cbe3e9db2f47c33108e3298f4bae
+
+505.mcf_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:20:43
+opthash=2b4ee5d95adc68b4be57409edc22f0f0064766b5e23db32adb25cf345a157ec4
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNqtUtFugjAUfecrmr5XXVyWacQEKlM2pI1Asu2lQUTTDVpHYcn29SugDp/Gw/rS295ze885t74U\
+KI/f0z3PUiCPJZdCTQ1VFjwpWVGJHS/YZ1rw/ZcJb6ChQ6UhOh6MRiNoGJis6RTAYaWK4ZaL4SFJ\
+QL2QKndmMpnUYR5vuZkd724BSgCS5zYDCdAioA7Wm79w7Gipsa46pgn7ULIoT1lmRSFhQUTpxgkC\
+RqjjrylAZAw6C+0PorqfIC4yLlJ9FBK1IlCc8VhxcahR7YMe1VTATMmqSNI5NPAUYGz21NDCif1I\
+aGjCK0HQ0FZgGj141jLQuWtxTdZ2fLxi+IzoqRYaZAp0P3ftvjq6jIybG+c53FgMdxJ/u9CwaAsp\
+2YSW7Xpu+HIm21gDDc/1n/oPFaBvkFfZLt2rBtSZTJ+xzOT2LU1KNa/xWf5be/EVgMZ0b9F/RqSG\
+X2y+8PtXIzWltRWumOfadZMsP7EkUf0xOr/iByWg/Ws=
+exehash=1f2e6cf9670ff39d468e67fa6a1b9d33d630807ca98a1c1e435b76b6d9272e63
+
+520.omnetpp_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:22:49
+opthash=274005286c078201e7a17f3e4b5c63e726b9fe2abd72d9e87de35af6c25702cc
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNq1UctOwzAQvPsrLF+rNEVFHKKmUh6mNaSxlYcoXKw2dZEhjSMnQeLvMSmBFi694MuuvbO7M+NY\
+VdZh8yr2shRQ1a1UVeOAptWyaLnuqp3U/E1ouX930RUCJm0MxOTjyWSCAAjoijkQ2V2j7a2s7OfR\
+CP46Zv5WumV9cw2tAlpqWDNW0ApThgMT4hD7+QJapJGHrty0Stu1CTtRn76Z/KB2ojQNDyRb8hhn\
+fk6iECdfk7iXZ5SnOWMJTlNOGY5XzDCg0x82R2DEDB04a1SnCzFHIHBgsF67FwoZ8NS/oyxz0Zku\
+BIwjActvI2+Rmtq5xr7q4zhY8gHwH6IRoA403MiKPGGzg077xXidJR5nNMk8n0Qkexz49YYgEJH4\
+/vLvPN5PzIUztX0RRdvMzzq+rYGwdy4KLzf6r4x+AM0/bT/x/AP2tsQE
+exehash=1cf2aed85696fcfe3a730b6638402f19d208b0c45616569d233848172725a44e
+
+523.xalancbmk_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:28:06
+opthash=6d3d0e94f77cea8d755bb0658ee676291353bcf5b40fe2e49963fc426b39d5b4
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNrtVEFvmzAUvvMrLK4VIVurHaKmkgNeSmdjC8PEdrEIoZU3giNMqvbf9wVERrodssNuQ0K8773P\
+D/t9nxybxtsVP6tHXVfI7DttGrtwbNfqslPtodnqVj1XrX58XbofXAdCCxSIZ/P53HWcgDOxQK5/\
+sK2/0Y3/dHWF3j3Qf6OX9f7TDfJK5JnxNzODvFAKEsAnDskqWwM3xEKomKv0PiE4lJDIMcWximJG\
+mGJyrSjHIUmQF83gfanasrLlr8jfmt058vVuX09StniZoEOna5/ZJ2qKLZzNjxpW7Uz7+p6StkVj\
+SzNwStM8HwlFXTSlr5uyPmwr2KpI+IPKGRU4kcctnhJZGtERDkU5Qonzm2ACPo5xyNkYfsU0CnHK\
++1XQTmWSjBMhUuI1GYfSz1PhLOVKZkIkUFVckJgJ5PHrXo2BQqM4y9E0IUAfdGvNAU595zrBAgV5\
+vrxQ2ZHPVw9cpEv3TGjXAYsEIvtM8VpC7Vz0vroicXCvoMGJ898H/8YHrsMXCDSKWPSdwKD5dS+A\
+4EmKVxGN0m+jQoNH+irJ0wSrP3LEUXxgfrn8FhjwYMff/XhrNj+qsrN3Z6tPZkKo9xoNL7fm3x64\
+b8+zo40nHn4DYzCAUg==
+exehash=c7afcfbdfebfed96e6db07f3747c9f0d57546e96a0c087fd295607c4331a3ca1
+
+525.x264_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:28:47
+opthash=9f8249deba2ee1bc4326c744c0aad9b1c72974092b5a064cd194306c4abc49a8
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNrtU11vmzAUfedXWH53SZssa6JSCYjXshFs8SGte7GIQyJvYFcYpmy/foY0HXlaHip1D/jF177H\
+9r3n+ERKoir/UexEWQD13Agl9dLSTS14w+pWbkXNfha12P1y4DW0TKgNxMRXk8kEWpZP1nQJoN3q\
+2t4Iae85B91Autk6fLHowirfCKd8ns8A4gCp0zNXCqBVQrFvpmiFvewBoKDcFlxtma65LaRBB4eb\
++axbDkK7ODR1roc7XFWVki/3MTdLCUsySmOcJIxQHK3pWc57SjGJVzh2Jofrm+nsw/zjrSmUTMFg\
+oN1etrcLJGQpZGGWUqEjMSgvRa6F3Heo47UhNe2BO63amhf30PKXwPedC3k5won3mdDUgWckQcvQ\
+69PsU+g+JCZ3Tlif9XDkP7IT4B0ZhBZZAtNCsA6+YVMKmfY7+Gsau8wfJP5NbN/Y8SAlcep6QRik\
+T6f+e7ahFQbRl8v/HkC/QdUadna6Bw3EvkTpO7X5XvBG33f4svp79lUqAHodw9XlspMO7p+ke63v\
+TYk0Ja3d9JGFgdc9UlYvVZKs+2uDjzZ6efTy6OXRy6OXRy+PXv5/vPwHT71lnQ==
+exehash=67469200b738606c248c542608d955fae32c6d0d607cb97bf57a70f767d6ff33
+
+531.deepsjeng_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:28:52
+opthash=7b83f00e401cd189a6e69735bcb63a0af85e9342734f1788fb82d1e640a9d463
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNqNUMtOwzAQvPsrLF+rtEFFHKKmUh6mBOzYykNKuVgkpMhQ4ioPJP4eN21oA5f44l3t7MzOhKoy\
+Pl8+yp3cl1AdWqmqxgJNW8uiFXVXvcpafJW13H3b6AYBXTYaouu5aZoIAI9RbkG06Jp6kctq8Tab\
+wT9P8+fS3h/ubqFRQEMNMnMFDT/m2NNf6GM33Rx76hAiKKYs2p7HwkkTJuKU8wjHsWAch5RrWra8\
+SJyAhGsNuGpUVxflGgHPgl6W2ROvG/DMfWQ8sdHoWAS0TY+n98TZxHo2Pryfujj0HsQFMNEJAsyC\
+WjCgwTPWi2zZs+EsiRzBWZQ4bkCCZDuI9i4RIEH4ND34U3+VGFyp/L0s2mY92vj1C2EfB/Gnp/ff\
+Rk/A0mOWV0H+ACXCpPw=
+exehash=13c9182a8c3b527b60e2e0c4f73d5ce349e281bff507020815536a048b3034d8
+
+541.leela_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:06
+opthash=a25eb362e6d382db558c966a388109f406c2dd1d4e0bbe1c8906a0a369648988
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNqNUMtOwzAQvPsrVr5WeaAiDlFTKQ9TAkls5SEFLhYJKTKUuMoDib/HTQm0IKH44rV3dnZmYtlo\
+b4+v9VbsapD7Xsims1DXt6LqeTs0T6Ll73Urth82vsBIlZ2CqFo3TRMj5NGIWYCNoWuNUjTG82IB\
+v47iL4W9219dglaBJqc1ugTNTxnx1BX7xM03oAX61x938ozyNGcsIWnKKSNxxBQXXf7wHoEhU8Sw\
+6uTQVvUaI88CryjsmZImPHVvKctsfKYQI+XNY/l16GxS1TtXO3ZdEns3fAL8Lx8jaoHaEkTBA1Fo\
+uhwpSJElDmc0yRw3CIPsfto0WsMoDOK7+REf3ycxwUqWL3XVd+uziW+TAGMGoT8/sr82RgKaHwI8\
+Se8TH9yeAA==
+exehash=59eb1a8fb591abab12921ae4158c3efbaa5cd7788013faed4c2482117473de7b
+
+548.exchange2_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:26
+opthash=54bed106c6ee37e8de4e41711455fdf3bb1eb9c3be994b3f3fc94ad7a4dc44a1
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2gnAItNMy4wPlI5MZEjLEaY+MLK1tBVly9BFIfn1lYwcn0Is90mpXb/e9\
+J7SYbv7M1w83q7vN6j72v3HwaLjMUOK4sJhLZEqgph9MV8vlfBpvrqfTKHRGhwmXYZYqbTWR79Fl\
+vNr8XU/u7+frwynBE9gDDTNKQ0I0zX+MsODS7XEmXTgYhsIqvNOkLEEHq8ViuZrMNvFkfT2PN3eT\
+2/lDJF9Ku8dSSfgcn80Xk8dlHA2CmOgM7Bid3BBMlUx55jQwtOM2H6N+PzSahrTdR/gFYVzFcLnN\
+XkAbrmT05TFx0jo0GPav+pf4aujq9ehLezZxPllEKRcwDsO6VZMTDSFTdbPYt7aeT2a38/5vlxmf\
+BpIkArAgMnMkAxPRHmGkRy8uepnqsV4zyp5Knmj1wVWkuPKZpYaU7+t5ttdXNxTkSWncIMZKitf6\
+rMo0KbBxaZXjYXQ2m0InU8JHeHUTrAOXyy1oXKmBYV4FGkYZ1x8YbpApV4mGCseAYc+Jhb09VrO5\
+BsJMVCrD94da3TrHg1J0RkaFokRA5JF2gSXGMrrfYwaejHMBywuIXsG0Q2OQEudFfTxBEh5J2J1L\
+Tgjdej4oHIPVpJzkzw6w5wdo1Rjjpk18doQVxObndz0jZekpPpYrhcu8v97XLbySQ4vYvBoLBX77\
+MBu/KHOVKINpDnTrzRppEEDMe5qt7dDNjoiz6lii0pjX0Kfdwt/OK20ct7xcMPWowc/q+xD/HA1H\
+g1+dBnegtdKdwmkqFGENAtMxbxTWGmq8gdnNbra7bFcHm4WeSU5kaIsS14mN4j/VbuZUq7SVHHWM\
+YKa5d0NHN6fjqTGcGsBHcmXs2cChldNQENdiRoViIMaolnTwcCDZY/MvIaKq8JYzlT8REZnSHm1h\
+xqjm880LLfD9o8bBzVuDvv7n6fmGgn+sp/g9
+compile_options=\
+@eNqtkMtOwzAQRff5Csv7pEVFSERNpSR1SyCNrTwkYGO1qYMMJbbsFAFfj5OWUB6LLJiNZzTXM3NP\
+Imr7ef3EKr5jQMiGi1q7lm4ULxuq9vWWK/rCFK/ePHgGLZNqIzG5Mx6PoWUtCHEB1JKVUgJ7nhEU\
+mieZo6BYHmvqFzmmWUFIirKMYoKSFfnsxeTiHEy12KuSzYAt+typpOTvbOtUl6/QMktCUixif5l5\
+8MearhugJLyi3wR/7u3E6DZPfUpwmvtBFEf5Xf+lPQdaIV61rkZ7rUYbXo8eKqEata7BVxhoG+7t\
+pLneLtu7j+wcAWw86V2YWS5YhN7AWQc5Dq4xyc1Np4P/lQF2gdkQraJ7ZJR4MohKHCU3w6kcaoOi\
+j6nYPLKy0TNw+qM3CEDnPp4Ph/XbRjcAFy28E3IfNALPSA==
+exehash=2a1a71c7b3cc305af6b28da5a0fa8f2ca7c28c617a74e9adedc544e84097d7db
+
+557.xz_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:33
+opthash=421bea877b6815c1807781f6a889dfd067c221fb6ed1ccf96d1b44a28a3e9490
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNrtU09vmzAcvfMpLO7On6brmqhUIsRN2ABbgUxtLxYxJvUKdoRJtfXTz5AlBe2wHHacJfDv2c/G\
+fu8RKQnL9JXnouBA7WuhpJ5Zuq4Eq2l1kJmo6BuvRP7Tsce2ZUptKKYejEYj27I8HJIZsIcHXQ23\
+Qg53jIGmQV1nDptOm7JMt8Ip9jfXADIA1ekzAwXgIibIM120QPPN8jem7ibBdP6UILxeoLUz+jG+\
+mlx/uvl8awgr9xuiHo4e/CVdOePTkhCF1Mcn9Pjc2yreELJGcUwxQVFIAPQH5tF7zmjJSypUg15S\
+eGV6pspSSVMUYlu8l+kw3YsOal4d+AebvXD22sFalHuj7MdAxos67W3YAVUqd5ypjFdGNjwBnQbz\
+nTzcTqGQhZBmw1wqeLQJpoVItZC7hnW8dUCM2OBOq0PF+L1teTPgec6FLh3peP4Fk8Sxe5bZljHb\
+I5uHwF3GZq5vXzs7R5G3oj3Cfz95ZVt4Boygfug/IyMMnrQj6DFZu+b6HxN/t7mV+biQ4HXizv3A\
+T57OYjfe21bgR18v/y8BfAfloch4rltSJ3qX5O5Obb9zVuv7XmDPqQGgjVSwuDyBuKF7pxSdD/dP\
+VWyPhDdNxjsB/wWIH4oW
+exehash=2abaee9754cf40a947430898c8a92ee6cc105d41eeca5ede0ba581993517a4ca
+
+999.specrand_ir=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:34
+opthash=defc697dfd9d9f3abf3a128aa625ba453c48adf1498e058efb28e0336037187c
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNqtUdFugjAUfecrmr5XXVyWScREKnNsSIlisu2FYCmmG7SGwpLt61dqMLiX8bC+9Lb33HvPPSeU\
+ApXpB8t5wYA81VwKZVuqrjitk6oRGa+ST1bx/MuBN9DSodIQHY8mkwm0LEw2kQ3guFHV+MDF+Egp\
+aA9SdebQ2awNy/TAneJ0dwsQBUh2Y0YSoNUu8rC+wpXn7tcA+erEaJWKDFFZllLoajIFvYPyo2ju\
+Z4iLggumn0KiM1uUFjxVXBxblOmbBJGeCeZKNhVlC2hhG2DsDCR7hhP3iUSxA6+YQ0vvjKP9Q7Bc\
+73TueguTdb0QPyYd4Pda0CI20H39jf/m6TyZmh/vJd4uE9xL/L2tmXYujMg2Xrp+4MevHSkjAbQC\
+P3we7hJA36BsiozlyoB6DgyRfy4P74zWanHl20U8AIyywWq4EaSF407MC7l/VdFQIvvW6p7PP1rQ\
+6fs=
+exehash=a68b2becada00a5b440ba02b35ca0a971d74af8ee11bb26bd2aa0276b3ad744f
\ No newline at end of file
diff --git a/example-benchmarks/spec_cpu_half_cores/config_x86.cfg b/example-benchmarks/spec_cpu_half_cores/config_x86.cfg
new file mode 100644
index 0000000..4b556c0
--- /dev/null
+++ b/example-benchmarks/spec_cpu_half_cores/config_x86.cfg
@@ -0,0 +1,653 @@
+#------------------------------------------------------------------------------
+# SPEC CPU(R) 2017 config for gcc/g++/gfortran on Linux x86
+#------------------------------------------------------------------------------
+#
+# Usage: (1) Copy this to a new name
+# cd $SPEC/config
+# cp Example-x.cfg myname.cfg
+# (2) Change items that are marked 'EDIT' (search for it)
+#
+# SPEC tested this config file with:
+# Compiler version(s): Various. See note "Older GCC" below.
+# Operating system(s): Oracle Linux Server 6, 7, 8 /
+# Red Hat Enterprise Linux Server 6, 7, 8
+# SUSE Linux Enterprise Server 15
+# Ubuntu 19.04
+# Hardware: Xeon, EPYC
+#
+# If your system differs, this config file might not work.
+# You might find a better config file at https://www.spec.org/cpu2017/results
+#
+# Note: Older GCC
+#
+# Please use the newest GCC that you can. The default version packaged with
+# your operating system may be very old; look for alternate packages with a
+# newer version.
+#
+# If you have no choice and must use an old version, here is what to expect:
+#
+# - "peak" tuning: Several benchmarks will fail at peak tuning if you use
+# compilers older than GCC 7.
+# In that case, please use base only.
+# See: https://www.spec.org/cpu2017/Docs/overview.html#Q16
+# https://www.spec.org/cpu2017/Docs/config.html#tune
+# Peak tuning is expected to work for all or nearly all
+# benchmarks as of GCC 7 or later.
+# Exception:
+# - See topic "628.pop2_s basepeak", below.
+#
+# - "base" tuning: This config file is expected to work for base tuning with
+# GCC 4.8.5 or later
+# Exception:
+# - Compilers vintage about 4.9 may need to turn off the
+# tree vectorizer, by adding to the base OPTIMIZE flags:
+# -fno-tree-loop-vectorize
+#
+# Unexpected errors? Try reducing the optimization level, or try removing:
+# -march=native
+#
+# Compiler issues: Contact your compiler vendor, not SPEC.
+# For SPEC help: https://www.spec.org/cpu2017/Docs/techsupport.html
+#------------------------------------------------------------------------------
+
+
+#--------- Label --------------------------------------------------------------
+# Arbitrary string to tag binaries (no spaces allowed)
+# Two Suggestions: # (1) EDIT this label as you try new ideas.
+%ifndef %{label}
+% define label "c6itest" # (2) Use a label meaningful to *you*.
+%endif
+
+
+#--------- Preprocessor -------------------------------------------------------
+%ifndef %{bits} # EDIT to control 32 or 64 bit compilation. Or,
+% define bits 64 # you can set it on the command line using:
+%endif # 'runcpu --define bits=nn'
+
+%ifndef %{build_ncpus} # EDIT to adjust number of simultaneous compiles.
+% define build_ncpus 8 # Or, you can set it on the command line:
+%endif # 'runcpu --define build_ncpus=nn'
+
+# Don't change this part.
+%if %{bits} == 64
+% define model -m64
+%elif %{bits} == 32
+% define model -m32
+%else
+% error Please define number of bits - see instructions in config file
+%endif
+%if %{label} =~ m/ /
+% error Your label "%{label}" contains spaces. Please try underscores instead.
+%endif
+%if %{label} !~ m/^[a-zA-Z0-9._-]+$/
+% error Illegal character in label "%{label}". Please use only alphanumerics, underscore, hyphen, and period.
+%endif
+
+
+#--------- Global Settings ----------------------------------------------------
+# For info, see:
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#tune
+
+command_add_redirect = 1
+flagsurl = $[top]/config/flags/gcc.xml
+ignore_errors = 1
+iterations = 1
+label = %{label}-m%{bits}
+line_width = 1020
+log_line_width = 1020
+makeflags = --jobs=%{build_ncpus}
+mean_anyway = 1
+output_format = txt,html,cfg,pdf,csv
+preenv = 1
+reportable = 0
+tune = base,peak
+
+
+#--------- How Many CPUs? -----------------------------------------------------
+# Both SPECrate and SPECspeed can test multiple chips / cores / hw threads
+# - For SPECrate, you set the number of copies.
+# - For SPECspeed, you set the number of threads.
+# See: https://www.spec.org/cpu2017/Docs/system-requirements.html#MultipleCPUs
+#
+# q. How many should I set?
+# a. Unknown, you will have to try it and see!
+#
+# To get you started, some suggestions:
+#
+# copies - This config file defaults to testing only 1 copy. You might
+# try changing it to match the number of cores on your system,
+# or perhaps the number of virtual CPUs as reported by:
+# grep -c processor /proc/cpuinfo
+# Be sure you have enough memory. See:
+# https://www.spec.org/cpu2017/Docs/system-requirements.html#memory
+#
+# threads - This config file sets a starting point. You could try raising
+# it. A higher thread count is much more likely to be useful for
+# fpspeed than for intspeed.
+#
+intrate,fprate:
+ copies = 1 # EDIT to change number of copies (see above)
+intspeed,fpspeed:
+ threads = 4 # EDIT to change number of OpenMP threads (see above)
+
+
+#------- Compilers ------------------------------------------------------------
+default:
+# EDIT: The parent directory for your compiler.
+# Do not include the trailing /bin/
+# Do not include a trailing slash
+# Examples:
+# 1 On a Red Hat system, you said:
+# 'dnf install gcc-toolset-11'
+# Use: % define gcc_dir "/opt/rh/gcc-toolset-11/root/usr"
+#
+# 2 You built GCC in: /disk1/mybuild/gcc-11.2.0/bin/gcc
+# Use: % define gcc_dir "/disk1/mybuild/gcc-11.2.0"
+#
+# 3 You want: /usr/bin/gcc
+# Use: % define gcc_dir "/usr"
+# WARNING: See section "Older GCC" above.
+#
+%ifndef %{gcc_dir}
+% define gcc_dir "/usr" # EDIT (see above)
+%endif
+
+# EDIT: If your compiler version is 10 or greater, you must enable the next
+# line to avoid compile errors for several FP benchmarks
+#
+%define GCCge10 # EDIT: remove the '#' from column 1 if using GCC 10 or later
+
+# EDIT if needed: the preENV line adds library directories to the runtime
+# path. You can adjust it, or add lines for other environment variables.
+# See: https://www.spec.org/cpu2017/Docs/config.html#preenv
+# and: https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
+ preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64
+ #preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64:%{ENV_LD_LIBRARY_PATH}
+ SPECLANG = %{gcc_dir}/bin/
+ CC = $(SPECLANG)gcc -std=c99 %{model}
+ CXX = $(SPECLANG)g++ -std=c++03 %{model}
+ FC = $(SPECLANG)gfortran %{model}
+ # How to say "Show me your version, please"
+ CC_VERSION_OPTION = --version
+ CXX_VERSION_OPTION = --version
+ FC_VERSION_OPTION = --version
+
+default:
+%if %{bits} == 64
+ sw_base_ptrsize = 64-bit
+ sw_peak_ptrsize = 64-bit
+%else
+ sw_base_ptrsize = 32-bit
+ sw_peak_ptrsize = 32-bit
+%endif
+
+
+#--------- Portability --------------------------------------------------------
+default: # data model applies to all benchmarks
+%if %{bits} == 32
+ # Strongly recommended because at run-time, operations using modern file
+ # systems may fail spectacularly and frequently (or, worse, quietly and
+ # randomly) if a program does not accommodate 64-bit metadata.
+ EXTRA_PORTABILITY = -D_FILE_OFFSET_BITS=64
+%else
+ EXTRA_PORTABILITY = -DSPEC_LP64
+%endif
+
+# Benchmark-specific portability (ordered by last 2 digits of bmark number)
+
+500.perlbench_r,600.perlbench_s: #lang='C'
+%if %{bits} == 32
+% define suffix IA32
+%else
+% define suffix X64
+%endif
+ PORTABILITY = -DSPEC_LINUX_%{suffix}
+
+521.wrf_r,621.wrf_s: #lang='F,C'
+ CPORTABILITY = -DSPEC_CASE_FLAG
+ FPORTABILITY = -fconvert=big-endian
+
+523.xalancbmk_r,623.xalancbmk_s: #lang='CXX'
+ PORTABILITY = -DSPEC_LINUX
+
+526.blender_r: #lang='CXX,C'
+ PORTABILITY = -funsigned-char -DSPEC_LINUX
+
+527.cam4_r,627.cam4_s: #lang='F,C'
+ PORTABILITY = -DSPEC_CASE_FLAG
+
+628.pop2_s: #lang='F,C'
+ CPORTABILITY = -DSPEC_CASE_FLAG
+ FPORTABILITY = -fconvert=big-endian
+
+#----------------------------------------------------------------------
+# GCC workarounds that do not count as PORTABILITY
+#----------------------------------------------------------------------
+# The workarounds in this section would not qualify under the SPEC CPU
+# PORTABILITY rule.
+# - In peak, they can be set as needed for individual benchmarks.
+# - In base, individual settings are not allowed; set for whole suite.
+# See:
+# https://www.spec.org/cpu2017/Docs/runrules.html#portability
+# https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+# Integer workarounds - peak
+#
+ 500.perlbench_r,600.perlbench_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only
+ 502.gcc_r,602.gcc_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fgnu89-inline
+ 505.mcf_r,605.mcf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/505.mcf_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 525.x264_r,625.x264_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/525.x264_r.html
+ EXTRA_CFLAGS = -fcommon
+#
+# Integer workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ intrate,intspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only -fgnu89-inline -fcommon
+#
+# Floating Point workarounds - peak
+#
+ 511.povray_r=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/511.povray_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 521.wrf_r,621.wrf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/521.wrf_r.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ 527.cam4_r,627.cam4_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/527.cam4_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ # See also topic "628.pop2_s basepeak" below
+ 628.pop2_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+#
+# FP workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ fprate,fpspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+
+
+#-------- Tuning Flags common to Base and Peak --------------------------------
+#
+# Speed (OpenMP and Autopar allowed)
+#
+%if %{bits} == 32
+ intspeed,fpspeed:
+ #
+ # Many of the speed benchmarks (6nn.benchmark_s) do not fit in 32 bits
+ # If you wish to run SPECint2017_speed or SPECfp2017_speed, please use
+ #
+ # runcpu --define bits=64
+ #
+ fail_build = 1
+%else
+ intspeed,fpspeed:
+ EXTRA_OPTIMIZE = -fopenmp -DSPEC_OPENMP
+ fpspeed:
+ #
+ # 627.cam4 needs a big stack; the preENV will apply it to all
+ # benchmarks in the set, as required by the rules.
+ #
+ preENV_OMP_STACKSIZE = 120M
+%endif
+
+#-------- Base Tuning Flags ----------------------------------------------
+# EDIT if needed -- If you run into errors, you may need to adjust the
+# optimization - for example you may need to remove
+# the -march=native. See topic "Older GCC" above.
+#
+default=base: # flags for all base
+ OPTIMIZE = -g -O3 -march=native
+
+
+#-------- Peak Tuning Flags ----------------------------------------------
+default=peak:
+ OPTIMIZE = -g -Ofast -march=native -flto
+ PASS1_FLAGS = -fprofile-generate
+ PASS2_FLAGS = -fprofile-use
+
+# 628.pop2_s basepeak: Depending on the interplay of several optimizations,
+# 628.pop2_s might not validate with peak tuning. Use the base
+# version instead. See:
+# https:// www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+628.pop2_s=peak:
+ basepeak = yes
+
+
+#------------------------------------------------------------------------------
+# Tester and System Descriptions - EDIT all sections below this point
+#------------------------------------------------------------------------------
+# For info about any field, see
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#hw_memory
+#-------------------------------------------------------------------------------
+
+#--------- EDIT to match your version -----------------------------------------
+default:
+ sw_compiler001 = C/C++/Fortran: Version 13.2.0 of GCC, the
+ sw_compiler002 = GNU Compiler Collection
+
+#--------- EDIT info about you ------------------------------------------------
+# To understand the difference between hw_vendor/sponsor/tester, see:
+# https://www.spec.org/cpu2017/Docs/config.html#test_sponsor
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ hw_vendor = Amazon Web Services
+ tester = TUM I13
+ test_sponsor = TUM
+ license_num = nnn (Your SPEC license number)
+# prepared_by = # Ima Pseudonym # Whatever you like: is never output
+
+
+#--------- EDIT system availability dates -------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+ hw_avail = # Nov-2099 # Date of LAST hardware component to ship
+ sw_avail = # Nov-2099 # Date of LAST software component to ship
+ fw_bios = # Version Mumble released May-2099 # Firmware information
+
+#--------- EDIT system information --------------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+# hw_cpu_name = # Intel Xeon E9-9999 v9 # chip name
+ hw_cpu_nominal_mhz = # 9999 # Nominal chip frequency, in MHz
+ hw_cpu_max_mhz = # 9999 # Max chip frequency, in MHz
+# hw_disk = # 9 x 9 TB SATA III 9999 RPM # Size, type, other perf-relevant info
+ hw_model = # TurboBlaster 3000 # system model name
+# hw_nchips = # 99 # number chips enabled
+ hw_ncores = # 9999 # number cores enabled
+ hw_ncpuorder = # 1-9 chips # Ordering options
+ hw_nthreadspercore = # 9 # number threads enabled per core
+ hw_other = # TurboNUMA Router 10 Gb # Other perf-relevant hw, or "None"
+
+# hw_memory001 = # 999 GB (99 x 9 GB 2Rx4 PC4-2133P-R, # The 'PCn-etc' is from the JEDEC
+# hw_memory002 = # running at 1600 MHz) # label on the DIMM.
+
+ hw_pcache = # 99 KB I + 99 KB D on chip per core # Primary cache size, type, location
+ hw_scache = # 99 KB I+D on chip per 9 cores # Second cache or "None"
+ hw_tcache = # 9 MB I+D on chip per chip # Third cache or "None"
+ hw_ocache = # 9 GB I+D off chip per system board # Other cache or "None"
+
+# sw_file = # ext99 # File system
+# sw_os001 = # Linux Sailboat # Operating system
+# sw_os002 = # Distribution 7.2 SP1 # and version
+ sw_other = # TurboHeap Library V8.1 # Other perf-relevant sw, or "None"
+# sw_state = # Run level 99 # Software state.
+
+ power_management = # briefly summarize power settings
+
+# Note: Some commented-out fields above are automatically set to preliminary
+# values by sysinfo
+# https://www.spec.org/cpu2017/Docs/config.html#sysinfo
+# Uncomment lines for which you already know a better answer than sysinfo
+
+__HASH__
+505.mcf_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:47:11
+opthash=5737cf0e0d89c6869a2881cb41c2cd15f2e18ec5db2c750058f995d78d11b73f
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNq1Ul1PgzAUfedXNH2vm9EYt8gSYKgoo82ARH0hWMusQqu0mMxfb4GxucToXuxLb+89vR/n3EgK\
+VOWvrOAlA/JNcynU1FK65lRndSOeeJ19sJoXaxseQ8uYykCMfTQej6FleXhBpgCOGlWPHrkYrSgF\
+7UFKP9l0MmnN6uwUIAqQHAocSYDmMfE9c0Vz302vDCpQb4xm70rWehPNnDTBWZwSsvTjOMPEjxYE\
+oBVA+MRkzWv6bItc8w8GtgcVQqK+fZSXPFdcrHpnI1ReMPNNP6O2j4p/5l03fbjggushLMq18a5E\
+cz5BXJRcMPOksqqk6Kv0/YXETAYulGxqymbQ8qbA8+w/yeiB2L3BJLHhHjPQMmx6JL0MnavYxPZZ\
+6qKuH3nXmTcgDqQNWngKTL1gETz45tsPJHYQ/y5ZOrvs/81mN1Ffk+Bl4rhBGCT3w+AdwdAKg+j2\
+kB3rnb+ux4V8fGFUq1mLLKvd2mwVAKCTJ5wfouMBnJpcCye5zsLAbQktq016nLbafxP+C37ADqE=
+exehash=c3ef8d086929e175d8c740f973851247759390233c84140a0f4310f137c36ff5
+
+505.mcf_r=peak=c6itest-m64:
+# Last updated 2024-06-27 08:48:21
+opthash=6804b57c3c4683509df403791e0b2fdb5e33b25419c71b81edddd2810afe1671
+baggage=
+compiler_version=\
+@eNrtUMtqwzAAu/srdGxhC22y03ryTEINXWJsZ9BTyVzncbGL42z07+eUfsZAICQkHSSoUnswdvkq\
+peJNfWmETvROBmOwab8XFxfsiyzPdq95sTz02/bpEOZv9zANY8SGbZHv8gJVsBbK9/G3CxaVX9y1\
+i5N3L+DOZESP04yEfo3Nz9gBc1JxXJ0lGIveB5i0PbkhsbtO68KcAXq0aTX164akZuhcvB/gfIT9\
+se7R+ywlO9Ja0w9+4vqMZFVc16VSqBoJCkGl5qw9UQnRStGoMiNEpB/y/x/+AMbCphg=
+compile_options=\
+@eNrFk1FvmzAUhd/5FZbVVzeJNU1qVSoBYS0bASuAtO7Foo5JvQWc2U6r/fuZurSrUmVk0zS/gHTO\
+tX3P9ZfJDrX1N96IDQdya4Ts9LmnjRLMULXrVkLRe65E88OHM+gZVYuOPghz58PHf+hZVdsqK59O\
+p1PoeVG+ILNzACc7rSa3opusGQP9QtqsfHZ21v+2798BxACSw6GnEqB5QeLIfrJ5HFZX1pXoLWf0\
+u5bKPKk0qMqcFhUhy7goaE7ibEEAarZK9i2gNe+4qg23xWuA8qbWtrKtFbvzu9qIe269GyPB80JN\
+J5HrF9UbUWvRrZ3gzkuJvSm40HKnGL+EXmRbiyL/t909OfPwY05KH77qFXp9QBGpPqTBVWHF1407\
+OYyz6JpGg2VkFNDLbS0JimJGh9K9cJzJ3itZJF9i6zgUlTPHn8tl8HKbN0Jzt3Y+ki/LIEzSpLwZ\
+unsMEnppkn0a9TjcbP54rBfy9itnRl/222zal3E/DwEAN6J0PmaYRwXWb7sIymuaJmGf1qYdjsqr\
+/i388hCWVWaFEybbtu5WDh78v+DZ6X/IDR7NDT7ADT7MDf4LbrDjBu9zY3Nx+nhk8Ehk8Dhk8PHI\
+HDPMkbTg0bQck1W/7R4t+E1afgKVOPDc
+exehash=662c677d0f4477ff312c9eb7844c9c73439a46ba32eca9e13cdf6de287004be5
+
+500.perlbench_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:50:47
+opthash=5bd0f9c928046a083e99de11face2bfb8b723401b2fc209a2a9d57c5d6ced82c
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNrVU8GOmzAQvfMVFneHVK2qJlpWAuIktCS2MEhpLxZLTNYtmJVNVt1+fQdI0kbdqntoD7WEGM+M\
+5s3Me962GjfFF1mpWqL2oVOttnPHdkaVnTBHvVdGPEqjqifffeU6YFpIAXsynU5dx4nohs2R6x2t\
+8e6U9g5lifqDbbf3y9msN5u3bxAuEW7PAJMW4QVnJILfdkHCfAUGI2kiIpoShOMJfHtlOy+mYJUP\
+hfYy1Ui8Vqm0Z8862ySYFcZKAy75tfOMBMM+yNIUeg8lFzQPEyJ4EvA14aJHjIPEn57QRZBnVPCc\
+sZRwLigj2w2DmEiCdEXEMk4Iv1z7m+A0TyPS+4YrXS45yUQYZ9yHGRE+IExfw8CFKe99XXTqUaLT\
+OUEm8Tbfid2QXekWj5vGRa0Kq/RhdB61LSoJZbp73K+sUd+KYXFjuFJadeewrp/Ae9DHdzOsdK00\
+7KAq26Zp9RUu6yFvbHs0pbx1nWiOosj/I29jIg3fU5b57hWJrgPERyxfJsGKQ+ya0CEakm20FpeE\
+/55h16FzBJuIN/EnAhM9Q/cwN6NpFoRxEmcfz4v5QfxQhOyyNBDReTX/WglDVyPms72xvi3o8MNL\
+nvLo/J3Uf9U5nJv27rMsO3vbJ9QNujyKi5oQGqSWLF6iyb/CAqBtgmwNrrCnoG5ODdC8V/pPMv8O\
+33uEXg==
+exehash=da51419028397adf783795465d5e7d46b7544819a1fdd34a01c495940d38a15e
+
+502.gcc_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:32
+opthash=84aa2d950cccb6fb8bcbdd2eabcd22c071c78c26fd529e000c30672e1575b736
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNq1UtFumzAUfecrLL87Sbd1WqJSCRyaeCPYCjBte7GoY1JvYHcYKrVfXwOlW6Vqy0stIa7uPb73\
++JybGI3q4pcsVSWBuW2V0Xbl2bZRouVNpw+q4XeyUeW9D8+g50LrIC6eLRYL6HmY7tgKwHlnm/m1\
+0vOjEKA/yLYHXyyXfVh//ACQAMhMA2YGoHXKIux+yToK8w1AZNZ/c6VF1R3kENtbKfhva5r2Cc7P\
+F++mMMgzytOcsX2UppyyKNkxVyMJ3+C+7zb4GnFMkyuy4VtH4ggQfe+4FI248XXRqjsJng8qtUHj\
+o1FRqcIqfRyTnbZFKd219gb17Gv1UAxvGMul0qqdyrq6d9mj7j4tkdKV0u4ZpTB1bfQ4ZWQeM6cH\
+uLCma4S8hB5eAYz9/0o4Amn4mbLMhy/0hJ7zALP8Kg42qau91HaohlGCt3wCvKnY0KMr4EiSHfkR\
+uWGvKD9Aom/ZPuB44vTWFgwyjDMZ3WdBSGKSfZ/UGlyBXkySL6es85j8505dmOufUrT2skdW9Z9d\
+e7YNgMHTeH2K+Sdo6nrtgmzLYxL2glb1U3ua9wvz17Y8AtEfKzw=
+exehash=819acba0a47fd12bc3c7da7c85264941d8f89011df65195a6ab53f5e5fbd60d0
+
+525.x264_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:46
+opthash=0afeb5ce7b3395d1b57166aa3e47fd089b6cf4afeb7ab0e5b2a8830cc74f222e
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNrtU99vmzAQfuevsHh3Sdssa6JSCQhr2Qi2+CG1e0HUMalbsCcMVdq/fgZCl0hVm5dp0oRfON8d\
+d+fvuy8QHJbZE81ZQYH4VTPB5UKTdcVInVYNX7MqfaYVy19M/VTXlClVirJPJpOJrmkOWuEF0I1G\
+VsY948aGENAeKOu1Sebz1ixnUwAJgGJocCIAXEbYddQnWLp2cg2gV6wpEetUVsRgXGV727PZtL3u\
+mQbd1lUm9z1ElKXgu3qplcQojRKMQzeKUoTdYIUPYvZd7KJw6YbmZHt6dj79Mvt6oUbcAIjO1aRZ\
+RR5MntXsmYK3A3MuYA8JzAqWScY3vbPhMsup+q1+gO3bSvaadS/swznjrB7CvHhR3g1vLuaQ8YJx\
+qq676bsu/ZQ+VmiBSymaitArXXMWwHHMTwHuE5H9HeHY1A/Q1jXFkIOTb751HanYIfJd1HYD5yYd\
+Ev4hFbqGFkA9wVt5P101yju8dCnubRxaqTNM/LcJ6kDqe2IUxpbt+V58N2DZcaZrvhf8OEYKvfPD\
+jbsU94+U1PKqzSzKP5v4RioAHeP+8pjVOAJTVWtlxTep79ktoEW5K4+Sdp32dmlU/Kj4UfGj4kfF\
+j4ofFf9/Kv43V6SZEg==
+exehash=01416fd84991bd7d6baf896abc1c1c5b67a6cbe5009d630c32adf0b3f31d9593
+
+557.xz_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:50
+opthash=db207b5f813628e5cd301cc205d208b033d0bd4d144e6245ed5ac334901d565a
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNrtVN9vmzAQfuevsHh3frRd10SlUkLchC1gRGBq+2I5jkm8gh1hUq3962egtESttrzsbZbA992d\
+7+C7Tw6UhDl95KnIOFD7Uiipx5YuC8FKUhzkRhTkiRcifXbsoW0ZU5sUY/cGg4FtWS72wzGw+wdd\
+9NdC9reMgWpBXW4cNhpVZn55ASADULUNegrA2SpErtmCGZom81dMJkmMyfQ+RjiaocgZ/BqenV98\
+ufx6ZRIWkx+IuDi49eZk4QzbIz7yiYdbdPdwVGqVhGGEViuCQxT4IYBezzx6zxnJeU6EqtCOwjOz\
+M5XnShojE+vsJad9uhcdVL068EM223H22MFa5HvD6btjw7OSHhXsgILKLWdqwwtD2BZAfG54owXb\
+OZKW4omDtwVTqWAzIEgzQbWQ28Z5kJqm3Bwrd7BiOhcvtOa7CadCirINy+zZeLfycDWCQmZCmi9N\
+X/+p7tKQuAzN7MC1VoeC8RvbcsfAdZ2/jrtJxNNvOIwd+2j2tmX04obJ7XIyX5nYsQ7q6BQF7oIc\
+JfwXBi9sC4+BIdTzvQdkiPlEJXUKuoujCXFb/v61XOqRNT1DHMWTqbf04vu3wVUKsq2lF3w/5Zpo\
+nH/U/7Va/+Ss1Degs971BUAtvuXsFJWeQGhdCyeVjDsa/g0wE5s9
+exehash=acb8529a5e3479c88f091ea0f1bef7200dd16b81160a52c3b7c015d2bfe2c122
+
+999.specrand_ir=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:51
+opthash=931cfbab34441c8f31ca9285c2a67f7e5e211e6824cf85c11aafbbf579d17f25
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNq1UlFPgzAQfu+vaPrebUZjHJElG8OJMiAbS9QX0nWFVaFdWlgyf70Fgm7G6F68F4777u67+66B\
+FLggbyzlOYNyV3IptAV0qTgtE1WJDVfJnimeHmx0gYBxtUkxfm8wGCAAnHAeWRD1K636ay76GaWw\
+NqzLjU2Hw9otrq8gphDLjqAnIZ4uI9cxn2DqTlYziD29Y1QRscFUFoUUpi6DOLw05UTRrS1IyfcM\
+fhpOhcTtnJjknGgusjZYCU1SZsrKLa4JC/5OGtoWTrngZQeL/GCimahuhpiLnAtmfrsBapZmzMSP\
+zArwVstKUTZCwLGg49h/bt0mhpOHMIptdCIBAkY2J1rd+ePZ0mCncjToxA2c+6RL+K4PAqEFTV9v\
+7r24Bv9BrCbFfYoX48Tp2vy3as3kLWcULuLxxPO9+LlbsBESAd8LHs95NG3w12dwK9evjJZ6BI/s\
+S2YImxv403OOdYagTa9wVV/z6JQfz5n7Ig==
+exehash=cec9428ef810cda0cdbbda5c0004d7a8a485862af3c544e720395406a63b22de
+
+520.omnetpp_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:52:52
+opthash=7170896242f47d9d1bbaf67da665ab85d63038e800e0b4c26958ce80f7bad925
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNq1UUtPg0AQvvMrJnslWzAaD6Q04bG2KGU3PGL1QihsK1rYhoeJ/94tltgmRntxLjOZ5/d9E4ga\
+V9kb35Q7DmLflaJuDaXtmjLv0qavi7JJ33lTbj5MdIUUGbayRcYTXdeRojh0yQxAWt822rqsta2q\
+wsFw2xVmrqr6NeDq9gZwDliMByYCsBsx4kgXuMRO5oC9tqz6XdaJRttLV/D9aU7GlSj4Tg48evEi\
+DUhsJ57vkvC4KbWSmKZRwlhIoiiljARLJmFsAdMDhKzJX8w668p3DqMdJ30m8cG0FX2T8xlSHAOc\
+1cr8k9PYSe17ymITnVFEipTFYcmdb80jWTunO1RtEjiLdGz4D/5IoQZIbN7Seybyxg9iDEjIKg6t\
+lNEwtmzP9+KnEfCgDVJ8L3i45Mlfyd8kh6lYv/K8a2dwYt+yAQyq+u4l8l9AbthFk8N3Tl7zCQlV\
+2HQ=
+exehash=b98c3655648414264b6708282e0f735e987abd609b58f4f492951afed00a5da9
+
+523.xalancbmk_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:53:31
+opthash=33fe2c11095c98ec29f6fc686a6380260f271a7bab6c5a1db6ac89895719188f
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNrtVN1umzAYvecpLG4jQrZVu4hKJQe8lA6whWFiu7GooZk3sCtMovbtZ0C0ZOu0StPuZgnx/ZzP\
+NucckSjptOX3+k40NVD3vVBSby3dd4L3rDvKSnTsVHfi7tGz39iWCbWBmHi92Wxsy/JxTLbAdo+6\
+c2+FdA+rFRiWo/vK46vV5h1w2vcXwOHAUfMBawWcgBLkm1cSoF2+NwMBJIQlmGXXKYIBNYUCRjBh\
+YRKjmMV0zyIMA5QCJ1yb56HueK35c+RWqj3PXNHeN4uSLh8W2bEXjRvrQ6TKynyVG8q4blX3+DMk\
+60qpuZowXMnTACibUnJXSN4cq9pclaT4hhVxRGBKhys+FfIsjOZ0atI5pbC48BfJ2zkOcDyHn2AU\
+BjDD45TZjuUUzYwgSuEezaSMfDKYZ5jRnJDUdBkmKIkJcA7AwYMOZce/erLsxakeNZpmojDJC7As\
+ECMYuNTqaGi4si1/C/yi8P4o8ozEuxtMMs8+09y2jE98kn+I4J6a3rn+Y3eHEv+amQ2eMP8t8W8s\
+YVt4C4xGYRx+QYboFwwyKkJwmsFdGIXZ51myyS5jFxVZCtmLGDK4wSA/vubfMBV/Y9JfXXqpbr/V\
+vNdXYLGejQbA6MMoeI1h/5qG8SScD25fWP0Hz/mUwg==
+exehash=183abcc0cc08586789e438463e5711c1db96c362d9ee7865f408410700819d6c
+
+531.deepsjeng_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:53:34
+opthash=07012bbeb02623a9b192a4e2da6bb7b84266044e1ece5ba0911465810254d88d
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNqNUV1vgjAUfe+vuOkrqbJs2QMRE8DOsQFt+Eh0L40ium4TloIm+/crTKImy8Z96W3vuefecxpV\
+Jdmv3out/Cig+mxkVdYWqhsl80aoQ7mRShwLJbdfNr7BSKe1huh8ZJomRshjIbcAjw+1Gq9lOd4Z\
+BrRB6mZj54Zh3gLZ398ByYFU/YBRBWSWcOrpI5pRN5u399AJAhHSkMXLU1k4WcpEknEe0yQRjNMo\
+5Jp7B4S1vCuVv9rlqpHHAvo4dQZcD4VJXR1UXkwx8izwFgv730V7JHOfGE9tfLU3Rlqrx7OHwJkn\
+unatoau6NPIexRkwUBRGzAI90A/9F6obf1HY0dNFGjuCszh1XD/w02W/RScYo8CPnod8x8/jXz7C\
+pFq/FXlTT+Eizl4AdFYFsyGeDhDXcbGstfzC728z2Lls
+exehash=98de8bf384c125395fe5156fb9438fe092b94ac97dcbe4e2b23c2ada5f2a6e6f
+
+541.leela_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:53:38
+opthash=2f1f63df0864751b52a7f6e3cfd3684a57c27f1a4cfb14559bd66349a00db30e
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNqNUNFOwjAUfe9X3PR1KcxofFgYyTYqTsfasC1BXxoYA6uymnaQ+PeWwSIkBrkvvbn39Jx7Tqpq\
+spl/VCv5WYH6aqSqjYdMo2XZCL2tl1KLXaXl6tvHNxjZ1liI7Xuu62KEIjbhHuD+1uj+Qtb9tePA\
+vohpln7pOO4tkM39HZASiOoEegrIKOM0sk86omExBhL3jjMRFDkTWcH5lGaZYJymE24J10DYnmyu\
+yze/njdyV0FXx58Jt0owMGqry2qIUeRBNJv5/17XIVn4xHju47NjMbIGI148JME4s7vzw9ttSNPo\
+UXSAy04wYh5YlXgSv1KL/sNWy0ln+TQQnE3zIIyTOH/ppFuXGCVx+nxN8IfhpfBgoBbvVdmYIZzU\
+bwAAbT7J6JogrzDXcrFin/NJyD/OSrJw
+exehash=2c0af257071500bf32683ff3c5d93f22651e278dadbe5469d5dc7cbbce6960a2
+
+548.exchange2_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:55:19
+opthash=22486be71bab3ebdc2399d31e9cc31a24122adedea4fb03610264eb5ac8c6376
+baggage=
+compiler_version=\
+@eNotjsFqwzAQRO/6ijkm0JrE7qk5ucJKBallZLnQU3AdOdZFKrLckr/vOgQWhhlmHgvBz5+VbqWq\
+z6oxJK/sWHcQIabYe2y678WnBfsiy7Pdc14sd/+yfSSMh59bdNcpYcO3yHd5ARGtRRvG9NdHS6TF\
+X/rkgn+C9EPGzORm0I1rbX7UDpjJpWlNljhYjCFiILbzV1J/cSthzgAzWaLSvlaMlvRkuh3gQ4L9\
+tf6++6g0fy9rU77JkzRfoEhIU1dtC6E0SjSlNpJ3p1Kj6XSj2ipj/9/qVFs=
+compile_options=\
+@eNqtkFFPgzAUhd/5FU3fYTMaE8lYAqybKKPNgER9aRgrs+ooadmi+/UWNnGaJfJgX3qbe3rPuV8k\
+SnOTvbKCvzEgqpqLUtmGqiXPayq35YpLumOSFx8OvICGLpWW6NoaDofQMKaE2ACqiuVVBcxJTJCv\
+r2iCvHR2fFM3TTCNU0IWKI4pJiiak69eSK6vwEiJrczZGJiiq62iqvierazi5h0a2sQn6TR0Z7ED\
+f9m0XQ9F/i39ITjr24rRQ7JwKcGLxPWCMEgeuy9NHGj4eN5sNdgqOVjycrAuhKxlVoLvY250bjNv\
+Eh+pWQKYa2DiS93LZP7slFnNd6xbSI+1wdR3/hx7EGLvDpNEBzv1+FcQ2AbaIZgHT0grz0TvxSoM\
+ovs+rA7VOUDdGYnlC8trNQann7vlAWjJhJM+CHss187CacP4BPAndKLddA==
+exehash=94f8ce66afd6ebe33a163a04e457e06501b1cb938789a08a98395f3f6afb6075
+
+500.perlbench_r=peak=c6itest-m64:
+# Last updated 2024-06-27 08:58:19
+opthash=26746eefd4c701d69be2dd89ab217f8349f05d47b236ed37fbc9e2bcc764ae86
+baggage=
+compiler_version=\
+@eNrtUMtqwzAAu/srdGxhC22y03ryTEINXWJsZ9BTyVzncbGL42z07+eUfsZAICQkHSSoUnswdvkq\
+peJNfWmETvROBmOwab8XFxfsiyzPdq95sTz02/bpEOZv9zANY8SGbZHv8gJVsBbK9/G3CxaVX9y1\
+i5N3L+DOZESP04yEfo3Nz9gBc1JxXJ0lGIveB5i0PbkhsbtO68KcAXq0aTX164akZuhcvB/gfIT9\
+se7R+ywlO9Ja0w9+4vqMZFVc16VSqBoJCkGl5qw9UQnRStGoMiNEpB/y/x/+AMbCphg=
+compile_options=\
+@eNrtVFFv0zAQfs+viCJevXYRQtpEJqWpuwbS2ooTafBiZanTGRqnst3B+PXYdVuYOm0BhgQIS1XP\
+d5e7831337wToK0+soavmN+tNe+EOveUlrzWVG7Egkt6yyRv7qLgNPC0rLign7i+iYKtHHjGqsxX\
+xnwyHA4Dz0vQDJ+e+8Fgo+TgmovBsq59e4DSi6g+O7Ni++qlD2ofdPukJ50PxgTDxPzNx3BUXhoB\
+wzyjCcqhD9IT81twpQcpMlK9rsSg4C0DU54ztddMi1kGcCUVk0bFPuuBZEZQa1bLSixMyDEqRxmk\
+JIvJFBJqM6ZxFg132WlcFoiSEuMcEkIRhvMZNjaaxfklpJM0g+RwtTdKUJkn0Oq2VzSZEFjQUVqQ\
+yLzRB81adra7YMkEk5VmRrf0AWoqpU0fKlnfRKLS/NYU2qx05+/Orp4snZdX9MqFEh1w0IBqxSvF\
+xdIpN0JVDTPB9A2w/Wz5l2rbVWduuOB6bxaru3vxsQ39WnUbWbOLwEsMdEkSPYnezhON3iBcRME9\
+LAPPDkCCy0kWXxJjvA+sM4/gPJnSg8dfD3XgIfMqHBNyenjVEfbOyXQsnaXvofF4bBJcnzDKi3iU\
+Zmnxbt/Jb0Ph4sGrIo9pcsj6TGPi8rvgD1aBbQGmlre91n2r+6ltOF4Fc1531x9YrdWFdVi1/mFv\
+DmPo+25Is3GfcX5uYGzmWVxMjW5kUVm1+2pQaRfmu23Jy7kxvKi7tjWT6xg0/M+gRwy6UX86eYa9\
+yTN8hDzDx8kz/CfJM3TkGR6Tp4Hd2fuvZ/g0b4a/kzfDfrwZ/jhv9tyBX6HMsDdlPjMmNvMRZYYP\
+UuZXamMstg==
+exehash=90f4c9c52de6dda1786d304e36f66611bb9d014dd912dc84023e8306644b6e51
+
diff --git a/example-benchmarks/spec_cpu_half_cores/configuration.yml b/example-benchmarks/spec_cpu_half_cores/configuration.yml
new file mode 100644
index 0000000..7dc4744
--- /dev/null
+++ b/example-benchmarks/spec_cpu_half_cores/configuration.yml
@@ -0,0 +1,300 @@
+configuration:
+ name: "SPEC CPU2017 Integer Rate - Half of Cores"
+ description: "Benchmark analyzing CPU throughput using half of cores (only physical cores)"
+ directory: spec_cpu_half_cores
+ cron: "0 * * * *"
+ instance-number: 1
+ instance-types:
+ - c3.2xlarge #Intel
+ - c4.2xlarge
+ - c5.2xlarge
+ - c6i.2xlarge
+ - c7i.2xlarge
+
+ - m5a.2xlarge #AMD
+ - c5a.2xlarge
+ - c6a.2xlarge
+ - c7a.2xlarge
+
+ - a1.2xlarge #Graviton
+ - c6g.2xlarge
+ - c7g.2xlarge
+ - c8g.2xlarge
+
+nodes:
+ - node-id: 1
+ ansible-configuration: ansible.yml
+ image-x86: ami-040ae5b7ceb70e213
+ image-arm: ami-0fb858c88e8a6483e
+ benchmark-command: ./run_spec.sh
+ output-command: python3 format_output.py /home/ubuntu/specbench/result/CPU2017.001.intrate.csv
+
+plots:
+ - type: scatter
+ title: SPEC CPU 2017 Total Score
+ yaxis: Score
+ series:
+ - y: SPECrate2017_int_base
+ legend: Int Rate Base
+ - y: SPECrate2017_int_peak
+ legend: Int Rate Peak
+
+ - type: scatter
+ title: 500.perlbench_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 500_perlbench_r_base_selected_time
+ legend: Selected Base Time
+ - y: 500_perlbench_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 500_perlbench_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 500_perlbench_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 500.perlbench_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 500_perlbench_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 500_perlbench_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 500_perlbench_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 500_perlbench_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 502.gcc_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 502_gcc_r_base_selected_time
+ legend: Selected Base Time
+ - y: 502_gcc_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 502_gcc_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 502_gcc_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 502.gcc_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 502_gcc_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 502_gcc_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 502_gcc_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 502_gcc_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 505.mcf_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 505_mcf_r_base_selected_time
+ legend: Selected Base Time
+ - y: 505_mcf_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 505_mcf_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 505_mcf_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 505.mcf_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 505_mcf_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 505_mcf_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 505_mcf_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 505_mcf_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 520.omnetpp_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 520_omnetpp_r_base_selected_time
+ legend: Selected Base Time
+ - y: 520_omnetpp_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 520_omnetpp_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 520_omnetpp_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 520.omnetpp_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 520_omnetpp_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 520_omnetpp_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 520_omnetpp_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 520_omnetpp_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 523.xalancbmk_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 523_xalancbmk_r_base_selected_time
+ legend: Selected Base Time
+ - y: 523_xalancbmk_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 523_xalancbmk_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 523_xalancbmk_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 523.xalancbmk_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 523_xalancbmk_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 523_xalancbmk_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 523_xalancbmk_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 523_xalancbmk_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 525.x264_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 525_x264_r_base_selected_time
+ legend: Selected Base Time
+ - y: 525_x264_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 525_x264_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 525_x264_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 525.x264_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 525_x264_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 525_x264_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 525_x264_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 525_x264_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 531.deepsjeng_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 531_deepsjeng_r_base_selected_time
+ legend: Selected Base Time
+ - y: 531_deepsjeng_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 531_deepsjeng_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 531_deepsjeng_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 531.deepsjeng_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 531_deepsjeng_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 531_deepsjeng_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 531_deepsjeng_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 531_deepsjeng_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 541.leela_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 541_leela_r_base_selected_time
+ legend: Selected Base Time
+ - y: 541_leela_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 541_leela_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 541_leela_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 541.leela_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 541_leela_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 541_leela_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 541_leela_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 541_leela_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 548.exchange2_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 548_exchange2_r_base_selected_time
+ legend: Selected Base Time
+ - y: 548_exchange2_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 548_exchange2_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 548_exchange2_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 548.exchange2_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 548_exchange2_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 548_exchange2_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 548_exchange2_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 548_exchange2_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 557.xz_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 557_xz_r_base_selected_time
+ legend: Selected Base Time
+ - y: 557_xz_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 557_xz_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 557_xz_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 557.xz_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 557_xz_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 557_xz_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 557_xz_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 557_xz_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
\ No newline at end of file
diff --git a/example-benchmarks/spec_cpu_half_cores/format_output.py b/example-benchmarks/spec_cpu_half_cores/format_output.py
new file mode 100644
index 0000000..8508478
--- /dev/null
+++ b/example-benchmarks/spec_cpu_half_cores/format_output.py
@@ -0,0 +1,59 @@
+import re
+import csv
+import sys
+import json
+
+def parse_spec_cpu_output(input_file):
+ with open(input_file, 'r') as f:
+ data = f.read()
+
+ lines = data.strip().split("\n")
+
+ parsed_data = {}
+ parse = False
+ for line in lines:
+ if line == "\"Full Results Table\"":
+ parse = True
+ elif line == "\"Selected Results Table\"":
+ parse = False
+
+ if parse and re.match(r'^\d{3}\.[a-z0-9]+.+', line):
+ fields = next(csv.reader([line]))
+ name = fields[0].replace(".", "_")
+ base_run_time = fields[2]
+ base_rate = fields[3]
+ base_selected = fields[4]
+ peak_run_time = fields[7]
+ peak_rate = fields[8]
+ peak_selected = fields[9]
+ if base_selected == '1':
+ parsed_data[f'{name}_base_selected_time'] = float(base_run_time)
+ parsed_data[f'{name}_base_selected_ratio'] = float(base_rate)
+ else:
+ parsed_data[f'{name}_base_not_selected_time'] = float(base_run_time)
+ parsed_data[f'{name}_base_not_selected_ratio'] = float(base_rate)
+
+ if peak_selected == '1':
+ parsed_data[f'{name}_peak_selected_time'] = float(peak_run_time)
+ parsed_data[f'{name}_peak_selected_ratio'] = float(peak_rate)
+ else:
+ parsed_data[f'{name}_peak_not_selected_time'] = float(peak_run_time)
+ parsed_data[f'{name}_peak_not_selected_ratio'] = float(peak_rate)
+
+ spec_base = re.search(r'SPECrate2017_int_base,([\d.]+)', data)
+ spec_peak = re.search(r'SPECrate2017_int_peak,([\d.]+)', data)
+
+ if spec_base:
+ parsed_data['SPECrate2017_int_base'] = float(spec_base.group(1))
+ if spec_peak:
+ parsed_data['SPECrate2017_int_peak'] = float(spec_peak.group(1))
+
+ print(json.dumps(parsed_data, indent=4))
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python format_output.py ")
+ sys.exit(1)
+
+ file_path = sys.argv[1]
+ parse_spec_cpu_output(file_path)
diff --git a/example-benchmarks/spec_cpu_half_cores/run_spec.sh b/example-benchmarks/spec_cpu_half_cores/run_spec.sh
new file mode 100644
index 0000000..35a6e0d
--- /dev/null
+++ b/example-benchmarks/spec_cpu_half_cores/run_spec.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+arch=$(lscpu | grep "Architecture" | awk '{print $2}')
+cores=$(( $(lscpu | grep "^CPU(s):" | awk '{print $2}') / 2))
+
+cd /home/ubuntu/specbench
+source shrc
+if [[ "$arch" == "x86_64" ]]; then
+ runcpu --config=config_x86 --iterations=2 --copies=$cores --reportable intrate >> log.txt
+elif [[ "$arch" == "aarch64" ]]; then
+ runcpu --config=config_graviton --iterations=2 --copies=$cores --reportable intrate >> log.txt
+fi
diff --git a/example-benchmarks/spec_cpu_single_core/ansible.yml b/example-benchmarks/spec_cpu_single_core/ansible.yml
new file mode 100644
index 0000000..91fa6b7
--- /dev/null
+++ b/example-benchmarks/spec_cpu_single_core/ansible.yml
@@ -0,0 +1,80 @@
+---
+- name: Install and run sockperf
+ hosts: localhost
+ tasks:
+ - name: Ensure the directory exists
+ file:
+ path: /home/ubuntu/specbench
+ state: directory
+ mode: '0755'
+
+ - name: Mount image
+ become: true
+ command: mount -t iso9660 -o ro,exec,loop cpu2017-1.1.9.iso /mnt
+ args:
+ chdir: /home/ubuntu
+
+ - name: Install SPEC CPU
+ command: ./install.sh -f -d /home/ubuntu/specbench
+ args:
+ chdir: /mnt
+
+ - name: Copy x86 config
+ copy:
+ src: /home/ubuntu/spec_cpu_single_core/config_x86.cfg
+ dest: /home/ubuntu/specbench/config/config_x86.cfg
+
+ - name: Copy ARM config
+ copy:
+ src: /home/ubuntu/spec_cpu_single_core/config_graviton.cfg
+ dest: /home/ubuntu/specbench/config/config_graviton.cfg
+
+ - name: Add flags tags to gcc.xml
+ community.general.xml:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ xpath: /flagsdescription
+ add_children:
+ - flag:
+ name: std-c-plus-plus-14
+ regexp: -std=c\+\+14
+ class: portability
+ - flag:
+ name: Wno-error-register
+ regexp: -Wno-error=register
+ class: portability
+ state: present
+ pretty_print: yes
+
+ - name: Add placeholder for C++14 description
+ community.general.xml:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ xpath: /flagsdescription/flag[@name='std-c-plus-plus-14']
+ value: DESCRIPTION_STD_C14
+ state: present
+ pretty_print: yes
+
+ - name: Add placeholder for WNo-Error description
+ community.general.xml:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ xpath: /flagsdescription/flag[@name='Wno-error-register']
+ value: DESCRIPTION_WNO_ERROR
+ state: "present"
+ pretty_print: yes
+
+ - name: Replace DESCRIPTION_STD_C14
+ replace:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ regexp: DESCRIPTION_STD_C14
+ replace: Compile source code with C++14.]]>
+
+
+ - name: Replace DESCRIPTION_WNO_ERROR
+ replace:
+ path: /home/ubuntu/specbench/config/flags/gcc.xml
+ regexp: DESCRIPTION_WNO_ERROR
+ replace: Disable treating the use of the 'register' keyword as an error.]]>
+
+ - name: Make run_spec.sh executable
+ file:
+ path: /home/ubuntu/spec_cpu_single_core/run_spec.sh
+ mode: '0755'
\ No newline at end of file
diff --git a/example-benchmarks/spec_cpu_single_core/config_graviton.cfg b/example-benchmarks/spec_cpu_single_core/config_graviton.cfg
new file mode 100644
index 0000000..8d73351
--- /dev/null
+++ b/example-benchmarks/spec_cpu_single_core/config_graviton.cfg
@@ -0,0 +1,698 @@
+#------------------------------------------------------------------------------
+# SPEC CPU2017 config file for: gcc / g++ / gfortran on Linux ARM systems
+#------------------------------------------------------------------------------
+#
+# Usage: (1) Copy this to a new name
+# cd $SPEC/config
+# cp Example-x.cfg myname.cfg
+# (2) Change items that are marked 'EDIT' (search for it)
+#
+# SPEC tested this config file with:
+# Compiler version(s): 5.3, 6.2
+# Operating system(s): Ubuntu 16.04
+# Hardware: Cavium ThunderX, HPE Moonshot
+#
+# If your system differs, this config file might not work.
+# You might find a better config file at http://www.spec.org/cpu2017/results
+#
+# Known Limitations
+# It is possible that you might encounter compile time or run time errors
+# with older versions of GCC (for example, 4.x)
+# Recommendation: Use a newer version of the compiler.
+# If that is not possible, try reducing the optimization.
+#
+#
+# Compiler issues: Contact your compiler vendor, not SPEC.
+# For SPEC help: http://www.spec.org/cpu2017/Docs/techsupport.html
+#------------------------------------------------------------------------------
+
+
+#--------- Label --------------------------------------------------------------
+# Arbitrary string to tag binaries
+# Two Suggestions: # (1) EDIT this label as you try new ideas.
+%define label spec_graviton # (2) Use a label meaningful to *you*.
+
+
+#--------- Preprocessor -------------------------------------------------------
+%ifndef %{bits} # EDIT to control 32 or 64 bit compilation. Or,
+% define bits 64 # you can set it on the command line using:
+%endif # 'runcpu --define bits=nn'
+
+%ifndef %{build_ncpus} # EDIT to adjust number of simultaneous compiles.
+% define build_ncpus 8 # Or, you can set it on the command line:
+%endif # 'runcpu --define build_ncpus=nn'
+
+# Don't change this part.
+%define os LINUX
+
+%ifndef %{model}
+% if %{bits} == 64
+% define model -mabi=lp64
+% elif %{bits} == 32
+% define model -mabi=ilp32
+% else
+% error Please define number of bits - see instructions in config file
+% endif
+%endif
+
+
+#--------- Global Settings ----------------------------------------------------
+# For info, see:
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#tune
+
+command_add_redirect = 1
+flagsurl = $[top]/config/flags/gcc.xml
+ignore_errors = 0
+iterations = 1
+label = %{label}-%{bits}
+line_width = 1020
+log_line_width = 1020
+makeflags = --jobs=%{build_ncpus}
+mean_anyway = 1
+output_format = txt,html,cfg,pdf,csv
+preenv = 1
+reportable = 0
+tune = base,peak
+
+
+#--------- How Many CPUs? -----------------------------------------------------
+# Both SPECrate and SPECspeed can test multiple chips / cores / hw threads
+# - For SPECrate, you set the number of copies.
+# - For SPECspeed, you set the number of threads.
+# See: https://www.spec.org/cpu2017/Docs/system-requirements.html#MultipleCPUs
+#
+# q. How many should I set?
+# a. Unknown, you will have to try it and see!
+#
+# To get you started, some suggestions:
+#
+# copies - This config file defaults to testing only 1 copy. You might
+# try changing it to match the number of cores on your system,
+# or perhaps the number of virtual CPUs as reported by:
+# grep -c processor /proc/cpuinfo
+# Be sure you have enough memory. See:
+# https://www.spec.org/cpu2017/Docs/system-requirements.html#memory
+#
+# threads - This config file sets a starting point. You could try raising
+# it. A higher thread count is much more likely to be useful for
+# fpspeed than for intspeed.
+#
+intrate,fprate:
+ copies = 1 # EDIT to change number of copies (see above)
+intspeed,fpspeed:
+ threads = 8 # EDIT to change number of OpenMP threads (see above)
+
+
+#------- Compilers ------------------------------------------------------------
+default:
+# EDIT: the directory where your compiler is installed
+%ifndef %{gcc_dir}
+% define gcc_dir /usr
+%endif
+
+# EDIT if needed: the preENV line adds library directories to the runtime
+# path. You can adjust it, or add lines for other environment variables.
+# See: https://www.spec.org/cpu2017/Docs/config.html#preenv
+# and: https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
+ preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64
+ #preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64:%{ENV_LD_LIBRARY_PATH}
+ SPECLANG = %{gcc_dir}/bin/
+ CC = $(SPECLANG)gcc -std=c99 %{model}
+ CXX = $(SPECLANG)g++ -std=c++03 %{model}
+ FC = $(SPECLANG)gfortran %{model}
+ # How to say "Show me your version, please"
+ CC_VERSION_OPTION = -v
+ CXX_VERSION_OPTION = -v
+ FC_VERSION_OPTION = -v
+
+default:
+%if %{bits} == 64
+ sw_base_ptrsize = 64-bit
+ sw_peak_ptrsize = 64-bit
+%else
+ sw_base_ptrsize = 32-bit
+ sw_peak_ptrsize = 32-bit
+%endif
+
+
+#--------- Portability --------------------------------------------------------
+default: # data model applies to all benchmarks
+%if %{bits} == 32
+ # Strongly recommended because at run-time, operations using modern file
+ # systems may fail spectacularly and frequently (or, worse, quietly and
+ # randomly) if a program does not accommodate 64-bit metadata.
+ EXTRA_PORTABILITY = -D_FILE_OFFSET_BITS=64
+%else
+ EXTRA_PORTABILITY = -DSPEC_LP64
+%endif
+
+# Benchmark-specific portability (ordered by last 2 digits of bmark number)
+
+500.perlbench_r,600.perlbench_s: #lang='C'
+%if %{bits} == 32
+% define suffix AARCH32
+%else
+% define suffix AARCH64
+%endif
+ PORTABILITY = -DSPEC_%{os}_%{suffix}
+
+520.omnetpp_r:
+ PORTABILITY = -Wno-error=register -std=c++14
+
+521.wrf_r,621.wrf_s: #lang='F,C'
+ CPORTABILITY = -DSPEC_CASE_FLAG
+ FPORTABILITY = -fconvert=big-endian
+
+523.xalancbmk_r,623.xalancbmk_s: #lang='CXX'
+ PORTABILITY = -DSPEC_%{os}
+
+526.blender_r: #lang='CXX,C'
+ PORTABILITY = -funsigned-char -DSPEC_LINUX
+
+527.cam4_r,627.cam4_s: #lang='F,C'
+ PORTABILITY = -DSPEC_CASE_FLAG
+
+628.pop2_s: #lang='F,C'
+ PORTABILITY = -DSPEC_CASE_FLAG -fconvert=big-endian
+
+#----------------------------------------------------------------------
+# GCC workarounds that do not count as PORTABILITY
+#----------------------------------------------------------------------
+# The workarounds in this section would not qualify under the SPEC CPU
+# PORTABILITY rule.
+# - In peak, they can be set as needed for individual benchmarks.
+# - In base, individual settings are not allowed; set for whole suite.
+# See:
+# https://www.spec.org/cpu2017/Docs/runrules.html#portability
+# https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+# Integer workarounds - peak
+#
+ 500.perlbench_r,600.perlbench_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only
+ 502.gcc_r,602.gcc_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fgnu89-inline
+ 505.mcf_r,605.mcf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/505.mcf_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 525.x264_r,625.x264_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/525.x264_r.html
+ EXTRA_CFLAGS = -fcommon
+#
+# Integer workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ intrate,intspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only -fgnu89-inline -fcommon
+#
+# Floating Point workarounds - peak
+#
+ 511.povray_r=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/511.povray_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 521.wrf_r,621.wrf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/521.wrf_r.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ 527.cam4_r,627.cam4_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/527.cam4_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ # See also topic "628.pop2_s basepeak" below
+ 628.pop2_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+#
+# FP workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ fprate,fpspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+
+#-------- Tuning Flags common to Base and Peak --------------------------------
+
+#
+# Speed (OpenMP and Autopar allowed)
+#
+%if %{bits} == 32
+ intspeed,fpspeed:
+ #
+ # Many of the speed benchmarks (6nn.benchmark_s) do not fit in 32 bits
+ # If you wish to run SPECint2017_speed or SPECfp2017_speed, please use
+ #
+ # runcpu --define bits=64
+ #
+ fail_build = 1
+%else
+ intspeed,fpspeed:
+ EXTRA_OPTIMIZE = -fopenmp -DSPEC_OPENMP
+ fpspeed:
+ #
+ # 627.cam4 needs a big stack; the preENV will apply it to all
+ # benchmarks in the set, as required by the rules.
+ #
+ preENV_OMP_STACKSIZE = 120M
+%endif
+
+
+#-------- Baseline Tuning Flags ----------------------------------------------
+#
+default=base: # flags for all base
+ OPTIMIZE = -g -O3 -march=native
+
+intrate,intspeed=base: # flags for integer base
+%if %{bits} == 32
+ EXTRA_COPTIMIZE = -fgnu89-inline -fno-strict-aliasing
+%else
+ EXTRA_COPTIMIZE = -fgnu89-inline -fno-strict-aliasing
+ LDCFLAGS = -z muldefs
+%endif
+# Notes about the above
+# - 500.perlbench_r/600.perlbench_s needs -fno-strict-aliasing.
+# - 502.gcc_r/602.gcc_s needs -fgnu89-inline or -z muldefs
+# - 520.omnetpp_r needs -fno-new-ttp-matching (See https://inbox.sourceware.org/gcc-patches/20200629145741.GG3394@redhat.com/T/)
+# - For 'base', all benchmarks in a set must use the same options.
+# - Therefore, all base benchmarks get the above. See:
+# www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+# www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html
+# www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
+
+#-------- Peak Tuning Flags ----------------------------------------------
+default=peak:
+ OPTIMIZE = -g -Ofast -march=native -flto
+ PASS1_FLAGS = -fprofile-generate
+ PASS2_FLAGS = -fprofile-use
+
+# 628.pop2_s basepeak: Depending on the interplay of several optimizations,
+# 628.pop2_s might not validate with peak tuning. Use the base
+# version instead. See:
+# https:// www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+628.pop2_s=peak:
+ basepeak = yes
+
+ #
+ # -----------------------
+ # About the -fno switches
+ # -----------------------
+ #
+ # For 'base', this config file (conservatively) disables some optimizations.
+ # You might want to try turning some of them back on, by creating a 'peak'
+ # section here, with individualized benchmark options:
+ #
+ # 500.perlbench_r=peak:
+ # OPTIMIZE = this
+ # 502.gcc_r=peak:
+ # OPTIMIZE = that
+ # 503.bwaves_r=peak:
+ # OPTIMIZE = other .....(and so forth)
+ #
+ # If you try it:
+ # - You must remove the 'basepeak' option, above.
+ # - You will need time and patience, to diagnose and avoid any errors.
+ # - perlbench is unlikely to work with strict aliasing
+ # - Some floating point benchmarks may get wrong answers, depending on:
+ # the particular chip
+ # the version of GCC
+ # other optimizations enabled
+ # -m32 vs. -m64
+ # - See: http://www.spec.org/cpu2017/Docs/config.html
+ # - and: http://www.spec.org/cpu2017/Docs/runrules.html
+
+
+#------------------------------------------------------------------------------
+# Tester and System Descriptions - EDIT all sections below this point
+#------------------------------------------------------------------------------
+# For info about any field, see
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#hw_memory
+#-------------------------------------------------------------------------------
+
+#--------- EDIT to match your version -----------------------------------------
+default:
+ sw_compiler001 = C/C++/Fortran: Version 13.2.0 of GCC, the
+ sw_compiler002 = GNU Compiler Collection
+
+#--------- EDIT info about you ------------------------------------------------
+# To understand the difference between hw_vendor/sponsor/tester, see:
+# https://www.spec.org/cpu2017/Docs/config.html#test_sponsor
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ hw_vendor = Amazon Web Services
+ tester = TUM I13
+ test_sponsor = TUM
+ license_num = nnn (Your SPEC license number)
+# prepared_by = # Ima Pseudonym # Whatever you like: is never output
+
+
+#--------- EDIT system availability dates -------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+ hw_avail = # Nov-2099 # Date of LAST hardware component to ship
+ sw_avail = # Nov-2099 # Date of LAST software component to ship
+
+#--------- EDIT system information --------------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+ # hw_cpu_name = # Intel Xeon E9-9999 v9 # chip name
+ hw_cpu_nominal_mhz = # 9999 # Nominal chip frequency, in MHz
+ hw_cpu_max_mhz = # 9999 # Max chip frequency, in MHz
+ # hw_disk = # 9 x 9 TB SATA III 9999 RPM # Size, type, other perf-relevant info
+ hw_model = # TurboBlaster 3000 # system model name
+ # hw_nchips = # 99 # number chips enabled
+ hw_ncores = # 9999 # number cores enabled
+ hw_ncpuorder = # 1-9 chips # Ordering options
+ hw_nthreadspercore = # 9 # number threads enabled per core
+ hw_other = # TurboNUMA Router 10 Gb # Other perf-relevant hw, or "None"
+
+# hw_memory001 = # 999 GB (99 x 9 GB 2Rx4 PC4-2133P-R, # The 'PCn-etc' is from the JEDEC
+# hw_memory002 = # running at 1600 MHz) # label on the DIMM.
+
+ hw_pcache = # 99 KB I + 99 KB D on chip per core # Primary cache size, type, location
+ hw_scache = # 99 KB I+D on chip per 9 cores # Second cache or "None"
+ hw_tcache = # 9 MB I+D on chip per chip # Third cache or "None"
+ hw_ocache = # 9 GB I+D off chip per system board # Other cache or "None"
+
+ fw_bios = # American Megatrends 39030100 02/29/2016 # Firmware information
+ # sw_file = # ext99 # File system
+ # sw_os001 = # Linux Sailboat # Operating system
+ # sw_os002 = # Distribution 7.2 SP1 # and version
+ sw_other = # TurboHeap Library V8.1 # Other perf-relevant sw, or "None"
+ # sw_state = # Run level 99 # Software state.
+
+# Note: Some commented-out fields above are automatically set to preliminary
+# values by sysinfo
+# https://www.spec.org/cpu2017/Docs/config.html#sysinfo
+# Uncomment lines for which you already know a better answer than sysinfo
+
+__HASH__
+502.gcc_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:04:30
+opthash=f109483d241781652e51b7b88d11d9a21c1a4cb053bc972cd7a7fdcb122a309b
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNq1UtFumzAUfecrLL87SdttWqJSCRyaeCXYClBte7ESByJvYKcYKrVfX5uUNn1qHjZLiCPuMffc\
+c26iFao3f4tSVgXQh1ZqZWaeaRspWt50aicb/lg0snzy4QX0LDSWYvFoMplAz8N0xWYAjjvTjLdS\
+jfdCAHeQaXe+mE4drDdb6VeHb18AEgDpoc1IAzRPWYTtK5lHYb4AiIzcM5ZKVN2u6LE5FII/GN20\
+r3T+dXI5wCDPKE9zxtZRmnLKomTFbI0kfIHdf5fBfcQxTW7Jgi+tFHoFTg4q96r7PkVSVVLZbqXS\
+6Dg62lRyY6TaO9axVczsAODa6K4RxQ308Axg7J85+ZFOwx+UZT78YAP0rIGY5bdxsEht7aMlfTWM\
+ErzkA+G/egQ9OgNWJFmR35FtRq/6L9HPbB1Y0nvhc+t66ceLjK6zICQxyX4NE/Z+Qi8myd35+wPQ\
+M6i7aleUpiedxHlOltd6+6cQrblx/Kp+v/sWBgB9UvH8/GCpo+MhnDd9/9RIK2kVZEsek9A1qepX\
+lTR323SySi8GFRoV
+exehash=5104cdfe94db9b351f6890ead073919d3dd7fcbe28495886f98c547b67586ef7
+
+500.perlbench_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:20:40
+opthash=947c5d5bb410de4cb52ba0adb24d11823e0351a2d31dca231ec6a4a5b3e13e18
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNrVU12rmzAYvvdXBO9TO84Yazke0DStbmkTjMLZboK1acmmsRgd2/n1S+zHTmGwwi7GAuKbN8/7\
+/bybVsOm/Cr3qpagPfaq1Wbumb5TVS+6Qe9UJ77JTu1/hP4b37OisRArT6bTqe95iK7ZHPjBYLpg\
+q3RwqCrgDjT9LqxmMyc25VaF9fHdWwArANtLmEkL4IIzjOxvs8BxsbICwxkRiGYYwHRiv50yfZBS\
+K1XHUge5aiRMVCbNRZPkawJZ2RnZWZX83gedtII5yqor9c66XNAiJlhwEvEEc+EiphEJp+foIipy\
+KnjBWIY5F5ThzZrZN0GibIXFMiWYX6/uJjgtMoSdbrzS5ZLjXMRpzkNbI4D0AZzPOQJJN8WziKIM\
+JQ5g9fuDHt7PoNK10jbdvW7hqeewrFVplD68smbO6NG0Q1fJJ99Dc4BQeGfLT3Aaf6AsD/2b/vue\
+nRxixZJEK27fbmcxvsZ4gxJxBfz3w/E9Oge2E+k6/YxtRfRhLJPRLI/ilKT5p0sfbmc22uHnPIts\
++b/M/zzF0f3J8LdBmPNtQ328f4cAfAHNUO/k3oygM9v+hmqP7faLrHrz5PB1A670vXIFgJFIZHE/\
+76iDowt3rjn/gxHYxNdRnlh/sUulbs610MKtxKt9+Anm8HdT
+exehash=d05a3a8991d2354440134f80d8ee02b2ba72cbe3e9db2f47c33108e3298f4bae
+
+505.mcf_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:20:43
+opthash=2b4ee5d95adc68b4be57409edc22f0f0064766b5e23db32adb25cf345a157ec4
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNqtUtFugjAUfecrmr5XXVyWacQEKlM2pI1Asu2lQUTTDVpHYcn29SugDp/Gw/rS295ze885t74U\
+KI/f0z3PUiCPJZdCTQ1VFjwpWVGJHS/YZ1rw/ZcJb6ChQ6UhOh6MRiNoGJis6RTAYaWK4ZaL4SFJ\
+QL2QKndmMpnUYR5vuZkd724BSgCS5zYDCdAioA7Wm79w7Gipsa46pgn7ULIoT1lmRSFhQUTpxgkC\
+RqjjrylAZAw6C+0PorqfIC4yLlJ9FBK1IlCc8VhxcahR7YMe1VTATMmqSNI5NPAUYGz21NDCif1I\
+aGjCK0HQ0FZgGj141jLQuWtxTdZ2fLxi+IzoqRYaZAp0P3ftvjq6jIybG+c53FgMdxJ/u9CwaAsp\
+2YSW7Xpu+HIm21gDDc/1n/oPFaBvkFfZLt2rBtSZTJ+xzOT2LU1KNa/xWf5be/EVgMZ0b9F/RqSG\
+X2y+8PtXIzWltRWumOfadZMsP7EkUf0xOr/iByWg/Ws=
+exehash=1f2e6cf9670ff39d468e67fa6a1b9d33d630807ca98a1c1e435b76b6d9272e63
+
+520.omnetpp_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:22:49
+opthash=274005286c078201e7a17f3e4b5c63e726b9fe2abd72d9e87de35af6c25702cc
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNq1UctOwzAQvPsrLF+rNEVFHKKmUh6mNaSxlYcoXKw2dZEhjSMnQeLvMSmBFi694MuuvbO7M+NY\
+VdZh8yr2shRQ1a1UVeOAptWyaLnuqp3U/E1ouX930RUCJm0MxOTjyWSCAAjoijkQ2V2j7a2s7OfR\
+CP46Zv5WumV9cw2tAlpqWDNW0ApThgMT4hD7+QJapJGHrty0Stu1CTtRn76Z/KB2ojQNDyRb8hhn\
+fk6iECdfk7iXZ5SnOWMJTlNOGY5XzDCg0x82R2DEDB04a1SnCzFHIHBgsF67FwoZ8NS/oyxz0Zku\
+BIwjActvI2+Rmtq5xr7q4zhY8gHwH6IRoA403MiKPGGzg077xXidJR5nNMk8n0Qkexz49YYgEJH4\
+/vLvPN5PzIUztX0RRdvMzzq+rYGwdy4KLzf6r4x+AM0/bT/x/AP2tsQE
+exehash=1cf2aed85696fcfe3a730b6638402f19d208b0c45616569d233848172725a44e
+
+523.xalancbmk_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:28:06
+opthash=6d3d0e94f77cea8d755bb0658ee676291353bcf5b40fe2e49963fc426b39d5b4
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNrtVEFvmzAUvvMrLK4VIVurHaKmkgNeSmdjC8PEdrEIoZU3giNMqvbf9wVERrodssNuQ0K8773P\
+D/t9nxybxtsVP6tHXVfI7DttGrtwbNfqslPtodnqVj1XrX58XbofXAdCCxSIZ/P53HWcgDOxQK5/\
+sK2/0Y3/dHWF3j3Qf6OX9f7TDfJK5JnxNzODvFAKEsAnDskqWwM3xEKomKv0PiE4lJDIMcWximJG\
+mGJyrSjHIUmQF83gfanasrLlr8jfmt058vVuX09StniZoEOna5/ZJ2qKLZzNjxpW7Uz7+p6StkVj\
+SzNwStM8HwlFXTSlr5uyPmwr2KpI+IPKGRU4kcctnhJZGtERDkU5Qonzm2ACPo5xyNkYfsU0CnHK\
++1XQTmWSjBMhUuI1GYfSz1PhLOVKZkIkUFVckJgJ5PHrXo2BQqM4y9E0IUAfdGvNAU595zrBAgV5\
+vrxQ2ZHPVw9cpEv3TGjXAYsEIvtM8VpC7Vz0vroicXCvoMGJ898H/8YHrsMXCDSKWPSdwKD5dS+A\
+4EmKVxGN0m+jQoNH+irJ0wSrP3LEUXxgfrn8FhjwYMff/XhrNj+qsrN3Z6tPZkKo9xoNL7fm3x64\
+b8+zo40nHn4DYzCAUg==
+exehash=c7afcfbdfebfed96e6db07f3747c9f0d57546e96a0c087fd295607c4331a3ca1
+
+525.x264_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:28:47
+opthash=9f8249deba2ee1bc4326c744c0aad9b1c72974092b5a064cd194306c4abc49a8
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNrtU11vmzAUfedXWH53SZssa6JSCYjXshFs8SGte7GIQyJvYFcYpmy/foY0HXlaHip1D/jF177H\
+9r3n+ERKoir/UexEWQD13Agl9dLSTS14w+pWbkXNfha12P1y4DW0TKgNxMRXk8kEWpZP1nQJoN3q\
+2t4Iae85B91Autk6fLHowirfCKd8ns8A4gCp0zNXCqBVQrFvpmiFvewBoKDcFlxtma65LaRBB4eb\
++axbDkK7ODR1roc7XFWVki/3MTdLCUsySmOcJIxQHK3pWc57SjGJVzh2Jofrm+nsw/zjrSmUTMFg\
+oN1etrcLJGQpZGGWUqEjMSgvRa6F3Heo47UhNe2BO63amhf30PKXwPedC3k5won3mdDUgWckQcvQ\
+69PsU+g+JCZ3Tlif9XDkP7IT4B0ZhBZZAtNCsA6+YVMKmfY7+Gsau8wfJP5NbN/Y8SAlcep6QRik\
+T6f+e7ahFQbRl8v/HkC/QdUadna6Bw3EvkTpO7X5XvBG33f4svp79lUqAHodw9XlspMO7p+ke63v\
+TYk0Ja3d9JGFgdc9UlYvVZKs+2uDjzZ6efTy6OXRy6OXRy+PXv5/vPwHT71lnQ==
+exehash=67469200b738606c248c542608d955fae32c6d0d607cb97bf57a70f767d6ff33
+
+531.deepsjeng_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:28:52
+opthash=7b83f00e401cd189a6e69735bcb63a0af85e9342734f1788fb82d1e640a9d463
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNqNUMtOwzAQvPsrLF+rtEFFHKKmUh6mBOzYykNKuVgkpMhQ4ioPJP4eN21oA5f44l3t7MzOhKoy\
+Pl8+yp3cl1AdWqmqxgJNW8uiFXVXvcpafJW13H3b6AYBXTYaouu5aZoIAI9RbkG06Jp6kctq8Tab\
+wT9P8+fS3h/ubqFRQEMNMnMFDT/m2NNf6GM33Rx76hAiKKYs2p7HwkkTJuKU8wjHsWAch5RrWra8\
+SJyAhGsNuGpUVxflGgHPgl6W2ROvG/DMfWQ8sdHoWAS0TY+n98TZxHo2Pryfujj0HsQFMNEJAsyC\
+WjCgwTPWi2zZs+EsiRzBWZQ4bkCCZDuI9i4RIEH4ND34U3+VGFyp/L0s2mY92vj1C2EfB/Gnp/ff\
+Rk/A0mOWV0H+ACXCpPw=
+exehash=13c9182a8c3b527b60e2e0c4f73d5ce349e281bff507020815536a048b3034d8
+
+541.leela_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:06
+opthash=a25eb362e6d382db558c966a388109f406c2dd1d4e0bbe1c8906a0a369648988
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2QDiEtNMy4wMFkskMCRnitLkxsrQ2CrLk6CM4+fWVjR2cQC/2SKtdvd33\
+ntD08XG6/jNf3V8vb9fLu9j/xsGD4TJDiePCYi6RKYCaQTBdLhbzaby+mk6j0BkdJlyGWa/3HljE\
+y/Xf1eTubr7aHxA8gRJomFEaEqLp5scFFly6EmfShcNRKKzCO02KAnSwvLxcLCezdTxZXc3j9e3k\
+Zn4fyZfCllgqCZ/js/nl5GERR8MgJjoDO0ZHNwRTJVOeOQ0M7bjdjNFgEBpNQ9ruI/yCMK5iuNhm\
+L6ANVzL68pA4aR0ajgbngzN8PnL1+uJLezZxPllEKRcwDsO6VbMhGkKm6maxb201n8xu5oPfLjM+\
+DSRJBGBBZOZIBiaifcJIn/Z6/Uz1WT9V2moi+yp5otUHV5H83GcWGlJe1vNsr69uyMmT0rhBjJUU\
+r/VZlWmSY+PSKsfD6Gw2hY6mhA/w6iZYBy6XW9C4EgLDvAo0jDKuPzDcIFOu0gsVjgHDnhMLpT1U\
+sxsNhJmoUIaX+1rdOoeDUnRGRoWiREDkkXaBJcYyWpaYgSfjVMDyHKJXMO3QGKTEeT0fTpCERxJ2\
+p5ITQreeDwqHYDUpJ/mzA+z5AVo1xrhpE58dYTmxm9O7npGi8BQfyhXCZd5a7+sWXsGhRWxejYUc\
+v32YjV8UG5Uog+kG6Nb7NNIggJj3NFvboZsdEWfVoUSlMa+hT7u5v51X2jhseblg6lGDn9X3Ef55\
+MboY/uo0uAOtle4UTlOhCGsQmI55o7DWUOMNzK53s91Zu9rbLPRMciJDmxe4TmwU/6l2M6dapa3k\
+qGMEM829Gzq6OR5PjeHYAD6yUcaeDOxbOQ4FcS1mlCsGYoxqSQf3e5I9Nv8SIqpybzlT+RMRkSnt\
+0eZmjGo+37zQAt8/ahzcvDXo63+enm8o+Ae/iPZE
+compile_options=\
+@eNqNUMtOwzAQvPsrVr5WeaAiDlFTKQ9TAkls5SEFLhYJKTKUuMoDib/HTQm0IKH44rV3dnZmYtlo\
+b4+v9VbsapD7Xsims1DXt6LqeTs0T6Ll73Urth82vsBIlZ2CqFo3TRMj5NGIWYCNoWuNUjTG82IB\
+v47iL4W9219dglaBJqc1ugTNTxnx1BX7xM03oAX61x938ozyNGcsIWnKKSNxxBQXXf7wHoEhU8Sw\
+6uTQVvUaI88CryjsmZImPHVvKctsfKYQI+XNY/l16GxS1TtXO3ZdEns3fAL8Lx8jaoHaEkTBA1Fo\
+uhwpSJElDmc0yRw3CIPsfto0WsMoDOK7+REf3ycxwUqWL3XVd+uziW+TAGMGoT8/sr82RgKaHwI8\
+Se8TH9yeAA==
+exehash=59eb1a8fb591abab12921ae4158c3efbaa5cd7788013faed4c2482117473de7b
+
+548.exchange2_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:26
+opthash=54bed106c6ee37e8de4e41711455fdf3bb1eb9c3be994b3f3fc94ad7a4dc44a1
+baggage=
+compiler_version=\
+@eNp1VE1z2jAQvftX6NZ2gnAItNMy4wPlI5MZEjLEaY+MLK1tBVly9BFIfn1lYwcn0Is90mpXb/e9\
+J7SYbv7M1w83q7vN6j72v3HwaLjMUOK4sJhLZEqgph9MV8vlfBpvrqfTKHRGhwmXYZYqbTWR79Fl\
+vNr8XU/u7+frwynBE9gDDTNKQ0I0zX+MsODS7XEmXTgYhsIqvNOkLEEHq8ViuZrMNvFkfT2PN3eT\
+2/lDJF9Ku8dSSfgcn80Xk8dlHA2CmOgM7Bid3BBMlUx55jQwtOM2H6N+PzSahrTdR/gFYVzFcLnN\
+XkAbrmT05TFx0jo0GPav+pf4aujq9ehLezZxPllEKRcwDsO6VZMTDSFTdbPYt7aeT2a38/5vlxmf\
+BpIkArAgMnMkAxPRHmGkRy8uepnqsV4zyp5Knmj1wVWkuPKZpYaU7+t5ttdXNxTkSWncIMZKitf6\
+rMo0KbBxaZXjYXQ2m0InU8JHeHUTrAOXyy1oXKmBYV4FGkYZ1x8YbpApV4mGCseAYc+Jhb09VrO5\
+BsJMVCrD94da3TrHg1J0RkaFokRA5JF2gSXGMrrfYwaejHMBywuIXsG0Q2OQEudFfTxBEh5J2J1L\
+Tgjdej4oHIPVpJzkzw6w5wdo1Rjjpk18doQVxObndz0jZekpPpYrhcu8v97XLbySQ4vYvBoLBX77\
+MBu/KHOVKINpDnTrzRppEEDMe5qt7dDNjoiz6lii0pjX0Kfdwt/OK20ct7xcMPWowc/q+xD/HA1H\
+g1+dBnegtdKdwmkqFGENAtMxbxTWGmq8gdnNbra7bFcHm4WeSU5kaIsS14mN4j/VbuZUq7SVHHWM\
+YKa5d0NHN6fjqTGcGsBHcmXs2cChldNQENdiRoViIMaolnTwcCDZY/MvIaKq8JYzlT8REZnSHm1h\
+xqjm880LLfD9o8bBzVuDvv7n6fmGgn+sp/g9
+compile_options=\
+@eNqtkMtOwzAQRff5Csv7pEVFSERNpSR1SyCNrTwkYGO1qYMMJbbsFAFfj5OWUB6LLJiNZzTXM3NP\
+Imr7ef3EKr5jQMiGi1q7lm4ULxuq9vWWK/rCFK/ePHgGLZNqIzG5Mx6PoWUtCHEB1JKVUgJ7nhEU\
+mieZo6BYHmvqFzmmWUFIirKMYoKSFfnsxeTiHEy12KuSzYAt+typpOTvbOtUl6/QMktCUixif5l5\
+8MearhugJLyi3wR/7u3E6DZPfUpwmvtBFEf5Xf+lPQdaIV61rkZ7rUYbXo8eKqEata7BVxhoG+7t\
+pLneLtu7j+wcAWw86V2YWS5YhN7AWQc5Dq4xyc1Np4P/lQF2gdkQraJ7ZJR4MohKHCU3w6kcaoOi\
+j6nYPLKy0TNw+qM3CEDnPp4Ph/XbRjcAFy28E3IfNALPSA==
+exehash=2a1a71c7b3cc305af6b28da5a0fa8f2ca7c28c617a74e9adedc544e84097d7db
+
+557.xz_r=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:33
+opthash=421bea877b6815c1807781f6a889dfd067c221fb6ed1ccf96d1b44a28a3e9490
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNrtU09vmzAcvfMpLO7On6brmqhUIsRN2ABbgUxtLxYxJvUKdoRJtfXTz5AlBe2wHHacJfDv2c/G\
+fu8RKQnL9JXnouBA7WuhpJ5Zuq4Eq2l1kJmo6BuvRP7Tsce2ZUptKKYejEYj27I8HJIZsIcHXQ23\
+Qg53jIGmQV1nDptOm7JMt8Ip9jfXADIA1ekzAwXgIibIM120QPPN8jem7ibBdP6UILxeoLUz+jG+\
+mlx/uvl8awgr9xuiHo4e/CVdOePTkhCF1Mcn9Pjc2yreELJGcUwxQVFIAPQH5tF7zmjJSypUg15S\
+eGV6pspSSVMUYlu8l+kw3YsOal4d+AebvXD22sFalHuj7MdAxos67W3YAVUqd5ypjFdGNjwBnQbz\
+nTzcTqGQhZBmw1wqeLQJpoVItZC7hnW8dUCM2OBOq0PF+L1teTPgec6FLh3peP4Fk8Sxe5bZljHb\
+I5uHwF3GZq5vXzs7R5G3oj3Cfz95ZVt4Boygfug/IyMMnrQj6DFZu+b6HxN/t7mV+biQ4HXizv3A\
+T57OYjfe21bgR18v/y8BfAfloch4rltSJ3qX5O5Obb9zVuv7XmDPqQGgjVSwuDyBuKF7pxSdD/dP\
+VWyPhDdNxjsB/wWIH4oW
+exehash=2abaee9754cf40a947430898c8a92ee6cc105d41eeca5ede0ba581993517a4ca
+
+999.specrand_ir=base=spec_graviton-64:
+# Last updated 2024-07-02 07:29:34
+opthash=defc697dfd9d9f3abf3a128aa625ba453c48adf1498e058efb28e0336037187c
+baggage=
+compiler_version=\
+@eNp1VF1v2jAUfc+v8Ns2FZNSumlDygMDWlWipaLp9ogc+yZxcezUHyXtr58TkpIW9gKy74fPveec\
+oNls82exfrhZ3W1W97H/mwSPhssMJY4Li7lEpgRqhsFstVwuZvHmejaLQmd0mHAZZpS+B5bxavN3\
+Pb2/X6z3CYInUAGtk0JCNM1/XGLBpatwJl04GofCKrzTpCxBB6urq+VqOt/E0/X1It7cTW8XD5F8\
+KW2FpZLwOT5fXE0fl3E0CmKiM7ATdPRCMFMy5ZnTwNCO23yChsPQaBrS7h7hF4RxHcPlNnsBbbiS\
+0ZfHxEnr0Gg8vBie44uxa86XX7rcxPliEaVcwCQMm1FNTjSETDXDYj/aejGd3y6Gv11mfBlIkgjA\
+gsjMkQxMRAeEkQE9OxtkasAGqdJWEzlQyROtf3AdKS58Zakh5VWzz+75+oWCPCmNW8RYSfHa5KpM\
+kwIbl9Y1Hkbvsm10tCV8gNcMwXpwudyCxrUQGOZ1oGWUcf2B4RaZcrVeqHAMGPacWKjsoZvNNRBm\
+olIZXu179fscEqXorYwKRYmAyCPtA0uMZbSqMANPxqmA5QVEr2C6pTFIifN6PmSQhEcSdqeKE0K3\
+ng8Kh2C9KSf5swPs+QFaD8a46QqfHWEFsfnpW89IWXqKD+1K4TJvrfdzB6/k0CE2r8ZCgd8+7MYf\
+ylwlymCaA916n0YaBBDzXmYbO/SrI+KsOrSoNeY19Om28K/zWhuHKy8XTD1q8Lv6PsY/L8eXo1+9\
+AXegtdK9xmkqFGEtAtMzbxQ2Gmq9gdnNbr477057m4WeSU5kaIsSN4Wt4j/1bvfUqLSTHHWMYKa5\
+d0NPN8fraTAcG8BHcmXsycB+lONQEDdiRoViICaokXTwsCfZY/NfQkRV4S1nan8iIjKlPdrCTFDD\
+55sXWuDnR62D228N+vqfT883FPwDOJH2BA==
+compile_options=\
+@eNqtUdFugjAUfecrmr5XXVyWScREKnNsSIlisu2FYCmmG7SGwpLt61dqMLiX8bC+9Lb33HvPPSeU\
+ApXpB8t5wYA81VwKZVuqrjitk6oRGa+ST1bx/MuBN9DSodIQHY8mkwm0LEw2kQ3guFHV+MDF+Egp\
+aA9SdebQ2awNy/TAneJ0dwsQBUh2Y0YSoNUu8rC+wpXn7tcA+erEaJWKDFFZllLoajIFvYPyo2ju\
+Z4iLggumn0KiM1uUFjxVXBxblOmbBJGeCeZKNhVlC2hhG2DsDCR7hhP3iUSxA6+YQ0vvjKP9Q7Bc\
+73TueguTdb0QPyYd4Pda0CI20H39jf/m6TyZmh/vJd4uE9xL/L2tmXYujMg2Xrp+4MevHSkjAbQC\
+P3we7hJA36BsiozlyoB6DgyRfy4P74zWanHl20U8AIyywWq4EaSF407MC7l/VdFQIvvW6p7PP1rQ\
+6fs=
+exehash=a68b2becada00a5b440ba02b35ca0a971d74af8ee11bb26bd2aa0276b3ad744f
\ No newline at end of file
diff --git a/example-benchmarks/spec_cpu_single_core/config_x86.cfg b/example-benchmarks/spec_cpu_single_core/config_x86.cfg
new file mode 100644
index 0000000..4b556c0
--- /dev/null
+++ b/example-benchmarks/spec_cpu_single_core/config_x86.cfg
@@ -0,0 +1,653 @@
+#------------------------------------------------------------------------------
+# SPEC CPU(R) 2017 config for gcc/g++/gfortran on Linux x86
+#------------------------------------------------------------------------------
+#
+# Usage: (1) Copy this to a new name
+# cd $SPEC/config
+# cp Example-x.cfg myname.cfg
+# (2) Change items that are marked 'EDIT' (search for it)
+#
+# SPEC tested this config file with:
+# Compiler version(s): Various. See note "Older GCC" below.
+# Operating system(s): Oracle Linux Server 6, 7, 8 /
+# Red Hat Enterprise Linux Server 6, 7, 8
+# SUSE Linux Enterprise Server 15
+# Ubuntu 19.04
+# Hardware: Xeon, EPYC
+#
+# If your system differs, this config file might not work.
+# You might find a better config file at https://www.spec.org/cpu2017/results
+#
+# Note: Older GCC
+#
+# Please use the newest GCC that you can. The default version packaged with
+# your operating system may be very old; look for alternate packages with a
+# newer version.
+#
+# If you have no choice and must use an old version, here is what to expect:
+#
+# - "peak" tuning: Several benchmarks will fail at peak tuning if you use
+# compilers older than GCC 7.
+# In that case, please use base only.
+# See: https://www.spec.org/cpu2017/Docs/overview.html#Q16
+# https://www.spec.org/cpu2017/Docs/config.html#tune
+# Peak tuning is expected to work for all or nearly all
+# benchmarks as of GCC 7 or later.
+# Exception:
+# - See topic "628.pop2_s basepeak", below.
+#
+# - "base" tuning: This config file is expected to work for base tuning with
+# GCC 4.8.5 or later
+# Exception:
+# - Compilers vintage about 4.9 may need to turn off the
+# tree vectorizer, by adding to the base OPTIMIZE flags:
+# -fno-tree-loop-vectorize
+#
+# Unexpected errors? Try reducing the optimization level, or try removing:
+# -march=native
+#
+# Compiler issues: Contact your compiler vendor, not SPEC.
+# For SPEC help: https://www.spec.org/cpu2017/Docs/techsupport.html
+#------------------------------------------------------------------------------
+
+
+#--------- Label --------------------------------------------------------------
+# Arbitrary string to tag binaries (no spaces allowed)
+# Two Suggestions: # (1) EDIT this label as you try new ideas.
+%ifndef %{label}
+% define label "c6itest" # (2) Use a label meaningful to *you*.
+%endif
+
+
+#--------- Preprocessor -------------------------------------------------------
+%ifndef %{bits} # EDIT to control 32 or 64 bit compilation. Or,
+% define bits 64 # you can set it on the command line using:
+%endif # 'runcpu --define bits=nn'
+
+%ifndef %{build_ncpus} # EDIT to adjust number of simultaneous compiles.
+% define build_ncpus 8 # Or, you can set it on the command line:
+%endif # 'runcpu --define build_ncpus=nn'
+
+# Don't change this part.
+%if %{bits} == 64
+% define model -m64
+%elif %{bits} == 32
+% define model -m32
+%else
+% error Please define number of bits - see instructions in config file
+%endif
+%if %{label} =~ m/ /
+% error Your label "%{label}" contains spaces. Please try underscores instead.
+%endif
+%if %{label} !~ m/^[a-zA-Z0-9._-]+$/
+% error Illegal character in label "%{label}". Please use only alphanumerics, underscore, hyphen, and period.
+%endif
+
+
+#--------- Global Settings ----------------------------------------------------
+# For info, see:
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#tune
+
+command_add_redirect = 1
+flagsurl = $[top]/config/flags/gcc.xml
+ignore_errors = 1
+iterations = 1
+label = %{label}-m%{bits}
+line_width = 1020
+log_line_width = 1020
+makeflags = --jobs=%{build_ncpus}
+mean_anyway = 1
+output_format = txt,html,cfg,pdf,csv
+preenv = 1
+reportable = 0
+tune = base,peak
+
+
+#--------- How Many CPUs? -----------------------------------------------------
+# Both SPECrate and SPECspeed can test multiple chips / cores / hw threads
+# - For SPECrate, you set the number of copies.
+# - For SPECspeed, you set the number of threads.
+# See: https://www.spec.org/cpu2017/Docs/system-requirements.html#MultipleCPUs
+#
+# q. How many should I set?
+# a. Unknown, you will have to try it and see!
+#
+# To get you started, some suggestions:
+#
+# copies - This config file defaults to testing only 1 copy. You might
+# try changing it to match the number of cores on your system,
+# or perhaps the number of virtual CPUs as reported by:
+# grep -c processor /proc/cpuinfo
+# Be sure you have enough memory. See:
+# https://www.spec.org/cpu2017/Docs/system-requirements.html#memory
+#
+# threads - This config file sets a starting point. You could try raising
+# it. A higher thread count is much more likely to be useful for
+# fpspeed than for intspeed.
+#
+intrate,fprate:
+ copies = 1 # EDIT to change number of copies (see above)
+intspeed,fpspeed:
+ threads = 4 # EDIT to change number of OpenMP threads (see above)
+
+
+#------- Compilers ------------------------------------------------------------
+default:
+# EDIT: The parent directory for your compiler.
+# Do not include the trailing /bin/
+# Do not include a trailing slash
+# Examples:
+# 1 On a Red Hat system, you said:
+# 'dnf install gcc-toolset-11'
+# Use: % define gcc_dir "/opt/rh/gcc-toolset-11/root/usr"
+#
+# 2 You built GCC in: /disk1/mybuild/gcc-11.2.0/bin/gcc
+# Use: % define gcc_dir "/disk1/mybuild/gcc-11.2.0"
+#
+# 3 You want: /usr/bin/gcc
+# Use: % define gcc_dir "/usr"
+# WARNING: See section "Older GCC" above.
+#
+%ifndef %{gcc_dir}
+% define gcc_dir "/usr" # EDIT (see above)
+%endif
+
+# EDIT: If your compiler version is 10 or greater, you must enable the next
+# line to avoid compile errors for several FP benchmarks
+#
+%define GCCge10 # EDIT: remove the '#' from column 1 if using GCC 10 or later
+
+# EDIT if needed: the preENV line adds library directories to the runtime
+# path. You can adjust it, or add lines for other environment variables.
+# See: https://www.spec.org/cpu2017/Docs/config.html#preenv
+# and: https://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
+ preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64
+ #preENV_LD_LIBRARY_PATH = %{gcc_dir}/lib64/:%{gcc_dir}/lib/:/lib64:%{ENV_LD_LIBRARY_PATH}
+ SPECLANG = %{gcc_dir}/bin/
+ CC = $(SPECLANG)gcc -std=c99 %{model}
+ CXX = $(SPECLANG)g++ -std=c++03 %{model}
+ FC = $(SPECLANG)gfortran %{model}
+ # How to say "Show me your version, please"
+ CC_VERSION_OPTION = --version
+ CXX_VERSION_OPTION = --version
+ FC_VERSION_OPTION = --version
+
+default:
+%if %{bits} == 64
+ sw_base_ptrsize = 64-bit
+ sw_peak_ptrsize = 64-bit
+%else
+ sw_base_ptrsize = 32-bit
+ sw_peak_ptrsize = 32-bit
+%endif
+
+
+#--------- Portability --------------------------------------------------------
+default: # data model applies to all benchmarks
+%if %{bits} == 32
+ # Strongly recommended because at run-time, operations using modern file
+ # systems may fail spectacularly and frequently (or, worse, quietly and
+ # randomly) if a program does not accommodate 64-bit metadata.
+ EXTRA_PORTABILITY = -D_FILE_OFFSET_BITS=64
+%else
+ EXTRA_PORTABILITY = -DSPEC_LP64
+%endif
+
+# Benchmark-specific portability (ordered by last 2 digits of bmark number)
+
+500.perlbench_r,600.perlbench_s: #lang='C'
+%if %{bits} == 32
+% define suffix IA32
+%else
+% define suffix X64
+%endif
+ PORTABILITY = -DSPEC_LINUX_%{suffix}
+
+521.wrf_r,621.wrf_s: #lang='F,C'
+ CPORTABILITY = -DSPEC_CASE_FLAG
+ FPORTABILITY = -fconvert=big-endian
+
+523.xalancbmk_r,623.xalancbmk_s: #lang='CXX'
+ PORTABILITY = -DSPEC_LINUX
+
+526.blender_r: #lang='CXX,C'
+ PORTABILITY = -funsigned-char -DSPEC_LINUX
+
+527.cam4_r,627.cam4_s: #lang='F,C'
+ PORTABILITY = -DSPEC_CASE_FLAG
+
+628.pop2_s: #lang='F,C'
+ CPORTABILITY = -DSPEC_CASE_FLAG
+ FPORTABILITY = -fconvert=big-endian
+
+#----------------------------------------------------------------------
+# GCC workarounds that do not count as PORTABILITY
+#----------------------------------------------------------------------
+# The workarounds in this section would not qualify under the SPEC CPU
+# PORTABILITY rule.
+# - In peak, they can be set as needed for individual benchmarks.
+# - In base, individual settings are not allowed; set for whole suite.
+# See:
+# https://www.spec.org/cpu2017/Docs/runrules.html#portability
+# https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+# Integer workarounds - peak
+#
+ 500.perlbench_r,600.perlbench_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/500.perlbench_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only
+ 502.gcc_r,602.gcc_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/502.gcc_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing -fgnu89-inline
+ 505.mcf_r,605.mcf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/505.mcf_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 525.x264_r,625.x264_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/525.x264_r.html
+ EXTRA_CFLAGS = -fcommon
+#
+# Integer workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ intrate,intspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing -fno-unsafe-math-optimizations -fno-finite-math-only -fgnu89-inline -fcommon
+#
+# Floating Point workarounds - peak
+#
+ 511.povray_r=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/511.povray_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+ 521.wrf_r,621.wrf_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/521.wrf_r.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ 527.cam4_r,627.cam4_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/527.cam4_r.html
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+ # See also topic "628.pop2_s basepeak" below
+ 628.pop2_s=peak: # https://www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+#
+# FP workarounds - base - combine the above - https://www.spec.org/cpu2017/Docs/runrules.html#BaseFlags
+#
+ fprate,fpspeed=base:
+ EXTRA_CFLAGS = -fno-strict-aliasing
+% ifdef %{GCCge10} # workaround for GCC v10 (and presumably later)
+ EXTRA_FFLAGS = -fallow-argument-mismatch
+% endif
+
+
+#-------- Tuning Flags common to Base and Peak --------------------------------
+#
+# Speed (OpenMP and Autopar allowed)
+#
+%if %{bits} == 32
+ intspeed,fpspeed:
+ #
+ # Many of the speed benchmarks (6nn.benchmark_s) do not fit in 32 bits
+ # If you wish to run SPECint2017_speed or SPECfp2017_speed, please use
+ #
+ # runcpu --define bits=64
+ #
+ fail_build = 1
+%else
+ intspeed,fpspeed:
+ EXTRA_OPTIMIZE = -fopenmp -DSPEC_OPENMP
+ fpspeed:
+ #
+ # 627.cam4 needs a big stack; the preENV will apply it to all
+ # benchmarks in the set, as required by the rules.
+ #
+ preENV_OMP_STACKSIZE = 120M
+%endif
+
+#-------- Base Tuning Flags ----------------------------------------------
+# EDIT if needed -- If you run into errors, you may need to adjust the
+# optimization - for example you may need to remove
+# the -march=native. See topic "Older GCC" above.
+#
+default=base: # flags for all base
+ OPTIMIZE = -g -O3 -march=native
+
+
+#-------- Peak Tuning Flags ----------------------------------------------
+default=peak:
+ OPTIMIZE = -g -Ofast -march=native -flto
+ PASS1_FLAGS = -fprofile-generate
+ PASS2_FLAGS = -fprofile-use
+
+# 628.pop2_s basepeak: Depending on the interplay of several optimizations,
+# 628.pop2_s might not validate with peak tuning. Use the base
+# version instead. See:
+# https:// www.spec.org/cpu2017/Docs/benchmarks/628.pop2_s.html
+628.pop2_s=peak:
+ basepeak = yes
+
+
+#------------------------------------------------------------------------------
+# Tester and System Descriptions - EDIT all sections below this point
+#------------------------------------------------------------------------------
+# For info about any field, see
+# https://www.spec.org/cpu2017/Docs/config.html#fieldname
+# Example: https://www.spec.org/cpu2017/Docs/config.html#hw_memory
+#-------------------------------------------------------------------------------
+
+#--------- EDIT to match your version -----------------------------------------
+default:
+ sw_compiler001 = C/C++/Fortran: Version 13.2.0 of GCC, the
+ sw_compiler002 = GNU Compiler Collection
+
+#--------- EDIT info about you ------------------------------------------------
+# To understand the difference between hw_vendor/sponsor/tester, see:
+# https://www.spec.org/cpu2017/Docs/config.html#test_sponsor
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ hw_vendor = Amazon Web Services
+ tester = TUM I13
+ test_sponsor = TUM
+ license_num = nnn (Your SPEC license number)
+# prepared_by = # Ima Pseudonym # Whatever you like: is never output
+
+
+#--------- EDIT system availability dates -------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+ hw_avail = # Nov-2099 # Date of LAST hardware component to ship
+ sw_avail = # Nov-2099 # Date of LAST software component to ship
+ fw_bios = # Version Mumble released May-2099 # Firmware information
+
+#--------- EDIT system information --------------------------------------------
+intrate,intspeed,fprate,fpspeed: # Important: keep this line
+ # Example # Brief info about field
+# hw_cpu_name = # Intel Xeon E9-9999 v9 # chip name
+ hw_cpu_nominal_mhz = # 9999 # Nominal chip frequency, in MHz
+ hw_cpu_max_mhz = # 9999 # Max chip frequency, in MHz
+# hw_disk = # 9 x 9 TB SATA III 9999 RPM # Size, type, other perf-relevant info
+ hw_model = # TurboBlaster 3000 # system model name
+# hw_nchips = # 99 # number chips enabled
+ hw_ncores = # 9999 # number cores enabled
+ hw_ncpuorder = # 1-9 chips # Ordering options
+ hw_nthreadspercore = # 9 # number threads enabled per core
+ hw_other = # TurboNUMA Router 10 Gb # Other perf-relevant hw, or "None"
+
+# hw_memory001 = # 999 GB (99 x 9 GB 2Rx4 PC4-2133P-R, # The 'PCn-etc' is from the JEDEC
+# hw_memory002 = # running at 1600 MHz) # label on the DIMM.
+
+ hw_pcache = # 99 KB I + 99 KB D on chip per core # Primary cache size, type, location
+ hw_scache = # 99 KB I+D on chip per 9 cores # Second cache or "None"
+ hw_tcache = # 9 MB I+D on chip per chip # Third cache or "None"
+ hw_ocache = # 9 GB I+D off chip per system board # Other cache or "None"
+
+# sw_file = # ext99 # File system
+# sw_os001 = # Linux Sailboat # Operating system
+# sw_os002 = # Distribution 7.2 SP1 # and version
+ sw_other = # TurboHeap Library V8.1 # Other perf-relevant sw, or "None"
+# sw_state = # Run level 99 # Software state.
+
+ power_management = # briefly summarize power settings
+
+# Note: Some commented-out fields above are automatically set to preliminary
+# values by sysinfo
+# https://www.spec.org/cpu2017/Docs/config.html#sysinfo
+# Uncomment lines for which you already know a better answer than sysinfo
+
+__HASH__
+505.mcf_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:47:11
+opthash=5737cf0e0d89c6869a2881cb41c2cd15f2e18ec5db2c750058f995d78d11b73f
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNq1Ul1PgzAUfedXNH2vm9EYt8gSYKgoo82ARH0hWMusQqu0mMxfb4GxucToXuxLb+89vR/n3EgK\
+VOWvrOAlA/JNcynU1FK65lRndSOeeJ19sJoXaxseQ8uYykCMfTQej6FleXhBpgCOGlWPHrkYrSgF\
+7UFKP9l0MmnN6uwUIAqQHAocSYDmMfE9c0Vz302vDCpQb4xm70rWehPNnDTBWZwSsvTjOMPEjxYE\
+oBVA+MRkzWv6bItc8w8GtgcVQqK+fZSXPFdcrHpnI1ReMPNNP6O2j4p/5l03fbjggushLMq18a5E\
+cz5BXJRcMPOksqqk6Kv0/YXETAYulGxqymbQ8qbA8+w/yeiB2L3BJLHhHjPQMmx6JL0MnavYxPZZ\
+6qKuH3nXmTcgDqQNWngKTL1gETz45tsPJHYQ/y5ZOrvs/81mN1Ffk+Bl4rhBGCT3w+AdwdAKg+j2\
+kB3rnb+ux4V8fGFUq1mLLKvd2mwVAKCTJ5wfouMBnJpcCye5zsLAbQktq016nLbafxP+C37ADqE=
+exehash=c3ef8d086929e175d8c740f973851247759390233c84140a0f4310f137c36ff5
+
+505.mcf_r=peak=c6itest-m64:
+# Last updated 2024-06-27 08:48:21
+opthash=6804b57c3c4683509df403791e0b2fdb5e33b25419c71b81edddd2810afe1671
+baggage=
+compiler_version=\
+@eNrtUMtqwzAAu/srdGxhC22y03ryTEINXWJsZ9BTyVzncbGL42z07+eUfsZAICQkHSSoUnswdvkq\
+peJNfWmETvROBmOwab8XFxfsiyzPdq95sTz02/bpEOZv9zANY8SGbZHv8gJVsBbK9/G3CxaVX9y1\
+i5N3L+DOZESP04yEfo3Nz9gBc1JxXJ0lGIveB5i0PbkhsbtO68KcAXq0aTX164akZuhcvB/gfIT9\
+se7R+ywlO9Ja0w9+4vqMZFVc16VSqBoJCkGl5qw9UQnRStGoMiNEpB/y/x/+AMbCphg=
+compile_options=\
+@eNrFk1FvmzAUhd/5FZbVVzeJNU1qVSoBYS0bASuAtO7Foo5JvQWc2U6r/fuZurSrUmVk0zS/gHTO\
+tX3P9ZfJDrX1N96IDQdya4Ts9LmnjRLMULXrVkLRe65E88OHM+gZVYuOPghz58PHf+hZVdsqK59O\
+p1PoeVG+ILNzACc7rSa3opusGQP9QtqsfHZ21v+2798BxACSw6GnEqB5QeLIfrJ5HFZX1pXoLWf0\
+u5bKPKk0qMqcFhUhy7goaE7ibEEAarZK9i2gNe+4qg23xWuA8qbWtrKtFbvzu9qIe269GyPB80JN\
+J5HrF9UbUWvRrZ3gzkuJvSm40HKnGL+EXmRbiyL/t909OfPwY05KH77qFXp9QBGpPqTBVWHF1407\
+OYyz6JpGg2VkFNDLbS0JimJGh9K9cJzJ3itZJF9i6zgUlTPHn8tl8HKbN0Jzt3Y+ki/LIEzSpLwZ\
+unsMEnppkn0a9TjcbP54rBfy9itnRl/222zal3E/DwEAN6J0PmaYRwXWb7sIymuaJmGf1qYdjsqr\
+/i388hCWVWaFEybbtu5WDh78v+DZ6X/IDR7NDT7ADT7MDf4LbrDjBu9zY3Nx+nhk8Ehk8Dhk8PHI\
+HDPMkbTg0bQck1W/7R4t+E1afgKVOPDc
+exehash=662c677d0f4477ff312c9eb7844c9c73439a46ba32eca9e13cdf6de287004be5
+
+500.perlbench_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:50:47
+opthash=5bd0f9c928046a083e99de11face2bfb8b723401b2fc209a2a9d57c5d6ced82c
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNrVU8GOmzAQvfMVFneHVK2qJlpWAuIktCS2MEhpLxZLTNYtmJVNVt1+fQdI0kbdqntoD7WEGM+M\
+5s3Me962GjfFF1mpWqL2oVOttnPHdkaVnTBHvVdGPEqjqifffeU6YFpIAXsynU5dx4nohs2R6x2t\
+8e6U9g5lifqDbbf3y9msN5u3bxAuEW7PAJMW4QVnJILfdkHCfAUGI2kiIpoShOMJfHtlOy+mYJUP\
+hfYy1Ui8Vqm0Z8862ySYFcZKAy75tfOMBMM+yNIUeg8lFzQPEyJ4EvA14aJHjIPEn57QRZBnVPCc\
+sZRwLigj2w2DmEiCdEXEMk4Iv1z7m+A0TyPS+4YrXS45yUQYZ9yHGRE+IExfw8CFKe99XXTqUaLT\
+OUEm8Tbfid2QXekWj5vGRa0Kq/RhdB61LSoJZbp73K+sUd+KYXFjuFJadeewrp/Ae9DHdzOsdK00\
+7KAq26Zp9RUu6yFvbHs0pbx1nWiOosj/I29jIg3fU5b57hWJrgPERyxfJsGKQ+ya0CEakm20FpeE\
+/55h16FzBJuIN/EnAhM9Q/cwN6NpFoRxEmcfz4v5QfxQhOyyNBDReTX/WglDVyPms72xvi3o8MNL\
+nvLo/J3Uf9U5nJv27rMsO3vbJ9QNujyKi5oQGqSWLF6iyb/CAqBtgmwNrrCnoG5ODdC8V/pPMv8O\
+33uEXg==
+exehash=da51419028397adf783795465d5e7d46b7544819a1fdd34a01c495940d38a15e
+
+502.gcc_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:32
+opthash=84aa2d950cccb6fb8bcbdd2eabcd22c071c78c26fd529e000c30672e1575b736
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNq1UtFumzAUfecrLL87Sbd1WqJSCRyaeCPYCjBte7GoY1JvYHcYKrVfXwOlW6Vqy0stIa7uPb73\
++JybGI3q4pcsVSWBuW2V0Xbl2bZRouVNpw+q4XeyUeW9D8+g50LrIC6eLRYL6HmY7tgKwHlnm/m1\
+0vOjEKA/yLYHXyyXfVh//ACQAMhMA2YGoHXKIux+yToK8w1AZNZ/c6VF1R3kENtbKfhva5r2Cc7P\
+F++mMMgzytOcsX2UppyyKNkxVyMJ3+C+7zb4GnFMkyuy4VtH4ggQfe+4FI248XXRqjsJng8qtUHj\
+o1FRqcIqfRyTnbZFKd219gb17Gv1UAxvGMul0qqdyrq6d9mj7j4tkdKV0u4ZpTB1bfQ4ZWQeM6cH\
+uLCma4S8hB5eAYz9/0o4Amn4mbLMhy/0hJ7zALP8Kg42qau91HaohlGCt3wCvKnY0KMr4EiSHfkR\
+uWGvKD9Aom/ZPuB44vTWFgwyjDMZ3WdBSGKSfZ/UGlyBXkySL6es85j8505dmOufUrT2skdW9Z9d\
+e7YNgMHTeH2K+Sdo6nrtgmzLYxL2glb1U3ua9wvz17Y8AtEfKzw=
+exehash=819acba0a47fd12bc3c7da7c85264941d8f89011df65195a6ab53f5e5fbd60d0
+
+525.x264_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:46
+opthash=0afeb5ce7b3395d1b57166aa3e47fd089b6cf4afeb7ab0e5b2a8830cc74f222e
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNrtU99vmzAQfuevsHh3Sdssa6JSCQhr2Qi2+CG1e0HUMalbsCcMVdq/fgZCl0hVm5dp0oRfON8d\
+d+fvuy8QHJbZE81ZQYH4VTPB5UKTdcVInVYNX7MqfaYVy19M/VTXlClVirJPJpOJrmkOWuEF0I1G\
+VsY948aGENAeKOu1Sebz1ixnUwAJgGJocCIAXEbYddQnWLp2cg2gV6wpEetUVsRgXGV727PZtL3u\
+mQbd1lUm9z1ElKXgu3qplcQojRKMQzeKUoTdYIUPYvZd7KJw6YbmZHt6dj79Mvt6oUbcAIjO1aRZ\
+RR5MntXsmYK3A3MuYA8JzAqWScY3vbPhMsup+q1+gO3bSvaadS/swznjrB7CvHhR3g1vLuaQ8YJx\
+qq676bsu/ZQ+VmiBSymaitArXXMWwHHMTwHuE5H9HeHY1A/Q1jXFkIOTb751HanYIfJd1HYD5yYd\
+Ev4hFbqGFkA9wVt5P101yju8dCnubRxaqTNM/LcJ6kDqe2IUxpbt+V58N2DZcaZrvhf8OEYKvfPD\
+jbsU94+U1PKqzSzKP5v4RioAHeP+8pjVOAJTVWtlxTep79ktoEW5K4+Sdp32dmlU/Kj4UfGj4kfF\
+j4ofFf9/Kv43V6SZEg==
+exehash=01416fd84991bd7d6baf896abc1c1c5b67a6cbe5009d630c32adf0b3f31d9593
+
+557.xz_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:50
+opthash=db207b5f813628e5cd301cc205d208b033d0bd4d144e6245ed5ac334901d565a
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNrtVN9vmzAQfuevsHh3frRd10SlUkLchC1gRGBq+2I5jkm8gh1hUq3962egtESttrzsbZbA992d\
+7+C7Tw6UhDl95KnIOFD7Uiipx5YuC8FKUhzkRhTkiRcifXbsoW0ZU5sUY/cGg4FtWS72wzGw+wdd\
+9NdC9reMgWpBXW4cNhpVZn55ASADULUNegrA2SpErtmCGZom81dMJkmMyfQ+RjiaocgZ/BqenV98\
+ufx6ZRIWkx+IuDi49eZk4QzbIz7yiYdbdPdwVGqVhGGEViuCQxT4IYBezzx6zxnJeU6EqtCOwjOz\
+M5XnShojE+vsJad9uhcdVL068EM223H22MFa5HvD6btjw7OSHhXsgILKLWdqwwtD2BZAfG54owXb\
+OZKW4omDtwVTqWAzIEgzQbWQ28Z5kJqm3Bwrd7BiOhcvtOa7CadCirINy+zZeLfycDWCQmZCmi9N\
+X/+p7tKQuAzN7MC1VoeC8RvbcsfAdZ2/jrtJxNNvOIwd+2j2tmX04obJ7XIyX5nYsQ7q6BQF7oIc\
+JfwXBi9sC4+BIdTzvQdkiPlEJXUKuoujCXFb/v61XOqRNT1DHMWTqbf04vu3wVUKsq2lF3w/5Zpo\
+nH/U/7Va/+Ss1Degs971BUAtvuXsFJWeQGhdCyeVjDsa/g0wE5s9
+exehash=acb8529a5e3479c88f091ea0f1bef7200dd16b81160a52c3b7c015d2bfe2c122
+
+999.specrand_ir=base=c6itest-m64:
+# Last updated 2024-06-27 08:51:51
+opthash=931cfbab34441c8f31ca9285c2a67f7e5e211e6824cf85c11aafbbf579d17f25
+baggage=
+compiler_version=\
+@eNotjM1qwzAAg+9+Ch1b2EyX7LSePJMwQxcH2xn0VDLX+bnYw3E2+vZzSkEg9CEJnF++KqWFbC6y\
+NdneyGgtdt336tOKl5IW9PBclOs9v+4fhPDwc4vzOCXs+B7FoShRR+egw5D++uhQh9Vf+zQH/wTh\
+LSVmmhdkDVttedSOWHJK00bWaB2GEGHz9+zH7P46bw8LBczk8mveN5LkZex9uh3hQ4L7df6++6wU\
+/2CNYe/iJMwZGdXCNJXWqKUCQ8uUEbw7MYW2U63UFSX/HNJRnw==
+compile_options=\
+@eNq1UlFPgzAQfu+vaPrebUZjHJElG8OJMiAbS9QX0nWFVaFdWlgyf70Fgm7G6F68F4777u67+66B\
+FLggbyzlOYNyV3IptAV0qTgtE1WJDVfJnimeHmx0gYBxtUkxfm8wGCAAnHAeWRD1K636ay76GaWw\
+NqzLjU2Hw9otrq8gphDLjqAnIZ4uI9cxn2DqTlYziD29Y1QRscFUFoUUpi6DOLw05UTRrS1IyfcM\
+fhpOhcTtnJjknGgusjZYCU1SZsrKLa4JC/5OGtoWTrngZQeL/GCimahuhpiLnAtmfrsBapZmzMSP\
+zArwVstKUTZCwLGg49h/bt0mhpOHMIptdCIBAkY2J1rd+ePZ0mCncjToxA2c+6RL+K4PAqEFTV9v\
+7r24Bv9BrCbFfYoX48Tp2vy3as3kLWcULuLxxPO9+LlbsBESAd8LHs95NG3w12dwK9evjJZ6BI/s\
+S2YImxv403OOdYagTa9wVV/z6JQfz5n7Ig==
+exehash=cec9428ef810cda0cdbbda5c0004d7a8a485862af3c544e720395406a63b22de
+
+520.omnetpp_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:52:52
+opthash=7170896242f47d9d1bbaf67da665ab85d63038e800e0b4c26958ce80f7bad925
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNq1UUtPg0AQvvMrJnslWzAaD6Q04bG2KGU3PGL1QihsK1rYhoeJ/94tltgmRntxLjOZ5/d9E4ga\
+V9kb35Q7DmLflaJuDaXtmjLv0qavi7JJ33lTbj5MdIUUGbayRcYTXdeRojh0yQxAWt822rqsta2q\
+wsFw2xVmrqr6NeDq9gZwDliMByYCsBsx4kgXuMRO5oC9tqz6XdaJRttLV/D9aU7GlSj4Tg48evEi\
+DUhsJ57vkvC4KbWSmKZRwlhIoiiljARLJmFsAdMDhKzJX8w668p3DqMdJ30m8cG0FX2T8xlSHAOc\
+1cr8k9PYSe17ymITnVFEipTFYcmdb80jWTunO1RtEjiLdGz4D/5IoQZIbN7Seybyxg9iDEjIKg6t\
+lNEwtmzP9+KnEfCgDVJ8L3i45Mlfyd8kh6lYv/K8a2dwYt+yAQyq+u4l8l9AbthFk8N3Tl7zCQlV\
+2HQ=
+exehash=b98c3655648414264b6708282e0f735e987abd609b58f4f492951afed00a5da9
+
+523.xalancbmk_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:53:31
+opthash=33fe2c11095c98ec29f6fc686a6380260f271a7bab6c5a1db6ac89895719188f
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNrtVN1umzAYvecpLG4jQrZVu4hKJQe8lA6whWFiu7GooZk3sCtMovbtZ0C0ZOu0StPuZgnx/ZzP\
+NucckSjptOX3+k40NVD3vVBSby3dd4L3rDvKSnTsVHfi7tGz39iWCbWBmHi92Wxsy/JxTLbAdo+6\
+c2+FdA+rFRiWo/vK46vV5h1w2vcXwOHAUfMBawWcgBLkm1cSoF2+NwMBJIQlmGXXKYIBNYUCRjBh\
+YRKjmMV0zyIMA5QCJ1yb56HueK35c+RWqj3PXNHeN4uSLh8W2bEXjRvrQ6TKynyVG8q4blX3+DMk\
+60qpuZowXMnTACibUnJXSN4cq9pclaT4hhVxRGBKhys+FfIsjOZ0atI5pbC48BfJ2zkOcDyHn2AU\
+BjDD45TZjuUUzYwgSuEezaSMfDKYZ5jRnJDUdBkmKIkJcA7AwYMOZce/erLsxakeNZpmojDJC7As\
+ECMYuNTqaGi4si1/C/yi8P4o8ozEuxtMMs8+09y2jE98kn+I4J6a3rn+Y3eHEv+amQ2eMP8t8W8s\
+YVt4C4xGYRx+QYboFwwyKkJwmsFdGIXZ51myyS5jFxVZCtmLGDK4wSA/vubfMBV/Y9JfXXqpbr/V\
+vNdXYLGejQbA6MMoeI1h/5qG8SScD25fWP0Hz/mUwg==
+exehash=183abcc0cc08586789e438463e5711c1db96c362d9ee7865f408410700819d6c
+
+531.deepsjeng_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:53:34
+opthash=07012bbeb02623a9b192a4e2da6bb7b84266044e1ece5ba0911465810254d88d
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNqNUV1vgjAUfe+vuOkrqbJs2QMRE8DOsQFt+Eh0L40ium4TloIm+/crTKImy8Z96W3vuefecxpV\
+Jdmv3out/Cig+mxkVdYWqhsl80aoQ7mRShwLJbdfNr7BSKe1huh8ZJomRshjIbcAjw+1Gq9lOd4Z\
+BrRB6mZj54Zh3gLZ398ByYFU/YBRBWSWcOrpI5pRN5u399AJAhHSkMXLU1k4WcpEknEe0yQRjNMo\
+5Jp7B4S1vCuVv9rlqpHHAvo4dQZcD4VJXR1UXkwx8izwFgv730V7JHOfGE9tfLU3Rlqrx7OHwJkn\
+unatoau6NPIexRkwUBRGzAI90A/9F6obf1HY0dNFGjuCszh1XD/w02W/RScYo8CPnod8x8/jXz7C\
+pFq/FXlTT+Eizl4AdFYFsyGeDhDXcbGstfzC728z2Lls
+exehash=98de8bf384c125395fe5156fb9438fe092b94ac97dcbe4e2b23c2ada5f2a6e6f
+
+541.leela_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:53:38
+opthash=2f1f63df0864751b52a7f6e3cfd3684a57c27f1a4cfb14559bd66349a00db30e
+baggage=
+compiler_version=\
+@eNotjMFqwzAAQ+/+Ch1buoUu2Wk9eSZhhi4JtlO6U8lSJ/HFHo690b+fUwoCoYcksPOZXU6lkLyp\
+L02rkr2RabfDpvuONkS8FFme7Z/zIt7z6/ZBCHM/N2+mOWDDtsj3eYHKaw3pxvDXe43KRXvtg3H2\
+CdwOGVGzWZA0rrXlUTtgSSnMK4l+0Bidx5C+jZ2S26tZH5YMULNOr2lfNyQtfW/D7QDrAvSvtvfd\
+ZynYB60VfedHrr6QUMVVXUqJqhGgaKlQnHVHKtB2om1kmZF/ZypR3w==
+compile_options=\
+@eNqNUNFOwjAUfe9X3PR1KcxofFgYyTYqTsfasC1BXxoYA6uymnaQ+PeWwSIkBrkvvbn39Jx7Tqpq\
+spl/VCv5WYH6aqSqjYdMo2XZCL2tl1KLXaXl6tvHNxjZ1liI7Xuu62KEIjbhHuD+1uj+Qtb9tePA\
+vohpln7pOO4tkM39HZASiOoEegrIKOM0sk86omExBhL3jjMRFDkTWcH5lGaZYJymE24J10DYnmyu\
+yze/njdyV0FXx58Jt0owMGqry2qIUeRBNJv5/17XIVn4xHju47NjMbIGI148JME4s7vzw9ttSNPo\
+UXSAy04wYh5YlXgSv1KL/sNWy0ln+TQQnE3zIIyTOH/ppFuXGCVx+nxN8IfhpfBgoBbvVdmYIZzU\
+bwAAbT7J6JogrzDXcrFin/NJyD/OSrJw
+exehash=2c0af257071500bf32683ff3c5d93f22651e278dadbe5469d5dc7cbbce6960a2
+
+548.exchange2_r=base=c6itest-m64:
+# Last updated 2024-06-27 08:55:19
+opthash=22486be71bab3ebdc2399d31e9cc31a24122adedea4fb03610264eb5ac8c6376
+baggage=
+compiler_version=\
+@eNotjsFqwzAQRO/6ijkm0JrE7qk5ucJKBallZLnQU3AdOdZFKrLckr/vOgQWhhlmHgvBz5+VbqWq\
+z6oxJK/sWHcQIabYe2y678WnBfsiy7Pdc14sd/+yfSSMh59bdNcpYcO3yHd5ARGtRRvG9NdHS6TF\
+X/rkgn+C9EPGzORm0I1rbX7UDpjJpWlNljhYjCFiILbzV1J/cSthzgAzWaLSvlaMlvRkuh3gQ4L9\
+tf6++6g0fy9rU77JkzRfoEhIU1dtC6E0SjSlNpJ3p1Kj6XSj2ipj/9/qVFs=
+compile_options=\
+@eNqtkFFPgzAUhd/5FU3fYTMaE8lYAqybKKPNgER9aRgrs+ooadmi+/UWNnGaJfJgX3qbe3rPuV8k\
+SnOTvbKCvzEgqpqLUtmGqiXPayq35YpLumOSFx8OvICGLpWW6NoaDofQMKaE2ACqiuVVBcxJTJCv\
+r2iCvHR2fFM3TTCNU0IWKI4pJiiak69eSK6vwEiJrczZGJiiq62iqvierazi5h0a2sQn6TR0Z7ED\
+f9m0XQ9F/i39ITjr24rRQ7JwKcGLxPWCMEgeuy9NHGj4eN5sNdgqOVjycrAuhKxlVoLvY250bjNv\
+Eh+pWQKYa2DiS93LZP7slFnNd6xbSI+1wdR3/hx7EGLvDpNEBzv1+FcQ2AbaIZgHT0grz0TvxSoM\
+ovs+rA7VOUDdGYnlC8trNQann7vlAWjJhJM+CHss187CacP4BPAndKLddA==
+exehash=94f8ce66afd6ebe33a163a04e457e06501b1cb938789a08a98395f3f6afb6075
+
+500.perlbench_r=peak=c6itest-m64:
+# Last updated 2024-06-27 08:58:19
+opthash=26746eefd4c701d69be2dd89ab217f8349f05d47b236ed37fbc9e2bcc764ae86
+baggage=
+compiler_version=\
+@eNrtUMtqwzAAu/srdGxhC22y03ryTEINXWJsZ9BTyVzncbGL42z07+eUfsZAICQkHSSoUnswdvkq\
+peJNfWmETvROBmOwab8XFxfsiyzPdq95sTz02/bpEOZv9zANY8SGbZHv8gJVsBbK9/G3CxaVX9y1\
+i5N3L+DOZESP04yEfo3Nz9gBc1JxXJ0lGIveB5i0PbkhsbtO68KcAXq0aTX164akZuhcvB/gfIT9\
+se7R+ywlO9Ja0w9+4vqMZFVc16VSqBoJCkGl5qw9UQnRStGoMiNEpB/y/x/+AMbCphg=
+compile_options=\
+@eNrtVFFv0zAQfs+viCJevXYRQtpEJqWpuwbS2ooTafBiZanTGRqnst3B+PXYdVuYOm0BhgQIS1XP\
+d5e7831337wToK0+soavmN+tNe+EOveUlrzWVG7Egkt6yyRv7qLgNPC0rLign7i+iYKtHHjGqsxX\
+xnwyHA4Dz0vQDJ+e+8Fgo+TgmovBsq59e4DSi6g+O7Ni++qlD2ofdPukJ50PxgTDxPzNx3BUXhoB\
+wzyjCcqhD9IT81twpQcpMlK9rsSg4C0DU54ztddMi1kGcCUVk0bFPuuBZEZQa1bLSixMyDEqRxmk\
+JIvJFBJqM6ZxFg132WlcFoiSEuMcEkIRhvMZNjaaxfklpJM0g+RwtTdKUJkn0Oq2VzSZEFjQUVqQ\
+yLzRB81adra7YMkEk5VmRrf0AWoqpU0fKlnfRKLS/NYU2qx05+/Orp4snZdX9MqFEh1w0IBqxSvF\
+xdIpN0JVDTPB9A2w/Wz5l2rbVWduuOB6bxaru3vxsQ39WnUbWbOLwEsMdEkSPYnezhON3iBcRME9\
+LAPPDkCCy0kWXxJjvA+sM4/gPJnSg8dfD3XgIfMqHBNyenjVEfbOyXQsnaXvofF4bBJcnzDKi3iU\
+Zmnxbt/Jb0Ph4sGrIo9pcsj6TGPi8rvgD1aBbQGmlre91n2r+6ltOF4Fc1531x9YrdWFdVi1/mFv\
+DmPo+25Is3GfcX5uYGzmWVxMjW5kUVm1+2pQaRfmu23Jy7kxvKi7tjWT6xg0/M+gRwy6UX86eYa9\
+yTN8hDzDx8kz/CfJM3TkGR6Tp4Hd2fuvZ/g0b4a/kzfDfrwZ/jhv9tyBX6HMsDdlPjMmNvMRZYYP\
+UuZXamMstg==
+exehash=90f4c9c52de6dda1786d304e36f66611bb9d014dd912dc84023e8306644b6e51
+
diff --git a/example-benchmarks/spec_cpu_single_core/configuration.yml b/example-benchmarks/spec_cpu_single_core/configuration.yml
new file mode 100644
index 0000000..15b0308
--- /dev/null
+++ b/example-benchmarks/spec_cpu_single_core/configuration.yml
@@ -0,0 +1,302 @@
+configuration:
+ name: "SPEC CPU2017 Integer Rate - Single Core"
+ description: "Benchmark analyzing CPU throughput using single core"
+ directory: spec_cpu_single_core
+ cron: "0 * * * *"
+ instance-number: 1
+ instance-types:
+ - c3.large #Intel
+ - c4.large
+ - c5.large
+ - c6i.large
+ - c7i.large
+
+ - m5a.large #AMD
+ - c5a.large
+ - c6a.large
+ - c7a.large
+ - c6a.2xlarge
+ - c7a.2xlarge
+
+ - a1.large #Graviton
+ - c6g.large
+ - c7g.large
+ - c8g.large
+
+nodes:
+ - node-id: 1
+ ansible-configuration: ansible.yml
+ image-x86: ami-040ae5b7ceb70e213
+ image-arm: ami-0fb858c88e8a6483e
+ benchmark-command: ./run_spec.sh
+ output-command: python3 format_output.py /home/ubuntu/specbench/result/CPU2017.001.intrate.csv
+
+plots:
+ - type: scatter
+ title: SPEC CPU 2017 Total Score
+ yaxis: Score
+ series:
+ - y: SPECrate2017_int_base
+ legend: Int Rate Base
+ - y: SPECrate2017_int_peak
+ legend: Int Rate Peak
+
+ - type: scatter
+ title: 500.perlbench_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 500_perlbench_r_base_selected_time
+ legend: Selected Base Time
+ - y: 500_perlbench_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 500_perlbench_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 500_perlbench_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 500.perlbench_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 500_perlbench_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 500_perlbench_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 500_perlbench_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 500_perlbench_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 502.gcc_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 502_gcc_r_base_selected_time
+ legend: Selected Base Time
+ - y: 502_gcc_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 502_gcc_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 502_gcc_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 502.gcc_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 502_gcc_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 502_gcc_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 502_gcc_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 502_gcc_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 505.mcf_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 505_mcf_r_base_selected_time
+ legend: Selected Base Time
+ - y: 505_mcf_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 505_mcf_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 505_mcf_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 505.mcf_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 505_mcf_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 505_mcf_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 505_mcf_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 505_mcf_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 520.omnetpp_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 520_omnetpp_r_base_selected_time
+ legend: Selected Base Time
+ - y: 520_omnetpp_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 520_omnetpp_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 520_omnetpp_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 520.omnetpp_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 520_omnetpp_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 520_omnetpp_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 520_omnetpp_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 520_omnetpp_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 523.xalancbmk_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 523_xalancbmk_r_base_selected_time
+ legend: Selected Base Time
+ - y: 523_xalancbmk_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 523_xalancbmk_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 523_xalancbmk_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 523.xalancbmk_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 523_xalancbmk_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 523_xalancbmk_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 523_xalancbmk_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 523_xalancbmk_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 525.x264_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 525_x264_r_base_selected_time
+ legend: Selected Base Time
+ - y: 525_x264_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 525_x264_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 525_x264_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 525.x264_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 525_x264_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 525_x264_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 525_x264_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 525_x264_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 531.deepsjeng_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 531_deepsjeng_r_base_selected_time
+ legend: Selected Base Time
+ - y: 531_deepsjeng_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 531_deepsjeng_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 531_deepsjeng_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 531.deepsjeng_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 531_deepsjeng_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 531_deepsjeng_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 531_deepsjeng_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 531_deepsjeng_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 541.leela_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 541_leela_r_base_selected_time
+ legend: Selected Base Time
+ - y: 541_leela_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 541_leela_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 541_leela_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 541.leela_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 541_leela_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 541_leela_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 541_leela_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 541_leela_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 548.exchange2_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 548_exchange2_r_base_selected_time
+ legend: Selected Base Time
+ - y: 548_exchange2_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 548_exchange2_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 548_exchange2_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 548.exchange2_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 548_exchange2_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 548_exchange2_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 548_exchange2_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 548_exchange2_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
+
+ - type: scatter
+ title: 557.xz_r - Execution Time
+ yaxis: Time [s]
+ series:
+ - y: 557_xz_r_base_selected_time
+ legend: Selected Base Time
+ - y: 557_xz_r_base_not_selected_time
+ legend: Non-Selected Base Time
+ - y: 557_xz_r_peak_selected_time
+ legend: Selected Peak Time
+ - y: 557_xz_r_peak_not_selected_time
+ legend: Non-Selected Peak Time
+
+ - type: scatter
+ title: 557.xz_r - Ratio
+ yaxis: Ratio
+ series:
+ - y: 557_xz_r_peak_selected_ratio
+ legend: Selected Base Ratio
+ - y: 557_xz_r_base_not_selected_ratio
+ legend: Non-Selected Base Ratio
+ - y: 557_xz_r_peak_selected_ratio
+ legend: Selected Peak Ratio
+ - y: 557_xz_r_peak_not_selected_ratio
+ legend: Non-Selected Peak Ratio
\ No newline at end of file
diff --git a/example-benchmarks/spec_cpu_single_core/format_output.py b/example-benchmarks/spec_cpu_single_core/format_output.py
new file mode 100644
index 0000000..8508478
--- /dev/null
+++ b/example-benchmarks/spec_cpu_single_core/format_output.py
@@ -0,0 +1,59 @@
+import re
+import csv
+import sys
+import json
+
+def parse_spec_cpu_output(input_file):
+ with open(input_file, 'r') as f:
+ data = f.read()
+
+ lines = data.strip().split("\n")
+
+ parsed_data = {}
+ parse = False
+ for line in lines:
+ if line == "\"Full Results Table\"":
+ parse = True
+ elif line == "\"Selected Results Table\"":
+ parse = False
+
+ if parse and re.match(r'^\d{3}\.[a-z0-9]+.+', line):
+ fields = next(csv.reader([line]))
+ name = fields[0].replace(".", "_")
+ base_run_time = fields[2]
+ base_rate = fields[3]
+ base_selected = fields[4]
+ peak_run_time = fields[7]
+ peak_rate = fields[8]
+ peak_selected = fields[9]
+ if base_selected == '1':
+ parsed_data[f'{name}_base_selected_time'] = float(base_run_time)
+ parsed_data[f'{name}_base_selected_ratio'] = float(base_rate)
+ else:
+ parsed_data[f'{name}_base_not_selected_time'] = float(base_run_time)
+ parsed_data[f'{name}_base_not_selected_ratio'] = float(base_rate)
+
+ if peak_selected == '1':
+ parsed_data[f'{name}_peak_selected_time'] = float(peak_run_time)
+ parsed_data[f'{name}_peak_selected_ratio'] = float(peak_rate)
+ else:
+ parsed_data[f'{name}_peak_not_selected_time'] = float(peak_run_time)
+ parsed_data[f'{name}_peak_not_selected_ratio'] = float(peak_rate)
+
+ spec_base = re.search(r'SPECrate2017_int_base,([\d.]+)', data)
+ spec_peak = re.search(r'SPECrate2017_int_peak,([\d.]+)', data)
+
+ if spec_base:
+ parsed_data['SPECrate2017_int_base'] = float(spec_base.group(1))
+ if spec_peak:
+ parsed_data['SPECrate2017_int_peak'] = float(spec_peak.group(1))
+
+ print(json.dumps(parsed_data, indent=4))
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python format_output.py ")
+ sys.exit(1)
+
+ file_path = sys.argv[1]
+ parse_spec_cpu_output(file_path)
diff --git a/example-benchmarks/spec_cpu_single_core/run_spec.sh b/example-benchmarks/spec_cpu_single_core/run_spec.sh
new file mode 100644
index 0000000..08fce95
--- /dev/null
+++ b/example-benchmarks/spec_cpu_single_core/run_spec.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+arch=$(lscpu | grep "Architecture" | awk '{print $2}')
+
+cd /home/ubuntu/specbench
+source shrc
+if [[ "$arch" == "x86_64" ]]; then
+ runcpu --config=config_x86 --iterations=2 --reportable intrate >> log.txt
+elif [[ "$arch" == "aarch64" ]]; then
+ runcpu --config=config_graviton --iterations=2 --reportable intrate >> log.txt
+fi
diff --git a/example-benchmarks/ssd_bandwidth/ansible.yml b/example-benchmarks/ssd_bandwidth/ansible.yml
new file mode 100644
index 0000000..22493ae
--- /dev/null
+++ b/example-benchmarks/ssd_bandwidth/ansible.yml
@@ -0,0 +1,15 @@
+---
+- name: Install fio
+ hosts: localhost
+ tasks:
+ - name: Install dependencies
+ become: yes
+ apt:
+ name:
+ - fio
+ state: present
+
+ - name: Make run_fio.sh executable
+ file:
+ path: /home/ubuntu/ssd_bandwidth/run_fio.sh
+ mode: '0755'
diff --git a/example-benchmarks/ssd_bandwidth/configuration.yml b/example-benchmarks/ssd_bandwidth/configuration.yml
new file mode 100644
index 0000000..72fc1eb
--- /dev/null
+++ b/example-benchmarks/ssd_bandwidth/configuration.yml
@@ -0,0 +1,47 @@
+---
+configuration:
+ name: SSD Bandwidth
+ description: Benchmark SSD IOPS using FIO
+ directory: ssd_bandwidth
+ cron: "0 * * * *"
+ instance-number: 1
+ instance-types:
+ - i4g.large
+ - i4i.large
+ - is4gen.large
+ - i3.large
+ - i3en.large
+ - im4gn.large
+
+nodes:
+ - node-id: 0
+ ansible-configuration: ansible.yml
+ benchmark-command: sudo ./run_fio.sh
+ output-command: python3 format_output.py results-read.json results-randread.json results-write.json results-randwrite.json
+
+plots:
+ - type: scatter
+ title: Sequential Read Throughput
+ yaxis: SSD Throughput [IOPS]
+ series:
+ - y: iops_stddev_read
+ legend: Stddev
+ - y: iops_mean_read
+ legend: Average
+ - y: iops_min_read
+ legend: Minimum
+ - y: iops_max_read
+ legend: Maximum
+ - type: scatter
+ title: Random Read Throughput
+ yaxis: SSD Throughput [IOPS]
+ series:
+ - y: iops_stddev_randread
+ legend: Stddev
+ - y: iops_mean_randread
+ legend: Average
+ - y: iops_min_randread
+ legend: Minimum
+ - y: iops_max_randread
+ legend: Maximum
+
diff --git a/example-benchmarks/ssd_bandwidth/format_output.py b/example-benchmarks/ssd_bandwidth/format_output.py
new file mode 100644
index 0000000..2122ae3
--- /dev/null
+++ b/example-benchmarks/ssd_bandwidth/format_output.py
@@ -0,0 +1,27 @@
+import sys
+import json
+
+def parse_fio(file_path):
+ benchmark_type = file_path[:-5].split("-")[1]
+
+ with open(file_path, "r") as f:
+ fio_json = json.load(f)
+
+ benchmark_type_json = benchmark_type.replace("rand", "")
+ target_benchmark = fio_json["jobs"][0][benchmark_type_json]
+ # flatten latency dict -> e.g., "lat_ns": {"N": 42, ...} -> "lat_ns_N": 42
+ latencies = {f"lat_ns_{key}_{benchmark_type}": value for key, value in target_benchmark["lat_ns"].items()}
+ # remove nested json structures
+ cleaned = {f"{key}_{benchmark_type}": value for key, value in target_benchmark.items() if not type(value) in [list, dict]}
+ return cleaned | latencies
+
+if __name__ == "__main__":
+ if len(sys.argv) < 2:
+ print("Usage: python3 format_output.py ...")
+ sys.exit(1)
+
+ merged_dict = dict()
+ for i in range(1, len(sys.argv)):
+ merged_dict |= parse_fio(sys.argv[i])
+
+ print(json.dumps(merged_dict, indent=4))
diff --git a/example-benchmarks/ssd_bandwidth/run_fio.sh b/example-benchmarks/ssd_bandwidth/run_fio.sh
new file mode 100644
index 0000000..655f70b
--- /dev/null
+++ b/example-benchmarks/ssd_bandwidth/run_fio.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+
+# Dynamically detect a non-boot nvme device
+non_boot_device=$(lsblk -dno NAME | while read dev; do
+ if [[ $dev == "loop"* ]]; then
+ continue
+ fi
+ if ! lsblk /dev/$dev --noheadings --output MOUNTPOINT | grep -qE '^/$|^/boot/efi$'; then
+ echo $dev
+ break
+ fi
+done)
+
+lsblk_output=$(lsblk)
+size_str=$(echo "$lsblk_output" | grep "$non_boot_device" | awk '{print $4}')
+
+# Convert the input based on the unit (G for Gigabytes, T for Terabytes)
+if [[ $size_str == *"T" ]]; then
+ # Convert Terabytes to Gigabytes (1T = 1000G)
+ ssd_size=$(echo $size_str | sed 's/\([0-9]*\)\.[0-9]*T/\1/' | awk '{print $1 * 1000}')
+elif [[ $size_str == *"G" ]]; then
+ # Directly use Gigabytes if it's already in Gigabytes
+ ssd_size=$(echo $size_str | sed 's/\([0-9]*\)\.[0-9]*G/\1/')
+else
+ echo "Unknown unit, only G (Gigabytes) and T (Terabytes) are supported."
+# exit 1
+fi
+
+# Cap the value at 100GB
+if (( ssd_size > 100 )); then
+ ssd_size=100
+fi
+
+sudo chmod 666 "/dev/$non_boot_device"
+sudo fio --name=readio --rw=write --numjobs=16 --refill_buffers --ioengine=libaio --group_reporting --iodepth=128 --bs=4k --filename="/dev/$non_boot_device" --size="$ssd_size"G --direct=1 --output-format=json --output=results-write.json
+experiments=("randwrite" "read" "randread")
+for exp in "${experiments[@]}"
+do
+ output_file="results-${exp}.json"
+ sudo fio --name=readio --rw="${exp}" --numjobs=16 --refill_buffers --ioengine=libaio --time_based --runtime=60s --group_reporting --iodepth=128 --bs=4k --filename="/dev/$non_boot_device" --size="$ssd_size"G --direct=1 --output-format=json --output="$output_file"
+done
\ No newline at end of file