diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2018-04-08 18:55:34 +0200 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2018-04-08 18:55:34 +0200 |
| commit | 8728e253d49a28752f4be1ef37467e8374560785 (patch) | |
| tree | e4e2aad742a4299d09076cede482e939ec5c285c | |
| parent | 79e3b8a3b8054dd7e570e47efbc0a359e1ff169c (diff) | |
| download | thesis-8728e253d49a28752f4be1ef37467e8374560785.tar.gz thesis-8728e253d49a28752f4be1ef37467e8374560785.tar.bz2 thesis-8728e253d49a28752f4be1ef37467e8374560785.zip | |
Automated all the result table and graph generation.
| -rw-r--r-- | appendices/appendix.tex | 131 | ||||
| -rw-r--r-- | content/results.tex | 245 | ||||
| -rw-r--r-- | results/.gitignore | 2 | ||||
| -rwxr-xr-x | results/results.py | 363 | ||||
| -rw-r--r-- | thesis.tex | 2 |
5 files changed, 435 insertions, 308 deletions
diff --git a/appendices/appendix.tex b/appendices/appendix.tex index 1be0d63..e0f6d5a 100644 --- a/appendices/appendix.tex +++ b/appendices/appendix.tex @@ -22,7 +22,7 @@ CPU: &Intel Core i7 960 @ 3.20GHz\\ Microcode: &0x19 \\ RAM: &3x 4GB @ 1066 MHz DDR3 \\ Bogomips: &6619.51 \\ -OS: &Arch Linux \\ +OS: &Arch Linux (4.14.30-1-lts) \\ Turbo Boost: &off \\ \hline \end{tabular} @@ -62,7 +62,6 @@ both C and C++ optimization related compiler flags: \begin{table}[!ht] \begin{tabularx}{\columnwidth}{p{0.12\columnwidth} p{0.88\columnwidth}} --flto: &Link\ time\ optimization\\ -O3: &3rd\ level\ optimizations\\ \end{tabularx} \end{table} @@ -91,14 +90,11 @@ tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS="," \begin{tabular}{|r|r|r|r|r|r|r|} \hline - Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline - Node1 & 0.752 (0.018) & 0.582 (0.009) & 0.274 (0.007) & 0.097 (0.005) & 0.027 (0.005) & 0.027 (0.004) \\\hline - Node2 & 0.752 (0.013) & 0.583 (0.009) & 0.274 (0.013) & 0.095 (0.008) & 0.026 (0.005) & 0.026 (0.005) \\\hline - Node3 & 0.742 (0.015) & 0.582 (0.010) & 0.274 (0.006) & 0.097 (0.005) & 0.063 (0.005) & 0.126 (0.007) \\\hline + \input{results/100_ec.tab} \end{tabular} \end{footnotesize} - \caption{Node time average over 50 runs with standard deviation in seconds using ed25519 and running 100 clients.} + \caption{Node time average over 100 runs with standard deviation in seconds using ed25519 and running 100 clients.} \end{table} \begin{table}[!ht] @@ -106,13 +102,10 @@ tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS="," \begin{footnotesize} \begin{tabular}{|r|r|r|r|r|r|r|} \hline - Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline - Node1 & 3.494 (0.025) & 3.484 (0.020) & 2.257 (0.035) & 1.151 (0.061) & 0.004 (0.005) & 0.008 (0.004) \\\hline - Node2 & 3.484 (0.018) & 3.486 (0.012) & 2.282 (0.029) & 1.177 (0.079) & 0.004 (0.005) & 0.007 (0.004) \\\hline - Node3 & 3.482 (0.018) & 3.488 (0.013) & 2.287 (0.032) & 1.180 (0.069) & 0.002 (0.004) & 0.259 (0.012) \\\hline + \input{results/100_mg.tab} \end{tabular} \end{footnotesize} - \caption{Node time average over 50 runs with standard deviation in seconds using 2048 bit multiplicative group and running 100 clients.} + \caption{Node time average over 100 runs with standard deviation in seconds using 2048 bit multiplicative group and running 100 clients.} \end{table} @@ -123,14 +116,11 @@ tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS="," \begin{footnotesize} \begin{tabular}{|r|r|r|r|r|r|r|} \hline - Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline - Node1 & 1.495 (0.040) & 1.107 (0.020) & 0.483 (0.013) & 0.157 (0.005) & 0.054 (0.005) & 0.054 (0.005) \\\hline - Node2 & 1.469 (0.038) & 1.106 (0.012) & 0.483 (0.010) & 0.156 (0.005) & 0.053 (0.005) & 0.054 (0.005) \\\hline - Node3 & 1.457 (0.022) & 1.104 (0.013) & 0.484 (0.011) & 0.154 (0.014) & 0.115 (0.005) & 0.212 (0.009) \\\hline + \input{results/200_ec.tab} \end{tabular} \end{footnotesize} - \caption{Node time average over 50 runs with standard deviation in seconds using ed25519 and running 200 clients.} + \caption{Node time average over 100 runs with standard deviation in seconds using ed25519 and running 200 clients.} \end{table} \begin{table}[!ht] @@ -138,13 +128,10 @@ tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS="," \begin{footnotesize} \begin{tabular}{|r|r|r|r|r|r|r|} \hline - Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline - Node1 & 7.035 (0.053) & 6.978 (0.019) & 5.283 (0.097) & 4.066 (0.262) & 0.013 (0.005) & 0.029 (0.003) \\\hline - Node2 & 6.973 (0.023) & 6.980 (0.016) & 5.300 (0.076) & 4.108 (0.246) & 0.014 (0.005) & 0.029 (0.003) \\\hline - Node3 & 6.983 (0.021) & 6.976 (0.022) & 5.301 (0.115) & 4.080 (0.271) & 0.012 (0.004) & 0.549 (0.005) \\\hline + \input{results/200_mg.tab} \end{tabular} \end{footnotesize} - \caption{Node time average over 50 runs with standard deviation in seconds using 2048 bit multiplicative group and running 200 clients.} + \caption{Node time average over 100 runs with standard deviation in seconds using 2048 bit multiplicative group and running 200 clients.} \end{table} @@ -155,14 +142,11 @@ tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS="," \begin{footnotesize} \begin{tabular}{|r|r|r|r|r|r|r|} \hline - Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline - Node1 & 2.270 (0.127) & 1.635 (0.025) & 0.696 (0.016) & 0.200 (0.010) & 0.081 (0.003) & 0.081 (0.004) \\\hline - Node2 & 2.219 (0.045) & 1.651 (0.027) & 0.694 (0.016) & 0.202 (0.004) & 0.080 (0.004) & 0.080 (0.003) \\\hline - Node3 & 2.181 (0.040) & 1.647 (0.022) & 0.694 (0.016) & 0.203 (0.005) & 0.151 (0.005) & 0.289 (0.013) \\\hline + \input{results/300_ec.tab} \end{tabular} \end{footnotesize} - \caption{Node time average over 50 runs with standard deviation in seconds using ed25519 and running 300 clients.} + \caption{Node time average over 100 runs with standard deviation in seconds using ed25519 and running 300 clients.} \end{table} \begin{table}[!ht] @@ -170,13 +154,10 @@ tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS="," \begin{footnotesize} \begin{tabular}{|r|r|r|r|r|r|r|} \hline - Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline - Node1 & 10.590 (0.061) & 10.534 (0.023) & 9.192 (0.224) & 8.981 (0.572) & 0.029 (0.004) & 0.064 (0.005) \\\hline - Node2 & 10.549 (0.035) & 10.539 (0.031) & 9.247 (0.193) & 9.026 (0.585) & 0.029 (0.004) & 0.064 (0.005) \\\hline - Node3 & 10.556 (0.028) & 10.538 (0.026) & 9.195 (0.245) & 9.028 (0.466) & 0.031 (0.002) & 0.814 (0.008) \\\hline + \input{results/300_mg.tab} \end{tabular} \end{footnotesize} - \caption{Node time average over 50 runs with standard deviation in seconds using 2048 bit multiplicative group and running 300 clients.} + \caption{Node time average over 100 runs with standard deviation in seconds using 2048 bit multiplicative group and running 300 clients.} \end{table} \vfill @@ -188,14 +169,11 @@ tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS="," \begin{footnotesize} \begin{tabular}{|r|r|r|r|r|r|r|} \hline - Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline - Node1 & 2.966 (0.057) & 2.177 (0.028) & 0.907 (0.045) & 0.247 (0.005) & 0.105 (0.005) & 0.106 (0.005) \\\hline - Node2 & 2.898 (0.058) & 2.172 (0.031) & 0.898 (0.021) & 0.247 (0.005) & 0.104 (0.005) & 0.104 (0.005) \\\hline - Node3 & 2.846 (0.053) & 2.155 (0.040) & 0.900 (0.024) & 0.247 (0.005) & 0.180 (0.004) & 0.367 (0.014) \\\hline + \input{results/400_ec.tab} \end{tabular} \end{footnotesize} - \caption{Node time average over 50 runs with standard deviation in seconds using ed25519 and running 400 clients.} + \caption{Node time average over 100 runs with standard deviation in seconds using ed25519 and running 400 clients.} \end{table} \begin{table}[!ht] @@ -203,13 +181,10 @@ tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS="," \begin{footnotesize} \begin{tabular}{|r|r|r|r|r|r|r|} \hline - Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline - Node1 & 15.233 (0.027) & 15.228 (0.028) & 14.763 (0.306) & 16.099 (0.799) & 0.049 (0.003) & 0.104 (0.005) \\\hline - Node2 & 15.282 (0.030) & 15.225 (0.027) & 14.954 (0.297) & 16.344 (0.588) & 0.049 (0.004) & 0.105 (0.007) \\\hline - Node3 & 15.284 (0.038) & 15.234 (0.034) & 14.947 (0.348) & 16.294 (0.765) & 0.050 (0.003) & 1.166 (0.010) \\\hline + \input{results/400_mg.tab} \end{tabular} \end{footnotesize} - \caption{Node time average over 50 runs with standard deviation in seconds using 2048 bit multiplicative group and running 400 clients.} + \caption{Node time average over 100 runs with standard deviation in seconds using 2048 bit multiplicative group and running 400 clients.} \end{table} @@ -222,87 +197,87 @@ tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS="," \label{app-tables} \newcommand{\rtable}[2]{ -\begin{table}[!ht] -\centering +\begin{centering} \begin{scriptsize} -\begin{tabular}{|r|r|r|r|r|r|} +\begin{longtable}{|r|r|r|r|r|r|} \hline \input{#1} -\end{tabular} -\end{scriptsize} \caption{#2} -\end{table} +\end{longtable} +\end{scriptsize} +\end{centering} +\clearpage } \vspace{2.355em} -\rtable{results/node1_100_ec.tab}{Timings of Node 1 elliptic curve algorithm with 100 clients} +\rtable{results/result_node1_100_ON.tab}{Timings of Node 1 elliptic curve algorithm with 100 clients} -\rtable{results/node2_100_ec.tab}{Timings of Node 2 elliptic curve algorithm with 100 clients} +\rtable{results/result_node2_100_ON.tab}{Timings of Node 2 elliptic curve algorithm with 100 clients} -\rtable{results/node3_100_ec.tab}{Timings of Node 3 elliptic curve algorithm with 100 clients} +\rtable{results/result_node3_100_ON.tab}{Timings of Node 3 elliptic curve algorithm with 100 clients} -\rtable{results/node1_100_mg.tab}{Timings of Node 1 multiplicative group algorithm with 100 clients} +\rtable{results/result_node1_100_OFF.tab}{Timings of Node 1 multiplicative group algorithm with 100 clients} -\rtable{results/node2_100_mg.tab}{Timings of Node 2 multiplicative group algorithm with 100 clients} +\rtable{results/result_node2_100_OFF.tab}{Timings of Node 2 multiplicative group algorithm with 100 clients} -\rtable{results/node3_100_mg.tab}{Timings of Node 3 multiplicative group algorithm with 100 clients} +\rtable{results/result_node3_100_OFF.tab}{Timings of Node 3 multiplicative group algorithm with 100 clients} %--------------------------------------------------------------------------------- -\rtable{results/node1_200_ec.tab}{Timings of Node 1 elliptic curve algorithm with 200 clients} +\rtable{results/result_node1_200_ON.tab}{Timings of Node 1 elliptic curve algorithm with 200 clients} -\rtable{results/node2_200_ec.tab}{Timings of Node 2 elliptic curve algorithm with 200 clients} +\rtable{results/result_node2_200_ON.tab}{Timings of Node 2 elliptic curve algorithm with 200 clients} -\rtable{results/node3_200_ec.tab}{Timings of Node 3 elliptic curve algorithm with 200 clients} +\rtable{results/result_node3_200_ON.tab}{Timings of Node 3 elliptic curve algorithm with 200 clients} -\rtable{results/node1_200_mg.tab}{Timings of Node 1 multiplicative group algorithm with 200 clients} +\rtable{results/result_node1_200_OFF.tab}{Timings of Node 1 multiplicative group algorithm with 200 clients} -\rtable{results/node2_200_mg.tab}{Timings of Node 2 multiplicative group algorithm with 200 clients} +\rtable{results/result_node2_200_OFF.tab}{Timings of Node 2 multiplicative group algorithm with 200 clients} -\rtable{results/node3_200_mg.tab}{Timings of Node 3 multiplicative group algorithm with 200 clients} +\rtable{results/result_node3_200_OFF.tab}{Timings of Node 3 multiplicative group algorithm with 200 clients} %--------------------------------------------------------------------------------- -\rtable{results/node1_300_ec.tab}{Timings of Node 1 elliptic curve algorithm with 300 clients} +\rtable{results/result_node1_300_ON.tab}{Timings of Node 1 elliptic curve algorithm with 300 clients} -\rtable{results/node2_300_ec.tab}{Timings of Node 2 elliptic curve algorithm with 300 clients} +\rtable{results/result_node2_300_ON.tab}{Timings of Node 2 elliptic curve algorithm with 300 clients} -\rtable{results/node3_300_ec.tab}{Timings of Node 3 elliptic curve algorithm with 300 clients} +\rtable{results/result_node3_300_ON.tab}{Timings of Node 3 elliptic curve algorithm with 300 clients} -\rtable{results/node1_300_mg.tab}{Timings of Node 1 multiplicative group algorithm with 300 clients} +\rtable{results/result_node1_300_OFF.tab}{Timings of Node 1 multiplicative group algorithm with 300 clients} -\rtable{results/node2_300_mg.tab}{Timings of Node 2 multiplicative group algorithm with 300 clients} +\rtable{results/result_node2_300_OFF.tab}{Timings of Node 2 multiplicative group algorithm with 300 clients} -\rtable{results/node3_300_mg.tab}{Timings of Node 3 multiplicative group algorithm with 300 clients} +\rtable{results/result_node3_300_OFF.tab}{Timings of Node 3 multiplicative group algorithm with 300 clients} %--------------------------------------------------------------------------------- -\rtable{results/node1_400_ec.tab}{Timings of Node 1 elliptic curve algorithm with 400 clients} +\rtable{results/result_node1_400_ON.tab}{Timings of Node 1 elliptic curve algorithm with 400 clients} -\rtable{results/node2_400_ec.tab}{Timings of Node 2 elliptic curve algorithm with 400 clients} +\rtable{results/result_node2_400_ON.tab}{Timings of Node 2 elliptic curve algorithm with 400 clients} -\rtable{results/node3_400_ec.tab}{Timings of Node 3 elliptic curve algorithm with 400 clients} +\rtable{results/result_node3_400_ON.tab}{Timings of Node 3 elliptic curve algorithm with 400 clients} -\rtable{results/node1_400_mg.tab}{Timings of Node 1 multiplicative group algorithm with 400 clients} +\rtable{results/result_node1_400_OFF.tab}{Timings of Node 1 multiplicative group algorithm with 400 clients} -\rtable{results/node2_400_mg.tab}{Timings of Node 2 multiplicative group algorithm with 400 clients} +\rtable{results/result_node2_400_OFF.tab}{Timings of Node 2 multiplicative group algorithm with 400 clients} -\rtable{results/node3_400_mg.tab}{Timings of Node 3 multiplicative group algorithm with 400 clients} +\rtable{results/result_node3_400_OFF.tab}{Timings of Node 3 multiplicative group algorithm with 400 clients} %--------------------------------------------------------------------------------- -\rtable{results/node1_500_ec.tab}{Timings of Node 1 elliptic curve algorithm with 500 clients} +\rtable{results/result_node1_500_ON.tab}{Timings of Node 1 elliptic curve algorithm with 500 clients} -\rtable{results/node2_500_ec.tab}{Timings of Node 2 elliptic curve algorithm with 500 clients} +\rtable{results/result_node2_500_ON.tab}{Timings of Node 2 elliptic curve algorithm with 500 clients} -\rtable{results/node3_500_ec.tab}{Timings of Node 3 elliptic curve algorithm with 500 clients} +\rtable{results/result_node3_500_ON.tab}{Timings of Node 3 elliptic curve algorithm with 500 clients} -\rtable{results/node1_500_mg.tab}{Timings of Node 1 multiplicative group algorithm with 500 clients} +\rtable{results/result_node1_500_OFF.tab}{Timings of Node 1 multiplicative group algorithm with 500 clients} -\rtable{results/node2_500_mg.tab}{Timings of Node 2 multiplicative group algorithm with 500 clients} +\rtable{results/result_node2_500_OFF.tab}{Timings of Node 2 multiplicative group algorithm with 500 clients} -\rtable{results/node3_500_mg.tab}{Timings of Node 3 multiplicative group algorithm with 500 clients} +\rtable{results/result_node3_500_OFF.tab}{Timings of Node 3 multiplicative group algorithm with 500 clients} %--------------------------------------------------------------------------------- diff --git a/content/results.tex b/content/results.tex index 767b7ac..002b70f 100644 --- a/content/results.tex +++ b/content/results.tex @@ -23,14 +23,11 @@ The following results were gathered with the pc specs as listed in appendix \ref \begin{footnotesize} \begin{tabular}{|r|r|r|r|r|r|r|} \hline - Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline - Node1 & 3.662 (0.030) & 2.819 (0.015) & 1.163 (0.029) & 0.299 (0.004) & 0.122 (0.004) & 0.123 (0.004) \\\hline - Node2 & 3.676 (0.025) & 2.818 (0.020) & 1.170 (0.029) & 0.302 (0.005) & 0.124 (0.005) & 0.123 (0.005) \\\hline - Node3 & 3.680 (0.026) & 2.819 (0.018) & 1.169 (0.028) & 0.302 (0.004) & 0.212 (0.004) & 0.451 (0.020) \\\hline + \input{results/ec_summary.tab} \end{tabular} \end{footnotesize} - \caption{Node time average over 50 runs with standard deviation in seconds using ed25519 and running 500 clients.} + \caption{Node time average over 100 runs with standard deviation in seconds using ed25519 and running 500 clients.} \end{table} \begin{table}[!ht] @@ -38,13 +35,10 @@ The following results were gathered with the pc specs as listed in appendix \ref \begin{footnotesize} \begin{tabular}{|r|r|r|r|r|r|r|} \hline - Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline - Node1 & 19.145 (0.039) & 19.142 (0.035) & 20.125 (0.560) & 24.769 (1.373) & 0.074 (0.005) & 0.140 (0.005) \\\hline - Node2 & 19.215 (0.041) & 19.140 (0.035) & 20.114 (0.661) & 24.509 (2.063) & 0.072 (0.005) & 0.139 (0.006) \\\hline - Node3 & 19.219 (0.073) & 19.152 (0.066) & 20.235 (1.183) & 24.560 (2.845) & 0.074 (0.006) & 1.475 (0.018) \\\hline + \input{results/mg_summary.tab} \end{tabular} \end{footnotesize} - \caption{Node time average over 50 runs with standard deviation in seconds using 2048 bit multiplicative group and running 500 clients.} + \caption{Node time average over 100 runs with standard deviation in seconds using 2048 bit multiplicative group and running 500 clients.} \end{table} @@ -57,7 +51,7 @@ The following results were gathered with the pc specs as listed in appendix \ref \begin{tikzpicture} \begin{axis}[ xmin=0, xmax=500, xtick=data, - ymin=0, ymax=20, + ymin=0, ymax=200, ymajorgrids=true, grid style=dashed, legend pos=north west, @@ -67,41 +61,7 @@ The following results were gathered with the pc specs as listed in appendix \ref ylabel={Time in s} ] - \addplot[color=red] coordinates - {(0,0)(100,0.752)(200,1.495)(300,2.270)(400, 2.966)(500,3.662)}; - \addplot[name path=n1ec_top,color=red!70] coordinates {(0,0)(100,0.770)(200,1.535)(300,2.397)(400, 3.023)(500,3.692)}; - \addplot[name path=n1ec_down,color=red!70] coordinates {(0,0)(100,0.736)(200,1.455)(300,2.143)(400, 2.909)(500,3.632)}; - \addplot[red!50,fill opacity=0.5] fill between[of=n1ec_top and n1ec_down]; - - \addplot[color=green] coordinates - {(0,0)(100,0.752)(200,1.469)(300,2.219)(400,2.898)(500,3.676)}; - \addplot[name path=n2ec_top,color=green!70] coordinates {(0,0)(100,0.765)(200,1.507)(300,2.264)(400,2.956)(500,3.701)}; - \addplot[name path=n2ec_down,color=green!70] coordinates {(0,0)(100,0.739)(200,1.431)(300,2.174)(400,2.840)(500,3.651)}; - \addplot[green!50,fill opacity=0.5] fill between[of=n2ec_top and n2ec_down]; - - \addplot[color=blue] coordinates - {(0,0)(100,0.742)(200,1.457)(300,2.181)(400,2.846)(500,3.68)}; - \addplot[name path=n3ec_top,color=blue!70] coordinates {(0,0)(100,0.757)(200,1.479)(300,2.221)(400,2.899)(500,3.706)}; - \addplot[name path=n3ec_down,color=blue!70] coordinates {(0,0)(100,0.727)(200,1.435)(300,2.141)(400,2.793)(500,3.654)}; - \addplot[blue!50,fill opacity=0.5] fill between[of=n3ec_top and n3ec_down]; - - \addplot[color=yellow] coordinates - {(0,0)(100,3.494)(200,7.035)(300,10.59)(400,15.233)(500,19.145)}; - \addplot[name path=n1mg_top,color=yellow!70] coordinates {(0,0)(100,3.519)(200,7.088)(300,10.651)(400,15.26)(500,19.184)}; - \addplot[name path=n1mg_down,color=yellow!70] coordinates {(0,0)(100,3.469)(200,6.982)(300,10.529)(400,15.206)(500,19.106)}; - \addplot[yellow!50,fill opacity=0.5] fill between[of=n1mg_top and n1mg_down]; - - \addplot[color=orange] coordinates - {(0,0)(100,3.484)(200,6.973)(300,10.549)(400,15.282)(500,19.215)}; - \addplot[name path=n2mg_top,color=orange!70] coordinates {(0,0)(100,3.502)(200,6.996)(300,10.584)(400,15.312)(500,19.256)}; - \addplot[name path=n2mg_down,color=orange!70] coordinates {(0,0)(100,3.466)(200,6.95)(300,10.514)(400,15.252)(500,19.174)}; - \addplot[orange!50,fill opacity=0.5] fill between[of=n2mg_top and n2mg_down]; - - \addplot[color=black] coordinates - {(0,0)(100,3.482)(200,6.983)(300,10.556)(400,15.284)(500,19.219)}; - \addplot[name path=n3mg_top,color=black!70] coordinates {(0,0)(100,3.5)(200,7.004)(300,10.584)(400,15.322)(500,19.292)}; - \addplot[name path=n3mg_down,color=black!70] coordinates {(0,0)(100,3.464)(200,6.962)(300,10.528)(400,15.246)(500,19.146)}; - \addplot[black!50,fill opacity=0.5] fill between[of=n3mg_top and n3mg_down]; + \input{results/prePre.graph} \legend{Node1 ec prepre,,,,Node2 ec prepre,,,,Node3 ec prepre,,,,Node1 mg prepre,,,,Node2 mg prepre,,,,Node3 mg prepre} \end{axis} @@ -115,7 +75,7 @@ The following results were gathered with the pc specs as listed in appendix \ref \begin{tikzpicture} \begin{axis}[ xmin=0, xmax=500, xtick=data, - ymin=0, ymax=20, + ymin=0, ymax=80, ymajorgrids=true, grid style=dashed, legend pos=north west, @@ -125,42 +85,7 @@ The following results were gathered with the pc specs as listed in appendix \ref ylabel={Time in s} ] - %-------------------------------------------------------------------- - \addplot[color=red] coordinates - {(0,0)(100,0.582)(200,1.107)(300,1.635)(400,2.177)(500,2.819)}; - \addplot[name path=n1ec_top,color=red!70] coordinates {(0,0)(100,0.591)(200,1.127)(300,1.660)(400,2.205)(500,2.834)}; - \addplot[name path=n1ec_down,color=red!70] coordinates {(0,0)(100,0.573)(200,1.087)(300,1.610)(400,2.149)(500,2.804)}; - \addplot[red!50,fill opacity=0.5] fill between[of=n1ec_top and n1ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=green] coordinates {(0,0)(100,0.583)(200,1.106)(300,1.651)(400,2.172)(500,2.818)}; - \addplot[name path=n2ec_top,color=green!70] coordinates {(0,0)(100,0.592)(200,1.118)(300,1.678)(400,2.203)(500,2.838)}; - \addplot[name path=n2ec_down,color=green!70] coordinates {(0,0)(100,0.574)(200,1.094)(300,1.624)(400,2.141)(500,2.798)}; - \addplot[green!50,fill opacity=0.5] fill between[of=n2ec_top and n2ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=blue] coordinates {(0,0)(100,0.582)(200,1.104)(300,1.647)(400,2.155)(500,2.819)}; - \addplot[name path=n3ec_top,color=blue!70] coordinates {(0,0)(100,0.592)(200,1.117)(300,1.669)(400,2.195)(500,2.837)}; - \addplot[name path=n3ec_down,color=blue!70] coordinates {(0,0)(100,0.572)(200,1.091)(300,1.625)(400,2.115)(500,2.801)}; - \addplot[blue!50,fill opacity=0.5] fill between[of=n3ec_top and n3ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=yellow] coordinates {(0,0)(100,3.484)(200,6.978)(300,10.534)(400,15.228)(500,19.142)}; - \addplot[name path=n1mg_top,color=yellow!70] coordinates {(0,0)(100,3.504)(200,6.997)(300,10.557)(400,15.256)(500,19.177)}; - \addplot[name path=n1mg_down,color=yellow!70] coordinates {(0,0)(100,3.464)(200,6.959)(300,10.511)(400,15.200)(500,19.107)}; - \addplot[yellow!50,fill opacity=0.5] fill between[of=n1mg_top and n1mg_down]; - - %-------------------------------------------------------------------- - \addplot[color=orange] coordinates {(0,0)(100,3.486)(200,6.980)(300,10.539)(400,15.225)(500,19.140)}; - \addplot[name path=n2mg_top,color=orange!70] coordinates {(0,0)(100,3.498)(200,6.996)(300,10.570)(400,15.252)(500,19.175)}; - \addplot[name path=n2mg_down,color=orange!70] coordinates {(0,0)(100,3.474)(200,6.964)(300,10.508)(400,15.198)(500,19.105)}; - \addplot[orange!50,fill opacity=0.5] fill between[of=n2mg_top and n2mg_down]; - - %-------------------------------------------------------------------- - \addplot[color=black] coordinates {(0,0)(100,3.488)(200,6.976)(300,10.538)(400,15.234)(500,19.140)}; - \addplot[name path=n3mg_top,color=black!70] coordinates {(0,0)(100,3.501)(200,6.998)(300,10.564)(400,15.268)(500,19.175)}; - \addplot[name path=n3mg_down,color=black!70] coordinates {(0,0)(100,3.475)(200,6.954)(300,10.512)(400,15.200)(500,19.105)}; - \addplot[black!50,fill opacity=0.5] fill between[of=n3mg_top and n3mg_down]; + \input{results/preMix.graph} \legend{Node1 ec premix,,,,Node2 ec premix,,,,Node3 ec premix,,,,Node1 mg premix,,,,Node2 mg premix,,,,Node3 mg premix} \end{axis} @@ -185,42 +110,7 @@ The following results were gathered with the pc specs as listed in appendix \ref ylabel={Time in s} ] - %-------------------------------------------------------------------- - \addplot[color=red] coordinates - {(0,0)(100,0.274)(200,0.483)(300,0.696)(400,0.907)(500,1.163)}; - \addplot[name path=n1ec_top,color=red!70] coordinates {(0,0)(100,0.281)(200,0.496)(300,0.712)(400,0.952)(500,1.192)}; - \addplot[name path=n1ec_down,color=red!70] coordinates {(0,0)(100,0.267)(200,0.470)(300,0.680)(400,0.862)(500,1.134)}; - \addplot[red!50,fill opacity=0.5] fill between[of=n1ec_top and n1ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=green] coordinates {(0,0)(100,0.274)(200,0.483)(300,0.694)(400,0.898)(500,1.170)}; - \addplot[name path=n2ec_top,color=green!70] coordinates {(0,0)(100,0.287)(200,0.493)(300,0.710)(400,0.919)(500,1.199)}; - \addplot[name path=n2ec_down,color=green!70] coordinates {(0,0)(100,0.261)(200,0.473)(300,0.678)(400,0.877)(500,1.141)}; - \addplot[green!50,fill opacity=0.5] fill between[of=n2ec_top and n2ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=blue] coordinates {(0,0)(100,0.274)(200,0.484)(300,0.694)(400,0.900)(500,1.169)}; - \addplot[name path=n3ec_top,color=blue!70] coordinates {(0,0)(100,0.280)(200,0.495)(300,0.710)(400,0.924)(500,1.197)}; - \addplot[name path=n3ec_down,color=blue!70] coordinates {(0,0)(100,0.268)(200,0.473)(300,0.678)(400,0.876)(500,1.141)}; - \addplot[blue!50,fill opacity=0.5] fill between[of=n3ec_top and n3ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=yellow] coordinates {(0,0)(100,2.257)(200,5.283)(300,9.192)(400,14.763)(500,20.125)}; - \addplot[name path=n1mg_top,color=yellow!70] coordinates {(0,0)(100,2.292)(200,5.380)(300,9.416)(400,15.069)(500,20.685)}; - \addplot[name path=n1mg_down,color=yellow!70] coordinates {(0,0)(100,2.222)(200,5.186)(300,8.968)(400,14.457)(500,19.565)}; - \addplot[yellow!50,fill opacity=0.5] fill between[of=n1mg_top and n1mg_down]; - - %-------------------------------------------------------------------- - \addplot[color=orange] coordinates {(0,0)(100,2.282)(200,5.300)(300,9.247)(400,14.954)(500,20.114)}; - \addplot[name path=n2mg_top,color=orange!70] coordinates {(0,0)(100,2.311)(200,5.376)(300,9.440)(400,15.251)(500,20.775)}; - \addplot[name path=n2mg_down,color=orange!70] coordinates {(0,0)(100,2.253)(200,5.224)(300,9.054)(400,14.657)(500,19.453)}; - \addplot[orange!50,fill opacity=0.5] fill between[of=n2mg_top and n2mg_down]; - - %-------------------------------------------------------------------- - \addplot[color=black] coordinates {(0,0)(100,2.287)(200,5.301)(300,9.195)(400,14.947)(500,20.235)}; - \addplot[name path=n3mg_top,color=black!70] coordinates {(0,0)(100,2.319)(200,5.416)(300,9.440)(400,15.295)(500,21.418)}; - \addplot[name path=n3mg_down,color=black!70] coordinates {(0,0)(100,2.255)(200,5.186)(300,8.950)(400,14.599)(500,19.052)}; - \addplot[black!50,fill opacity=0.5] fill between[of=n3mg_top and n3mg_down]; + \input{results/prePost.graph} \legend{Node1 ec prepost,,,,Node2 ec prepost,,,,Node3 ec prepost,,,,Node1 mg prepost,,,,Node2 mg prepost,,,,Node3 mg prepost} \end{axis} @@ -235,7 +125,7 @@ The following results were gathered with the pc specs as listed in appendix \ref \begin{tikzpicture} \begin{axis}[ xmin=0, xmax=500, xtick=data, - ymin=0, ymax=28, + ymin=0, ymax=15, ymajorgrids=true, grid style=dashed, legend pos=north west, @@ -245,42 +135,7 @@ The following results were gathered with the pc specs as listed in appendix \ref ylabel={Time in s} ] - %-------------------------------------------------------------------- - \addplot[color=red] coordinates - {(0,0)(100,0.097)(200,0.157)(300,0.200)(400,0.247)(500,0.299)}; - \addplot[name path=n1ec_top,color=red!70] coordinates {(0,0)(100,0.102)(200,0.162)(300,0.210)(400,0.252)(500,0.303)}; - \addplot[name path=n1ec_down,color=red!70] coordinates {(0,0)(100,0.092)(200,0.152)(300,0.190)(400,0.242)(500,0.295)}; - \addplot[red!50,fill opacity=0.5] fill between[of=n1ec_top and n1ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=green] coordinates {(0,0)(100,0.095)(200,0.156)(300,0.202)(400,0.247)(500,0.302)}; - \addplot[name path=n2ec_top,color=green!70] coordinates {(0,0)(100,0.103)(200,0.161)(300,0.206)(400,0.252)(500,0.307)}; - \addplot[name path=n2ec_down,color=green!70] coordinates {(0,0)(100,0.087)(200,0.151)(300,0.198)(400,0.242)(500,0.297)}; - \addplot[green!50,fill opacity=0.5] fill between[of=n2ec_top and n2ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=blue] coordinates {(0,0)(100,0.097)(200,0.154)(300,0.203)(400,0.247)(500,0.302)}; - \addplot[name path=n3ec_top,color=blue!70] coordinates {(0,0)(100,0.102)(200,0.168)(300,0.208)(400,0.252)(500,0.306)}; - \addplot[name path=n3ec_down,color=blue!70] coordinates {(0,0)(100,0.092)(200,0.140)(300,0.198)(400,0.242)(500,0.298)}; - \addplot[blue!50,fill opacity=0.5] fill between[of=n3ec_top and n3ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=yellow] coordinates {(0,0)(100,1.151)(200,4.066)(300,8.981)(400,16.099)(500,24.769)}; - \addplot[name path=n1mg_top,color=yellow!70] coordinates {(0,0)(100,1.212)(200,4.328)(300,9.553)(400,16.898)(500,26.142)}; - \addplot[name path=n1mg_down,color=yellow!70] coordinates {(0,0)(100,1.090)(200,3.804)(300,8.409)(400,15.300)(500,23.396)}; - \addplot[yellow!50,fill opacity=0.5] fill between[of=n1mg_top and n1mg_down]; - - %-------------------------------------------------------------------- - \addplot[color=orange] coordinates {(0,0)(100,1.177)(200,4.108)(300,9.026)(400,16.344)(500,24.509)}; - \addplot[name path=n2mg_top,color=orange!70] coordinates {(0,0)(100,1.256)(200,4.354)(300,9.611)(400,16.932)(500,26.572)}; - \addplot[name path=n2mg_down,color=orange!70] coordinates {(0,0)(100,1.098)(200,3.862)(300,8.441)(400,15.756)(500,22.446)}; - \addplot[orange!50,fill opacity=0.5] fill between[of=n2mg_top and n2mg_down]; - - %-------------------------------------------------------------------- - \addplot[color=black] coordinates {(0,0)(100,1.180)(200,4.080)(300,9.028)(400,16.344)(500,24.560)}; - \addplot[name path=n3mg_top,color=black!70] coordinates {(0,0)(100,1.249)(200,4.351)(300,9.494)(400,16.932)(500,27.405)}; - \addplot[name path=n3mg_down,color=black!70] coordinates {(0,0)(100,1.111)(200,3.809)(300,8.562)(400,15.756)(500,21.715)}; - \addplot[black!50,fill opacity=0.5] fill between[of=n3mg_top and n3mg_down]; + \input{results/realPre.graph} \legend{Node1 ec realpre,,,,Node2 ec realpre,,,,Node3 ec realpre,,,,Node1 mg realpre,,,,Node2 mg realpre,,,,Node3 mg realpre} \end{axis} @@ -296,7 +151,7 @@ The following results were gathered with the pc specs as listed in appendix \ref \begin{axis}[ scaled ticks=false, tick label style={/pgf/number format/fixed}, xmin=0, xmax=500, xtick=data, - ymin=0, ymax=0.25, + ymin=0, ymax=1.2, ymajorgrids=true, grid style=dashed, legend pos=north west, @@ -306,42 +161,7 @@ The following results were gathered with the pc specs as listed in appendix \ref ylabel={Time in s} ] - %-------------------------------------------------------------------- - \addplot[color=red] coordinates - {(0,0)(100,0.027)(200,0.054)(300,0.081)(400,0.105)(500,0.122)}; - \addplot[name path=n1ec_top,color=red!70] coordinates {(0,0)(100,0.032)(200,0.059)(300,0.084)(400,0.110)(500,0.126)}; - \addplot[name path=n1ec_down,color=red!70] coordinates {(0,0)(100,0.022)(200,0.049)(300,0.078)(400,0.100)(500,0.118)}; - \addplot[red!50,fill opacity=0.5] fill between[of=n1ec_top and n1ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=green] coordinates {(0,0)(100,0.026)(200,0.053)(300,0.080)(400,0.104)(500,0.124)}; - \addplot[name path=n2ec_top,color=green!70] coordinates {(0,0)(100,0.031)(200,0.058)(300,0.084)(400,0.109)(500,0.129)}; - \addplot[name path=n2ec_down,color=green!70] coordinates {(0,0)(100,0.021)(200,0.048)(300,0.076)(400,0.099)(500,0.119)}; - \addplot[green!50,fill opacity=0.5] fill between[of=n2ec_top and n2ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=blue] coordinates {(0,0)(100,0.063)(200,0.115)(300,0.151)(400,0.180)(500,0.212)}; - \addplot[name path=n3ec_top,color=blue!70] coordinates {(0,0)(100,0.068)(200,0.120)(300,0.156)(400,0.184)(500,0.216)}; - \addplot[name path=n3ec_down,color=blue!70] coordinates {(0,0)(100,0.058)(200,0.110)(300,0.146)(400,0.176)(500,0.208)}; - \addplot[blue!50,fill opacity=0.5] fill between[of=n3ec_top and n3ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=yellow] coordinates {(0,0)(100,0.004)(200,0.013)(300,0.029)(400,0.049)(500,0.074)}; - \addplot[name path=n1mg_top,color=yellow!70] coordinates {(0,0)(100,0.009)(200,0.018)(300,0.033)(400,0.052)(500,0.079)}; - \addplot[name path=n1mg_down,color=yellow!70] coordinates {(0,0)(100,-0.001)(200,0.008)(300,0.025)(400,0.046)(500,0.069)}; - \addplot[yellow!50,fill opacity=0.5] fill between[of=n1mg_top and n1mg_down]; - - %-------------------------------------------------------------------- - \addplot[color=orange] coordinates {(0,0)(100,0.004)(200,0.014)(300,0.029)(400,0.049)(500,0.072)}; - \addplot[name path=n2mg_top,color=orange!70] coordinates {(0,0)(100,0.009)(200,0.019)(300,0.033)(400,0.053)(500,0.077)}; - \addplot[name path=n2mg_down,color=orange!70] coordinates {(0,0)(100,-0.001)(200,0.009)(300,0.025)(400,0.045)(500,0.067)}; - \addplot[orange!50,fill opacity=0.5] fill between[of=n2mg_top and n2mg_down]; - - %-------------------------------------------------------------------- - \addplot[color=black] coordinates {(0,0)(100,0.002)(200,0.012)(300,0.031)(400,0.050)(500,0.074)}; - \addplot[name path=n3mg_top,color=black!70] coordinates {(0,0)(100,0.006)(200,0.016)(300,0.033)(400,0.053)(500,0.080)}; - \addplot[name path=n3mg_down,color=black!70] coordinates {(0,0)(100,-0.002)(200,0.008)(300,0.029)(400,0.047)(500,0.068)}; - \addplot[black!50,fill opacity=0.5] fill between[of=n3mg_top and n3mg_down]; + \input{results/realMix.graph} \legend{Node1 ec realmix,,,,Node2 ec realmix,,,,Node3 ec realmix,,,,Node1 mg realmix,,,,Node2 mg realmix,,,,Node3 mg realmix} \end{axis} @@ -357,7 +177,7 @@ The following results were gathered with the pc specs as listed in appendix \ref \begin{axis}[ scaled ticks=false, tick label style={/pgf/number format/fixed}, xmin=0, xmax=500, xtick=data, - ymin=0, ymax=1.6, + ymin=0, ymax=2.5, ymajorgrids=true, grid style=dashed, legend pos=north west, @@ -367,42 +187,7 @@ The following results were gathered with the pc specs as listed in appendix \ref ylabel={Time in s} ] - %-------------------------------------------------------------------- - \addplot[color=red] coordinates - {(0,0)(100,0.027)(200,0.054)(300,0.081)(400,0.106)(500,0.123)}; - \addplot[name path=n1ec_top,color=red!70] coordinates {(0,0)(100,0.031)(200,0.059)(300,0.085)(400,0.111)(500,0.127)}; - \addplot[name path=n1ec_down,color=red!70] coordinates {(0,0)(100,0.023)(200,0.049)(300,0.077)(400,0.101)(500,0.119)}; - \addplot[red!50,fill opacity=0.5] fill between[of=n1ec_top and n1ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=green] coordinates {(0,0)(100,0.026)(200,0.054)(300,0.080)(400,0.104)(500,0.123)}; - \addplot[name path=n2ec_top,color=green!70] coordinates {(0,0)(100,0.031)(200,0.059)(300,0.083)(400,0.109)(500,0.128)}; - \addplot[name path=n2ec_down,color=green!70] coordinates {(0,0)(100,0.021)(200,0.049)(300,0.077)(400,0.099)(500,0.118)}; - \addplot[green!50,fill opacity=0.5] fill between[of=n2ec_top and n2ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=blue] coordinates {(0,0)(100,0.126)(200,0.212)(300,0.289)(400,0.367)(500,0.451)}; - \addplot[name path=n3ec_top,color=blue!70] coordinates {(0,0)(100,0.133)(200,0.221)(300,0.302)(400,0.381)(500,0.471)}; - \addplot[name path=n3ec_down,color=blue!70] coordinates {(0,0)(100,0.119)(200,0.203)(300,0.276)(400,0.353)(500,0.431)}; - \addplot[blue!50,fill opacity=0.5] fill between[of=n3ec_top and n3ec_down]; - - %-------------------------------------------------------------------- - \addplot[color=yellow] coordinates {(0,0)(100,0.008)(200,0.029)(300,0.064)(400,0.104)(500,0.140)}; - \addplot[name path=n1mg_top,color=yellow!70] coordinates {(0,0)(100,0.012)(200,0.032)(300,0.069)(400,0.109)(500,0.145)}; - \addplot[name path=n1mg_down,color=yellow!70] coordinates {(0,0)(100,0.004)(200,0.026)(300,0.059)(400,0.099)(500,0.135)}; - \addplot[yellow!50,fill opacity=0.5] fill between[of=n1mg_top and n1mg_down]; - - %-------------------------------------------------------------------- - \addplot[color=orange] coordinates {(0,0)(100,0.007)(200,0.029)(300,0.064)(400,0.105)(500,0.139)}; - \addplot[name path=n2mg_top,color=orange!70] coordinates {(0,0)(100,0.011)(200,0.032)(300,0.069)(400,0.112)(500,0.145)}; - \addplot[name path=n2mg_down,color=orange!70] coordinates {(0,0)(100,0.003)(200,0.026)(300,0.059)(400,0.098)(500,0.133)}; - \addplot[orange!50,fill opacity=0.5] fill between[of=n2mg_top and n2mg_down]; - - %-------------------------------------------------------------------- - \addplot[color=black] coordinates {(0,0)(100,0.259)(200,0.549)(300,0.814)(400,1.166)(500,1.475)}; - \addplot[name path=n3mg_top,color=black!70] coordinates {(0,0)(100,0.271)(200,0.554)(300,0.822)(400,1.176)(500,1.493)}; - \addplot[name path=n3mg_down,color=black!70] coordinates {(0,0)(100,0.247)(200,0.544)(300,0.806)(400,1.156)(500,1.457)}; - \addplot[black!50,fill opacity=0.5] fill between[of=n3mg_top and n3mg_down]; + \input{results/realPost.graph} \legend{Node1 ec realpost,,,,Node2 ec realpost,,,,Node3 ec realpost,,,,Node1 mg realpost,,,,Node2 mg realpost,,,,Node3 mg realpost} \end{axis} diff --git a/results/.gitignore b/results/.gitignore new file mode 100644 index 0000000..a06369a --- /dev/null +++ b/results/.gitignore @@ -0,0 +1,2 @@ +*.tab +*.graph diff --git a/results/results.py b/results/results.py new file mode 100755 index 0000000..c589178 --- /dev/null +++ b/results/results.py @@ -0,0 +1,363 @@ +#!/usr/bin/env python3 + +from decimal import Decimal +import os.path + +import pandas +import numpy +import pprint + +phaseNames = [ + 'prePre', + 'preMix', + 'prePost', + 'realPre', + 'realMix', + 'realPost' +] + +runNames = [ + '100_mg', + '100_ec', + '200_mg', + '200_ec', + '300_mg', + '300_ec', + '400_mg', + '400_ec', + '500_mg', + '500_ec' +] + +nodeNames = [ + 'node1', + 'node2', + 'node3' +] + +fileNames = [ + 'result_node1_100_OFF.csv', + 'result_node1_100_ON.csv', + 'result_node1_200_OFF.csv', + 'result_node1_200_ON.csv', + 'result_node1_300_OFF.csv', + 'result_node1_300_ON.csv', + 'result_node1_400_OFF.csv', + 'result_node1_400_ON.csv', + 'result_node1_500_OFF.csv', + 'result_node1_500_ON.csv', + 'result_node2_100_OFF.csv', + 'result_node2_100_ON.csv', + 'result_node2_200_OFF.csv', + 'result_node2_200_ON.csv', + 'result_node2_300_OFF.csv', + 'result_node2_300_ON.csv', + 'result_node2_400_OFF.csv', + 'result_node2_400_ON.csv', + 'result_node2_500_OFF.csv', + 'result_node2_500_ON.csv', + 'result_node3_100_OFF.csv', + 'result_node3_100_ON.csv', + 'result_node3_200_OFF.csv', + 'result_node3_200_ON.csv', + 'result_node3_300_OFF.csv', + 'result_node3_300_ON.csv', + 'result_node3_400_OFF.csv', + 'result_node3_400_ON.csv', + 'result_node3_500_OFF.csv', + 'result_node3_500_ON.csv' +] + +usedcolnames = [ + 'pre_pre_startuser_time', + 'pre_pre_enduser_time', + 'pre_mix_startuser_time', + 'pre_mix_enduser_time', + 'pre_post_startuser_time', + 'pre_post_enduser_time', + 'real_pre_startuser_time', + 'real_pre_enduser_time', + 'real_mix_startuser_time', + 'real_mix_enduser_time', + 'real_post_startuser_time', + 'real_post_enduser_time' +] + +def getColumn(data, start, end): + startCol = getattr(data, start).tolist()[1:] + endCol = getattr(data, end).tolist()[1:] + + difference = [(Decimal(a) - Decimal(b)) / Decimal(1000000000) for a, b in zip(endCol, startCol)] + return difference + +def getColumnAverage(data, start, end): + + difference = getColumn(data, start, end) + difference.sort() + del difference[-10:] + + arr = numpy.array(difference) + mean = numpy.mean(arr) + stdev = numpy.std(arr) + + return { + 'mean': mean, + 'stdev': stdev + } + +def getPhaseAverages(filename): + colNames = open(filename).readline().rstrip().split(', ') + + stats = dict() + + data = pandas.read_csv(filename, names=colNames) + + for start, end, name in zip(usedcolnames[::2], usedcolnames[1::2], phaseNames): + stats[name] = getColumnAverage(data, start, end) + + return stats + +def getRunAverages(runFiles): + + stats = dict() + for runName, file in zip(runNames, runFiles): + stats[runName] = getPhaseAverages(file) + + return stats + +def getNodeAverages(): + + nodeData = dict() + for node in nodeNames: + startIndex = nodeNames.index(node) * 10 + endIndex = startIndex + 10 + nodeData[node] = getRunAverages(fileNames[startIndex:endIndex]) + + return nodeData + +def writeRawTableFile(csvfilename, tabfilename): + colNames = open(csvfilename).readline().rstrip().split(', ') + + data = pandas.read_csv(csvfilename, names=colNames) + columnList = list() + for start, end in zip(usedcolnames[::2], usedcolnames[1::2]): + column = getColumn(data, start, end) + columnList.append(column) + + with open(tabfilename, 'w') as tabfile: + tabfile.write(r'prepre (s) & premix (s) & prepost (s) & realpre (s) & realmix (s) & realpost (s) \\\hline\hline' + '\n') + for x in zip(*columnList): + tabfile.write(' & '.join(["{0:.3f}".format(y) for y in x]) + r' \\\hline' + '\n') + + +def writeRawResultTableFiles(fileNames): + for fileName in fileNames: + tabFileName = os.path.splitext(fileName)[0] + ".tab" + writeRawTableFile(fileName, tabFileName) + +def writeSummaryLines(data, file, run): + for node in nodeNames: + nodeData = data[node][run] + row = list() + row.append(node) + phaseData = ['{0:.3f} ({1:.3f})'.format(x['mean'], x['stdev']) for x in [nodeData[phase] for phase in phaseNames]] + row = row + phaseData + file.write(" & ".join(row) + r' \\\hline' + '\n') + +def writeSummaryTables(data): + with open('ec_summary.tab', 'w') as tabFile: + tabFile.write(r'Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline' + '\n') + writeSummaryLines(data, tabFile, '500_ec') + + with open('mg_summary.tab', 'w') as tabFile: + tabFile.write(r'Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline' + '\n') + writeSummaryLines(data, tabFile, '500_mg') + +def writeGraph(data, phaseName): + graphData = dict() + + for node in nodeNames: + mgData = list() + ecData = list() + + phaseData = data[node] + for mgKey, ecKey in zip(runNames[::2], runNames[1::2]): + mgData.append(phaseData[mgKey][phaseName]) + ecData.append(phaseData[ecKey][phaseName]) + + graphData[node] = {'ec': ecData, 'mg': mgData} + + with open('{0}.graph'.format(phaseName), 'w') as graphFile: + graphFile.write(r'%--------------------------------------------------------------------' + '\n') + graphFile.write(r'\addplot[color=red] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node1']['ec'][0]['mean'], + graphData['node1']['ec'][1]['mean'], + graphData['node1']['ec'][2]['mean'], + graphData['node1']['ec'][3]['mean'], + graphData['node1']['ec'][4]['mean'] + ) + '\n') + graphFile.write(r'\addplot[name path=n1ec_top,color=red!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node1']['ec'][0]['mean'] + graphData['node1']['ec'][0]['stdev'], + graphData['node1']['ec'][1]['mean'] + graphData['node1']['ec'][1]['stdev'], + graphData['node1']['ec'][2]['mean'] + graphData['node1']['ec'][2]['stdev'], + graphData['node1']['ec'][3]['mean'] + graphData['node1']['ec'][3]['stdev'], + graphData['node1']['ec'][4]['mean'] + graphData['node1']['ec'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[name path=n1ec_down,color=red!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node1']['ec'][0]['mean'] - graphData['node1']['ec'][0]['stdev'], + graphData['node1']['ec'][1]['mean'] - graphData['node1']['ec'][1]['stdev'], + graphData['node1']['ec'][2]['mean'] - graphData['node1']['ec'][2]['stdev'], + graphData['node1']['ec'][3]['mean'] - graphData['node1']['ec'][3]['stdev'], + graphData['node1']['ec'][4]['mean'] - graphData['node1']['ec'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[red!50,fill opacity=0.5] fill between[of=n1ec_top and n1ec_down];' + '\n\n') + + graphFile.write(r'%--------------------------------------------------------------------' + '\n') + graphFile.write(r'\addplot[color=green] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node2']['ec'][0]['mean'], + graphData['node2']['ec'][1]['mean'], + graphData['node2']['ec'][2]['mean'], + graphData['node2']['ec'][3]['mean'], + graphData['node2']['ec'][4]['mean'] + ) + '\n') + graphFile.write(r'\addplot[name path=n2ec_top,color=green!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node2']['ec'][0]['mean'] + graphData['node2']['ec'][0]['stdev'], + graphData['node2']['ec'][1]['mean'] + graphData['node2']['ec'][1]['stdev'], + graphData['node2']['ec'][2]['mean'] + graphData['node2']['ec'][2]['stdev'], + graphData['node2']['ec'][3]['mean'] + graphData['node2']['ec'][3]['stdev'], + graphData['node2']['ec'][4]['mean'] + graphData['node2']['ec'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[name path=n2ec_down,color=green!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node2']['ec'][0]['mean'] - graphData['node2']['ec'][0]['stdev'], + graphData['node2']['ec'][1]['mean'] - graphData['node2']['ec'][1]['stdev'], + graphData['node2']['ec'][2]['mean'] - graphData['node2']['ec'][2]['stdev'], + graphData['node2']['ec'][3]['mean'] - graphData['node2']['ec'][3]['stdev'], + graphData['node2']['ec'][4]['mean'] - graphData['node2']['ec'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[green!50,fill opacity=0.5] fill between[of=n2ec_top and n2ec_down];' + '\n\n') + + graphFile.write(r'%--------------------------------------------------------------------' + '\n') + graphFile.write(r'\addplot[color=blue] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node3']['ec'][0]['mean'], + graphData['node3']['ec'][1]['mean'], + graphData['node3']['ec'][2]['mean'], + graphData['node3']['ec'][3]['mean'], + graphData['node3']['ec'][4]['mean'] + ) + '\n') + graphFile.write(r'\addplot[name path=n3ec_top,color=blue!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node3']['ec'][0]['mean'] + graphData['node3']['ec'][0]['stdev'], + graphData['node3']['ec'][1]['mean'] + graphData['node3']['ec'][1]['stdev'], + graphData['node3']['ec'][2]['mean'] + graphData['node3']['ec'][2]['stdev'], + graphData['node3']['ec'][3]['mean'] + graphData['node3']['ec'][3]['stdev'], + graphData['node3']['ec'][4]['mean'] + graphData['node3']['ec'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[name path=n3ec_down,color=blue!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node3']['ec'][0]['mean'] - graphData['node3']['ec'][0]['stdev'], + graphData['node3']['ec'][1]['mean'] - graphData['node3']['ec'][1]['stdev'], + graphData['node3']['ec'][2]['mean'] - graphData['node3']['ec'][2]['stdev'], + graphData['node3']['ec'][3]['mean'] - graphData['node3']['ec'][3]['stdev'], + graphData['node3']['ec'][4]['mean'] - graphData['node3']['ec'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[blue!50,fill opacity=0.5] fill between[of=n3ec_top and n3ec_down];' + '\n\n') + + graphFile.write(r'%--------------------------------------------------------------------' + '\n') + graphFile.write(r'\addplot[color=yellow] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node1']['mg'][0]['mean'], + graphData['node1']['mg'][1]['mean'], + graphData['node1']['mg'][2]['mean'], + graphData['node1']['mg'][3]['mean'], + graphData['node1']['mg'][4]['mean'] + ) + '\n') + graphFile.write(r'\addplot[name path=n1mg_top,color=yellow!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node1']['mg'][0]['mean'] + graphData['node1']['mg'][0]['stdev'], + graphData['node1']['mg'][1]['mean'] + graphData['node1']['mg'][1]['stdev'], + graphData['node1']['mg'][2]['mean'] + graphData['node1']['mg'][2]['stdev'], + graphData['node1']['mg'][3]['mean'] + graphData['node1']['mg'][3]['stdev'], + graphData['node1']['mg'][4]['mean'] + graphData['node1']['mg'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[name path=n1mg_down,color=yellow!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node1']['mg'][0]['mean'] - graphData['node1']['mg'][0]['stdev'], + graphData['node1']['mg'][1]['mean'] - graphData['node1']['mg'][1]['stdev'], + graphData['node1']['mg'][2]['mean'] - graphData['node1']['mg'][2]['stdev'], + graphData['node1']['mg'][3]['mean'] - graphData['node1']['mg'][3]['stdev'], + graphData['node1']['mg'][4]['mean'] - graphData['node1']['mg'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[yellow!50,fill opacity=0.5] fill between[of=n1mg_top and n1mg_down];' + '\n\n') + + graphFile.write(r'%--------------------------------------------------------------------' + '\n') + graphFile.write(r'\addplot[color=orange] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node2']['mg'][0]['mean'], + graphData['node2']['mg'][1]['mean'], + graphData['node2']['mg'][2]['mean'], + graphData['node2']['mg'][3]['mean'], + graphData['node2']['mg'][4]['mean'] + ) + '\n') + graphFile.write(r'\addplot[name path=n2mg_top,color=orange!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node2']['mg'][0]['mean'] + graphData['node2']['mg'][0]['stdev'], + graphData['node2']['mg'][1]['mean'] + graphData['node2']['mg'][1]['stdev'], + graphData['node2']['mg'][2]['mean'] + graphData['node2']['mg'][2]['stdev'], + graphData['node2']['mg'][3]['mean'] + graphData['node2']['mg'][3]['stdev'], + graphData['node2']['mg'][4]['mean'] + graphData['node2']['mg'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[name path=n2mg_down,color=orange!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node2']['mg'][0]['mean'] - graphData['node2']['mg'][0]['stdev'], + graphData['node2']['mg'][1]['mean'] - graphData['node2']['mg'][1]['stdev'], + graphData['node2']['mg'][2]['mean'] - graphData['node2']['mg'][2]['stdev'], + graphData['node2']['mg'][3]['mean'] - graphData['node2']['mg'][3]['stdev'], + graphData['node2']['mg'][4]['mean'] - graphData['node2']['mg'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[orange!50,fill opacity=0.5] fill between[of=n2mg_top and n2mg_down];' + '\n\n') + + graphFile.write(r'%--------------------------------------------------------------------' + '\n') + graphFile.write(r'\addplot[color=black] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node3']['mg'][0]['mean'], + graphData['node3']['mg'][1]['mean'], + graphData['node3']['mg'][2]['mean'], + graphData['node3']['mg'][3]['mean'], + graphData['node3']['mg'][4]['mean'] + ) + '\n') + graphFile.write(r'\addplot[name path=n3mg_top,color=black!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node3']['mg'][0]['mean'] + graphData['node3']['mg'][0]['stdev'], + graphData['node3']['mg'][1]['mean'] + graphData['node3']['mg'][1]['stdev'], + graphData['node3']['mg'][2]['mean'] + graphData['node3']['mg'][2]['stdev'], + graphData['node3']['mg'][3]['mean'] + graphData['node3']['mg'][3]['stdev'], + graphData['node3']['mg'][4]['mean'] + graphData['node3']['mg'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[name path=n3mg_down,color=black!70] coordinates {{(0,0)(100,{0:.3f})(200,{1:.3f})(300,{2:.3f})(400,{3:.3f})(500,{4:.3f})}};'.format( + graphData['node3']['mg'][0]['mean'] - graphData['node3']['mg'][0]['stdev'], + graphData['node3']['mg'][1]['mean'] - graphData['node3']['mg'][1]['stdev'], + graphData['node3']['mg'][2]['mean'] - graphData['node3']['mg'][2]['stdev'], + graphData['node3']['mg'][3]['mean'] - graphData['node3']['mg'][3]['stdev'], + graphData['node3']['mg'][4]['mean'] - graphData['node3']['mg'][4]['stdev'] + ) + '\n') + graphFile.write(r'\addplot[black!50,fill opacity=0.5] fill between[of=n3mg_top and n3mg_down];' + '\n\n') + +def writeGraphs(data): + for phaseName in phaseNames: + writeGraph(data, phaseName) + +def writeAppendixTable(data, run): + with open(run + '.tab', 'w') as tabFile: + tabFile.write(r'Node & prepre (s (\textsigma)) & premix (s (\textsigma)) & prepost (s (\textsigma)) & realpre (s (\textsigma)) & realmix (s (\textsigma)) & realpost (s (\textsigma)) \\\hline\hline' + '\n') + for node in nodeNames: + nodeData = data[node][run] + row = list() + row.append(node) + phaseData = ['{0:.3f} ({1:.3f})'.format(x['mean'], x['stdev']) for x in [nodeData[phase] for phase in phaseNames]] + row = row + phaseData + tabFile.write(' & '.join(row) + r' \\\hline' + '\n') + +def writeAppendixTables(data): + for run in runNames: + writeAppendixTable(data, run) + +def writeResults(): + writeRawResultTableFiles(fileNames) + + data = getNodeAverages() + + writeSummaryTables(data) + writeGraphs(data) + writeAppendixTables(data) + +writeResults() @@ -39,6 +39,8 @@ \usepackage{enumitem} % Customized lists \setlist[itemize]{noitemsep} % Make itemize lists more compact +\usepackage{longtable} + \usepackage{abstract} % Allows abstract customization \renewcommand{\abstractnamefont}{\normalfont\bfseries} % Set the "Abstract" text to bold \renewcommand{\abstracttextfont}{\normalfont\small\itshape} % Set the abstract itself to small italic text |
