\clearpage
\begin{appendices}

\section{Implementation}
\label{app:impl}

\begin{table}[!ht]
\resizebox{\columnwidth}{!}{
\begin{tabular}{l l}
Repository: & \url{https://cgit.brentj.es/cmix.git/} \\
Documentation: & \url{https://dump.brentj.es/cmix/} \\
\end{tabular}
}
\end{table}

\section{PC specifications}
\label{app-specs}

\begin{table}[!ht]
\resizebox{\columnwidth}{!}{
\begin{tabular}{|l l|}
\hline
CPU: &Intel Core i7 960 @ 3.20GHz\\
Microcode: &0x19 \\
RAM: &3x 4GB @ 1066 MHz DDR3 \\
Bogomips: &6619.51 \\
OS: &Arch Linux \\
Turbo Boost: &off \\
\hline
\end{tabular}
}
\caption{Basic PC specs}
\end{table}

\begin{table}[!ht]
\noindent\resizebox{\columnwidth}{!}{
\begin{tabular}{|l r r r|}
\hline
System Benchmarks Index Values              &BASELINE  &    RESULT  & INDEX\\\hline
Dhrystone 2 using register variables        &116700.0  &28324596.9  &2427.1\\\hline
Double-Precision Whetstone                  &    55.0  &    3683.4  & 669.7\\\hline
Execl Throughput                            &    43.0  &    4629.5  &1076.6\\\hline
File Copy 1024 bufsize 2000 maxblocks       &  3960.0  &  982540.2  &2481.2\\\hline
File Copy 256 bufsize 500 maxblocks         &  1655.0  &  275396.4  &1664.0\\\hline
File Copy 4096 bufsize 8000 maxblocks       &  5800.0  & 1976435.4  &3407.6\\\hline
Pipe Throughput                             & 12440.0  & 1939188.3  &1558.8\\\hline
Pipe-based Context Switching                &  4000.0  &  115504.5  & 288.8\\\hline
Process Creation                            &   126.0  &    5137.2  & 407.7\\\hline
Shell Scripts (1 concurrent)                &    42.4  &    1885.8  & 444.8\\\hline
Shell Scripts (8 concurrent)                &     6.0  &    1093.4  &1822.3\\\hline
System Call Overhead                        & 15000.0  & 2935648.7  &1957.1\\\hline
\hline
System Benchmarks Index Score               &          &            &1178.4\\\hline

\hline
\end{tabular}
}
\caption{Unix Bench index results to give a comparable baseline}
\end{table}

\section{Compiler options}
\label{app-ccopts}

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}



	



\section{Some scripts to do result processing}

The script that converts the output from the statsd to a \LaTeX\xspace table format.

\begin{lstlisting}
cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS=",";}; {if (NR == 1) {print "prepre (s) & premix (s) & prepost (s) & realpre (s) & realmix (s) & realpost (s) \\\\\hline\\hline";} else{ OFMT="%.2f"; c=1000000000; print ($5-$6)/c,"&",($1-$2)/c,"&",($3-$4)/c,"&",($11-$12)/c,"&",($7-$8)/c,"&",($9-$10)/c,"\\\\\\hline";}}'
\end{lstlisting}

Script that calculates the mean and standard deviation of each column.

\begin{lstlisting}
tail -n +2 | cut -d ',' -f 2,5,8,11,14,17,20,23,26,29,32,35 | awk 'BEGIN {FS=",";}; { OFMT="%.2f"; c=1000000000; print ($5-$6)/c,($1-$2)/c,($3-$4)/c,($11-$12)/c,($7-$8)/c,($9-$10)/c;}' | awk '{for(i=1;i<=NF;i++) {sum[i] += $i; sumsq[i] += ($i)^2}} END {for (i=1;i<=NF;i++) {printf " & %.3f (%.3f)", sum[i]/NR, sqrt((sumsq[i]-sum[i]^2/NR)/NR)} printf("\n")}'
\end{lstlisting}

\clearpage

\section{Tables}
\label{app-tables}

\newcommand{\rtable}[2]{
\begin{table}[!ht]
\centering
\begin{scriptsize}
\begin{tabularx}{\columnwidth}{|X|X|X|X|X|X|}
\hline
\input{#1}
\end{tabularx}
\end{scriptsize}
\caption{#2}
\end{table}
}

\vspace{2.355em}

\rtable{results/node1_500_ec.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/node3_500_ec.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/node2_500_mg.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/node1_400_ec.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/node3_400_ec.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/node2_400_mg.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/node1_300_ec.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/node3_300_ec.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/node2_300_mg.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/node1_200_ec.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/node3_200_ec.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/node2_200_mg.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/node1_100_ec.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/node3_100_ec.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/node2_100_mg.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}

%---------------------------------------------------------------------------------

\clearpage
%Keep this as last appendix.
%\section{Reference manual}

%\includepdf[pages=1]{appendices/refman.pdf}
%\includepdf[pages=2-]{appendices/refman.pdf}

\end{appendices}