Initial commit of master's thesis
This is the version I submitted to RWTH Aachen University at November 9, 2018.
This commit is contained in:
9
appendices/infiniband_configuration.tex
Normal file
9
appendices/infiniband_configuration.tex
Normal file
@@ -0,0 +1,9 @@
|
||||
\chapter{InfiniBand node configuration\label{a:infiniband_config}}
|
||||
|
||||
\begin{figure}[ht!]
|
||||
\vspace{-0.0cm}
|
||||
\lstinputlisting[caption=The configuration that was used to examine the InfiniBand node-type with the benchmark from \autoref{fig:villas_benchmark}. The bash variables were replaced by a script that controlled the benchmark.,
|
||||
label=lst:infiniband_config,
|
||||
style=customconfig]{listings/infiniband.conf}
|
||||
\vspace{-1.4cm}
|
||||
\end{figure}
|
3
appendices/nodetype_interface.tex
Normal file
3
appendices/nodetype_interface.tex
Normal file
@@ -0,0 +1,3 @@
|
||||
\chapter{VILLASnode node-type interface\label{a:nodetype_functions}}
|
||||
|
||||
\input{scripts/build/nodetype_functions}
|
204
appendices/results_benchmarks.tex
Normal file
204
appendices/results_benchmarks.tex
Normal file
@@ -0,0 +1,204 @@
|
||||
\chapter{Results benchmarks\label{a:results_benchmarks}}
|
||||
\section{Influence of CQEs on latency of RDMA write\label{a:oneway_unsignaled_rdma}}
|
||||
\input{tables/oneway_settings_unsignaled_rdma}
|
||||
|
||||
\begin{figure}[ht!]
|
||||
\vspace{1.5cm}
|
||||
\begin{subfigure}{\textwidth}
|
||||
\includegraphics[width=14.75cm, keepaspectratio]{plots/oneway_unsignaled_rdma_hist/plot_0.pdf}
|
||||
\end{subfigure}
|
||||
|
||||
\begin{subfigure}{\textwidth}
|
||||
\centering
|
||||
\vspace{0.05cm}
|
||||
\includegraphics{plots/oneway_unsignaled_rdma_hist/legend.pdf}
|
||||
\vspace{-0.15cm}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{Results of the one-way benchmark with the settings from \autoref{tab:oneway_settings_unsignaled_rdma}. These were used to analyze the difference in latency between messages that did and did not cause a \acrfull{cqe}. The \textit{\gls{rdma} write} operation mode was used in this test.}\label{fig:oneway_unsignaled_rdma}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
|
||||
\section{Influence of constant burst size on latency\label{a:oneway_message_size_inline}}
|
||||
\input{tables/oneway_settings_message_size_inline}
|
||||
|
||||
\begin{figure}[ht!]
|
||||
\begin{subfigure}{0.351\textwidth}
|
||||
\includegraphics[width=\linewidth, keepaspectratio]{plots/oneway_message_size_inline_median/plot_0.pdf}
|
||||
\caption{\gls{rc}}\label{fig:oneway_message_size_inline_a}
|
||||
\end{subfigure}
|
||||
\hspace*{\fill} % separation between the subfigures
|
||||
\begin{subfigure}{0.312\textwidth}
|
||||
\includegraphics[width=\linewidth, keepaspectratio]{plots/oneway_message_size_inline_median/plot_1.pdf}
|
||||
\caption{\gls{uc}}\label{fig:oneway_message_size_inline_b}
|
||||
\end{subfigure}
|
||||
\hspace*{\fill} % separation between the subfigures
|
||||
\begin{subfigure}{0.312\textwidth}
|
||||
\includegraphics[width=\linewidth, keepaspectratio]{plots/oneway_message_size_inline_median/plot_2.pdf}
|
||||
\caption{\gls{ud}}\label{fig:oneway_message_size_inline_c}
|
||||
\end{subfigure}
|
||||
\hspace*{\fill} % separation between the subfigures
|
||||
\begin{subfigure}{\textwidth}
|
||||
\centering
|
||||
\vspace{0.15cm}
|
||||
\includegraphics{plots/oneway_message_size_inline_median/legend.pdf}
|
||||
\vspace{-0.15cm}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{Results of the one-way benchmark with the settings from \autoref{tab:oneway_settings_message_size_inline}. While a triangle indicates $\tilde{t}_{lat}$ for a certain message size, the error bars indicate the upper and lower 10\% of $t_{lat}$ for that message size.}\label{fig:oneway_message_size_inline}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
|
||||
\section{Influence of intermediate pauses on latency\label{a:oneway_message_size_wait}}
|
||||
\input{tables/oneway_settings_message_size_wait}
|
||||
|
||||
\begin{figure}[ht!]
|
||||
\vspace{0.5cm}
|
||||
\begin{subfigure}{0.351\textwidth}
|
||||
\includegraphics[width=\linewidth, keepaspectratio]{plots/oneway_message_size_wait_median/plot_0.pdf}
|
||||
\caption{\gls{rc}}\label{fig:oneway_message_size_wait_a}
|
||||
\end{subfigure}
|
||||
\hspace*{\fill} % separation between the subfigures
|
||||
\begin{subfigure}{0.312\textwidth}
|
||||
\includegraphics[width=\linewidth, keepaspectratio]{plots/oneway_message_size_wait_median/plot_1.pdf}
|
||||
\caption{\gls{uc}}\label{fig:oneway_message_size_wait_b}
|
||||
\end{subfigure}
|
||||
\hspace*{\fill} % separation between the subfigures
|
||||
\begin{subfigure}{0.312\textwidth}
|
||||
\includegraphics[width=\linewidth, keepaspectratio]{plots/oneway_message_size_wait_median/plot_2.pdf}
|
||||
\caption{\gls{ud}}\label{fig:oneway_message_size_wait_c}
|
||||
\end{subfigure}
|
||||
\hspace*{\fill} % separation between the subfigures
|
||||
\begin{subfigure}{\textwidth}
|
||||
\centering
|
||||
\vspace{0.15cm}
|
||||
\includegraphics{plots/oneway_message_size_wait_median/legend.pdf}
|
||||
\vspace{-0.15cm}
|
||||
\end{subfigure}
|
||||
\caption{Results of the one-way benchmark with the settings from \autoref{tab:oneway_settings_message_size_wait}. While a triangle indicates $\tilde{t}_{lat}$ for a certain message size, the error bars indicate the upper and lower 10\% of $t_{lat}$ for that message size.}\label{fig:oneway_message_size_wait}
|
||||
\vspace{-0.5cm}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
|
||||
\section{Comparison of timer functions\label{a:timer_comparison}}
|
||||
\begin{figure}[ht!]
|
||||
\vspace{-0.5cm}
|
||||
\begin{subfigure}{\textwidth}
|
||||
\begin{minipage}{0.45cm}
|
||||
\vspace{-1.3cm}
|
||||
\caption{}\label{fig:timer_comparison_a}
|
||||
\end{minipage}
|
||||
\hfill
|
||||
\begin{minipage}{14.75cm}
|
||||
\includegraphics[width=14.75cm, keepaspectratio]{plots/nodetype_timer_comparison_wo_optimizations/infiniband_RC_0i_0j.pdf}
|
||||
\end{minipage}
|
||||
\end{subfigure}
|
||||
|
||||
\vspace{-0.2cm}
|
||||
|
||||
\begin{subfigure}{\textwidth}
|
||||
\begin{minipage}{0.45cm}
|
||||
\vspace{-1.3cm}
|
||||
\caption{}\label{fig:timer_comparison_b}
|
||||
\end{minipage}
|
||||
\hfill
|
||||
\begin{minipage}{14.75cm}
|
||||
\includegraphics[width=14.75cm, keepaspectratio]{plots/nodetype_timer_comparison_wo_optimizations/infiniband_RC_1i_0j.pdf}
|
||||
\end{minipage}
|
||||
\end{subfigure}
|
||||
|
||||
\vspace{-0.2cm}
|
||||
|
||||
\begin{subfigure}{\textwidth}
|
||||
\begin{minipage}{0.45cm}
|
||||
\vspace{-1.3cm}
|
||||
\caption{}\label{fig:timer_comparison_c}
|
||||
\end{minipage}
|
||||
\hfill
|
||||
\begin{minipage}{14.75cm}
|
||||
\includegraphics[width=14.75cm, keepaspectratio]{plots/nodetype_timer_comparison_w_optimizations/infiniband_RC_0i_0j.pdf}
|
||||
\end{minipage}
|
||||
\end{subfigure}
|
||||
|
||||
\vspace{-0.2cm}
|
||||
|
||||
\begin{subfigure}{\textwidth}
|
||||
\begin{minipage}{0.45cm}
|
||||
\vspace{-1.3cm}
|
||||
\caption{}\label{fig:timer_comparison_d}
|
||||
\end{minipage}
|
||||
\hfill
|
||||
\begin{minipage}{14.75cm}
|
||||
\includegraphics[width=14.75cm, keepaspectratio]{plots/nodetype_timer_comparison_w_optimizations/infiniband_RC_1i_0j.pdf}
|
||||
\end{minipage}
|
||||
\end{subfigure}
|
||||
|
||||
\begin{subfigure}{\textwidth}
|
||||
\centering
|
||||
\includegraphics{plots/nodetype_timer_comparison_w_optimizations/histogram_legend.pdf}
|
||||
\vspace{-0.15cm}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{Comprehensive plots of the results from \autoref{tab:timer_comparison}. Subfigure (a) and (b) show the results in the unoptimized environment with \texttt{timerfd} and \gls{tsc}, respectively. Subfigure (c) and (d) show the results for the same settings, but in the optimized environment.}\label{fig:timer_comparison}
|
||||
\vspace{-3.0cm}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
|
||||
\section{3D plots InfiniBand nodes (UC \& UD)\label{a:rate_size_3d_UC_UD}}
|
||||
\begin{figure}[ht!]
|
||||
\begin{subfigure}{\textwidth}
|
||||
\includegraphics[width=15.2cm, keepaspectratio]{plots/nodetype_3d_IB/median_3d_graph_UC.pdf}
|
||||
\end{subfigure}
|
||||
|
||||
\begin{subfigure}{\textwidth}
|
||||
\vspace{0.2cm}
|
||||
\centering
|
||||
\includegraphics{plots/nodetype_3d_IB/3d_UC_legend.pdf}
|
||||
\vspace{-0.15cm}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{The influence of the message size and generation rate on $\tilde{t}_{lat}$ between two InfiniBand nodes that communicate over an \acrfull{uc}.}\label{fig:rate_size_3d_UC}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[ht!]
|
||||
\begin{subfigure}{\textwidth}
|
||||
\includegraphics[width=15.2cm, keepaspectratio]{plots/nodetype_3d_IB/median_3d_graph_UD.pdf}
|
||||
\end{subfigure}
|
||||
|
||||
\begin{subfigure}{\textwidth}
|
||||
\vspace{0.2cm}
|
||||
\centering
|
||||
\includegraphics{plots/nodetype_3d_IB/3d_UD_legend.pdf}
|
||||
\vspace{-0.15cm}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{The influence of the message size and generation rate on $\tilde{t}_{lat}$ between two InfiniBand nodes that communicate over \acrfull{ud}.}\label{fig:rate_size_3d_UD}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
|
||||
\section{3D plot shmem node\label{a:shmem_3d}}
|
||||
\begin{figure}[ht!]
|
||||
\vspace{5.5cm}
|
||||
\begin{subfigure}{\textwidth}
|
||||
\includegraphics[width=15.2cm, keepaspectratio]{plots/nodetype_3d_shmem/median_3d_graph_XX.pdf}
|
||||
\end{subfigure}
|
||||
|
||||
\begin{subfigure}{\textwidth}
|
||||
\vspace{0.2cm}
|
||||
\centering
|
||||
\includegraphics{plots/nodetype_3d_shmem/3d_XX_legend.pdf}
|
||||
\vspace{-0.15cm}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{The influence of signal generation rate and the message size on the median latency between two \textit{shmem}.}\label{fig:shmem_3d}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
\section{Missed steps nanomsg and zeromq nodes\label{a:missed_steps_nanomsg_zeromq}}
|
||||
|
||||
\input{tables/missed_steps_nanomsg_zeromq}
|
10
appendices/tuned.tex
Normal file
10
appendices/tuned.tex
Normal file
@@ -0,0 +1,10 @@
|
||||
\chapter{Tuned daemon profile\label{a:tuned_profile}}
|
||||
This appendix shows the \textit{latency-performance} \texttt{tuned} profile that was used during the benchmarks that were run on the \glspl{hca} and VILLASnode.
|
||||
\begin{figure}[ht!]
|
||||
\vspace{0.5cm}
|
||||
\lstinputlisting[caption=The \texttt{tuned} default profile \textit{latency-performance}. Comments are omitted for the sake of brevity.,
|
||||
label=lst:tuned_latency_performance,
|
||||
style=customconfig]{listings/tuned_latency_performance.conf}
|
||||
\vspace{-0.2cm}
|
||||
\end{figure}
|
||||
|
12
appendices/verbs.tex
Normal file
12
appendices/verbs.tex
Normal file
@@ -0,0 +1,12 @@
|
||||
\chapter{OpenFabrics Verbs\label{a:openfabrics}}
|
||||
Experimental functions are not included in this appendix. Furthermore, the \gls{rdma} verbs \gls{api} is omitted because it is not used in the present work. A comprehensive documentation on all verbs can be found in the \gls{rdma} Aware Networks Programming User Manual~\cite{mellanox2015RDMA}.
|
||||
\section{IB verbs API}
|
||||
This section presents the default InfiniBand verbs API.
|
||||
|
||||
\input{scripts/build/ib_verbs}
|
||||
|
||||
\newpage
|
||||
\section{RDMA CM API}
|
||||
This section presents the RDMA communication manager API, as presented in \autoref{sec:rdmacm}.
|
||||
|
||||
\input{scripts/build/rdma_cm_verbs}
|
28
appendices/villas_structs.tex
Normal file
28
appendices/villas_structs.tex
Normal file
@@ -0,0 +1,28 @@
|
||||
\chapter{VILLASnode structs\label{a:villas_structs}}
|
||||
This appendix presents a few structures which help to understand the VILLASnode architecture from \autoref{chap:architecture}. A full overview of all header files can be found on the VILLASnode Git repository\footnote{\url{https://git.rwth-aachen.de/acs/public/villas/VILLASnode}}.
|
||||
|
||||
\section{\texttt{struct sample}\label{a:sec:structsample}}
|
||||
\begin{figure}[ht!]
|
||||
\lstinputlisting[caption=The C structure of a VILLASnode sample.,
|
||||
label=lst:struct_sample,
|
||||
style=customc]{listings/struct_sample.h}
|
||||
\vspace{-0.2cm}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
\section{\texttt{struct node}\label{a:sec:structnode}}
|
||||
\begin{figure}[ht!]
|
||||
\lstinputlisting[caption=The C structure of a VILLASnode node.,
|
||||
label=lst:struct_node,
|
||||
style=customc]{listings/struct_node.h}
|
||||
\vspace{-0.2cm}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
\section{\texttt{struct node\_type}\label{a:sec:structnodetype}}
|
||||
\begin{figure}[ht!]
|
||||
\lstinputlisting[caption=The C structure of a VILLASnode node-type.,
|
||||
label=lst:struct_nodetype,
|
||||
style=customc]{listings/struct_nodetype.h}
|
||||
\vspace{-0.2cm}
|
||||
\end{figure}
|
Reference in New Issue
Block a user