From 7723404ed488c82aeeca9158594afe258a6e83eb Mon Sep 17 00:00:00 2001
From: David Hendriks <davidhendriks93@gmail.com>
Date: Fri, 21 Feb 2020 14:43:25 +0000
Subject: [PATCH] improved scaling tests

---
 tests/population/scaling/plot_scaling_new.py | 40 +++++++++++++-------
 tests/population/scaling/scaling_script.py   |  2 +-
 2 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/tests/population/scaling/plot_scaling_new.py b/tests/population/scaling/plot_scaling_new.py
index 2535811ef..906a51a61 100644
--- a/tests/population/scaling/plot_scaling_new.py
+++ b/tests/population/scaling/plot_scaling_new.py
@@ -4,14 +4,13 @@ import matplotlib.pyplot as plt
 import pandas as pd
 import numpy as np
 import json
+import math
 
 scaling_result_dir = 'scaling_results'
 
-
 result_jsons = []
 result_jsons.append(os.path.join(os.path.abspath(scaling_result_dir), 'david-Lenovo-IdeaPad-S340-14IWL_100_systems.json'))
-
-
+result_jsons.append(os.path.join(os.path.abspath(scaling_result_dir), 'david-Lenovo-IdeaPad-S340-14IWL_2500_systems.json'))
 
 fig, ax1 = plt.subplots()
 ax2 = ax1.twinx()
@@ -27,9 +26,9 @@ for jsonfile in result_jsons:
         linear_stdev = np.std(linear_data)
 
         cpus = []
-        mp_speedups = []
-        mp_efficiencies = []
-        stddevs = []
+        speedups = []
+        efficiencies = []
+        stddev_speedups = []
 
         for amt_cpus in result_data['mp']:
             # Get mp data
@@ -37,39 +36,52 @@ for jsonfile in result_jsons:
             mp_mean = np.mean(mp_data)
             mp_stdev = np.std(mp_data)
 
-            # Calc and append info
+            # Calc 
             amt_cpus = int(amt_cpus)
             speedup = linear_mean/mp_mean
+            stddev_speedup = math.sqrt((linear_stdev/linear_mean)**2 + (mp_stdev/mp_mean)**2) * speedup
             efficiency = speedup/int(amt_cpus)
 
+            # Add to lists
             cpus.append(amt_cpus)
-            mp_speedups.append(speedup)
-            mp_efficiencies.append(efficiency)
-            stddevs.append(mp_stdev)
+            efficiencies.append(efficiency)
+            speedups.append(speedup)
+            stddev_speedups.append(stddev_speedup)
 
         # Plot
         ax1.errorbar(
             cpus,
-            mp_speedups,
-            stddevs,
+            speedups,
+            stddev_speedups,
             linestyle="None",
             marker="^",
             label="Speed up & efficiency of {} systems".format(result_data['amt_systems']),
         )
 
+        ax2.plot(cpus, efficiencies, alpha=0.5)
+
+        # x_position_shift += 0.1
 
 ax1.set_title(
     "Speed up ratio vs amount of cores for different amounts of systems on {}".format(
         'name_testcase'
     )
 )
+
+ax1.plot([0, max(cpus)], [0, max(cpus)], label='100% scaling')
+
 ax1.set_xlabel("Amount of cores used")
 ax1.set_ylabel("Speed up ratio (time_linear/time_parallel)")
 
 ax1.set_xlim(0, max(cpus) + 4)
-# ax1.set_ylim(0, max_speedup + 2)
-ax2.set_ylim(0, 1)
+# ax2.set_ylim(0, 1)
 
 ax1.grid()
 ax1.legend(loc=4)
 plt.show()
+
+
+
+    # fig.savefig(os.path.join(img_dir, "speedup_scaling_{}.{}".format(name_testcase, "png")))
+    # fig.savefig(os.path.join(img_dir, "speedup_scaling_{}.{}".format(name_testcase, "pdf")))
+    # fig.savefig(os.path.join(img_dir, "speedup_scaling_{}.{}".format(name_testcase, "eps")))
\ No newline at end of file
diff --git a/tests/population/scaling/scaling_script.py b/tests/population/scaling/scaling_script.py
index 2e537af10..fafc8450b 100644
--- a/tests/population/scaling/scaling_script.py
+++ b/tests/population/scaling/scaling_script.py
@@ -30,7 +30,7 @@ for i in range(1, int(amount_of_cpus/stepsize) + 1 ):
 
 amt_repeats = 5
 
-resolution = {'M_1': 10, 'per': 10}
+resolution = {'M_1': 50, 'per': 50}
 total_systems = int(np.prod([el for el in resolution.values()]))
 result_dir = 'scaling_results'
 
-- 
GitLab