% ====================================================================== % ====================================================================== \chapter{Performance results} % ====================================================================== % ====================================================================== \section{Machine setup} \begin{figure} \begin{center} \begin{tabular}{| l | r | l | r |} \hline Architecture & x86\_64 & NUMA node(s) & 8 \\ \hline CPU op-mode(s) & 32-bit, 64-bit & Model name & AMD Opteron\texttrademark Processor 6380 \\ \hline Byte Order & Little Endian & CPU Freq & 2.5\si{\giga\hertz} \\ \hline CPU(s) & 64 & L1d cache & \SI{16}{\kibi\byte} \\ \hline Thread(s) per core & 2 & L1i cache & \SI{64}{\kibi\byte} \\ \hline Core(s) per socket & 8 & L2 cache & \SI{2048}{\kibi\byte} \\ \hline Socket(s) & 4 & L3 cache & \SI{6144}{\kibi\byte} \\ \hline \hline Operating system & Ubuntu 16.04.3 LTS & Kernel & Linux 4.4.0-97-generic \\ \hline Compiler & gcc 6.3.0 & Translator & CFA 1.0.0 \\ \hline \end{tabular} \end{center} \caption{Machine setup used for the tests} \label{tab:machine} \end{figure} \section{Micro benchmarks} \begin{figure} \begin{center} \begin{tabular}{| l | S[table-format=5.2,table-number-alignment=right] | S[table-format=5.2,table-number-alignment=right] | S[table-format=5.2,table-number-alignment=right] |} \cline{2-4} \multicolumn{1}{c |}{} & \multicolumn{1}{c |}{ Median } &\multicolumn{1}{c |}{ Average } & \multicolumn{1}{c |}{ Standard Deviation} \\ \hline Kernel Threads & 239 & 242.57 & 5.54 \\ \CFA Coroutines & 38 & 38 & 0 \\ \CFA Threads & 102 & 102.39 & 1.57 \\ $\mu$++ Coroutines & 46 & 46.68 & 0.47 \\ $\mu$++ Threads & 98 & 99.39 & 1.52 \\ \hline \end{tabular} \end{center} \caption{Context Switch comparaison. All numbers are in nanoseconds(\si{\nano\second})} \label{tab:ctx-switch} \end{figure} \begin{figure} \begin{center} \begin{tabular}{| l | S[table-format=5.2,table-number-alignment=right] | S[table-format=5.2,table-number-alignment=right] | S[table-format=5.2,table-number-alignment=right] |} \cline{2-4} \multicolumn{1}{c |}{} & \multicolumn{1}{c |}{ Median } &\multicolumn{1}{c |}{ Average } & \multicolumn{1}{c |}{ Standard Deviation} \\ \hline C routine & 2 & 2 & 0 \\ Pthreads Mutex Lock & 31 & 31.86 & 0.99 \\ $\mu$++ \code{monitor} member routine & 30 & 30 & 0 \\ \CFA \code{mutex} routine, 1 argument & 46 & 46.14 & 0.74 \\ \CFA \code{mutex} routine, 2 argument & 82 & 83 & 1.93 \\ \CFA \code{mutex} routine, 4 argument & 165 & 161.15 & 54.04 \\ \hline \end{tabular} \end{center} \caption{Mutex routine comparaison. All numbers are in nanoseconds(\si{\nano\second})} \label{tab:mutex} \end{figure} \begin{figure} \begin{center} \begin{tabular}{| l | S[table-format=5.2,table-number-alignment=right] | S[table-format=5.2,table-number-alignment=right] | S[table-format=5.2,table-number-alignment=right] |} \cline{2-4} \multicolumn{1}{c |}{} & \multicolumn{1}{c |}{ Median } &\multicolumn{1}{c |}{ Average } & \multicolumn{1}{c |}{ Standard Deviation} \\ \hline $\mu$++ \code{signal} & 322 & 322.57 & 2.77 \\ \CFA \code{signal}, 1 \code{monitor} & 1145 & 1163.64 & 27.52 \\ \CFA \code{signal}, 2 \code{monitor} & 1531 & 1550.75 & 32.77 \\ \CFA \code{signal}, 4 \code{monitor} & 2288.5 & 2326.86 & 54.73 \\ \hline \end{tabular} \end{center} \caption{Internal scheduling comparaison. All numbers are in nanoseconds(\si{\nano\second})} \label{tab:int-sched} \end{figure} \begin{figure} \begin{center} \begin{tabular}{| l | S[table-format=5.2,table-number-alignment=right] | S[table-format=5.2,table-number-alignment=right] | S[table-format=5.2,table-number-alignment=right] |} \cline{2-4} \multicolumn{1}{c |}{} & \multicolumn{1}{c |}{ Median } &\multicolumn{1}{c |}{ Average } & \multicolumn{1}{c |}{ Standard Deviation} \\ \hline $\mu$++ \code{Accept} & 349 & 339.32 & 3.14 \\ \CFA \code{waitfor}, 1 \code{monitor} & 1155.5 & 1142.04 & 25.23 \\ \CFA \code{waitfor}, 2 \code{monitor} & 1361 & 1376.75 & 28.81 \\ \CFA \code{waitfor}, 4 \code{monitor} & 1941.5 & 1957.07 & 34.7 \\ \hline \end{tabular} \end{center} \caption{External scheduling comparaison. All numbers are in nanoseconds(\si{\nano\second})} \label{tab:ext-sched} \end{figure} \begin{figure} \begin{center} \begin{tabular}{| l | S[table-format=5.2,table-number-alignment=right] | S[table-format=5.2,table-number-alignment=right] | S[table-format=5.2,table-number-alignment=right] |} \cline{2-4} \multicolumn{1}{c |}{} & \multicolumn{1}{c |}{ Median } &\multicolumn{1}{c |}{ Average } & \multicolumn{1}{c |}{ Standard Deviation} \\ \hline Pthreads & 26974.5 & 26977 & 124.12 \\ \CFA Coroutines & 5 & 5 & 0 \\ \CFA Threads & 1122.5 & 1109.86 & 36.54 \\ $\mu$++ Coroutines & 106 & 107.04 & 1.61 \\ $\mu$++ Threads & 525.5 & 533.04 & 11.14 \\ \hline \end{tabular} \end{center} \caption{Creation comparaison. All numbers are in nanoseconds(\si{\nano\second})} \label{tab:creation} \end{figure}