summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--appendices/appendix.tex131
-rw-r--r--content/results.tex245
-rw-r--r--results/.gitignore2
-rwxr-xr-xresults/results.py363
-rw-r--r--thesis.tex2
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()
diff --git a/thesis.tex b/thesis.tex
index d4bf114..c532eb7 100644
--- a/thesis.tex
+++ b/thesis.tex
@@ -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