diff --git a/tests/population/scaling/plot_scaling_new.py b/tests/population/scaling/plot_scaling_new.py index 2535811efccb6fe53bb4a06aa1ac73f0ef625792..906a51a61a0f5d046f7f10a6b94c1a96a5ead3de 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 2e537af104936b512a6a2f7bcad360d54ccaf5ae..fafc8450bdc1c8edcb5459f8c843953a2abe68a1 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'