diff --git a/benchmark/eval_analysis_v2.R b/benchmark/eval_analysis_v2.R index 19d869629..71a0c670e 100755 --- a/benchmark/eval_analysis_v2.R +++ b/benchmark/eval_analysis_v2.R @@ -58,14 +58,14 @@ dbdata$lab_count <- sprintf('Iteration %d', dbdata$count) max_y=3500 for (lab_fs in unique(dbdata$lab_fs)) { -#for (scale in c("linear", "logarithmic")) { -for (scale in c("linear")) { +for (scale in c("linear", "logarithmic")) { +#for (scale in c("linear")) { p = ggplot(data=dbdata[dbdata$lab_fs==lab_fs,], aes(x=nn, y=bwMiB, colour=as.factor(blocksize/1024), group=blocksize), ymin=0) + #aes(x=nn, y=bwMiB) + ggtitle(sprintf("%s independent random access to a shared file with IOR", lab_fs)) + - facet_grid(ppn ~ lab_access + lab_count, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) + - #facet_grid(ppn ~ lab_access, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) + + #facet_grid(ppn ~ lab_access + lab_count, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) + + facet_grid(ppn ~ lab_access, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) + xlab("Nodes") + ylab("Performance in MiB/s") + theme(axis.text.x=element_text(angle=90, hjust=0.95, vjust=0.5)) + @@ -87,8 +87,8 @@ for (scale in c("linear")) { filename_eps = sprintf("%s/%s_%s_performance.eps", folder_out, to_fn_str(lab_fs), scale) filename_png = sprintf("%s/%s_%s_performance.png", folder_out, to_fn_str(lab_fs), scale) - ggsave(filename_png, width = 16, height = 8) - ggsave(filename_eps, width = 16, height = 8) + ggsave(filename_png, width = 8, height = 8) + ggsave(filename_eps, width = 8, height = 8) #system(sprintf("epstopdf %s", filename_eps)) system(sprintf("rm %s", filename_eps)) @@ -96,8 +96,8 @@ for (scale in c("linear")) { aes(x=nn, y=(PortXmitData + PortRcvData) * 4 / ppn, colour=as.factor(blocksize/1024), group=blocksize) + #aes(x=nn, y=bwMiB) + ggtitle(sprintf('%s Infiniband throughput (PortRcvData and PortXmitData by "perfquery -x")', lab_fs)) + - facet_grid(ppn ~ lab_access + lab_count, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) + - #facet_grid(ppn ~ lab_access, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) + + #facet_grid(ppn ~ lab_access + lab_count, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) + + facet_grid(ppn ~ lab_access, labeller = labeller(nn = as_labeller(nn_lab), ppn = as_labeller(ppn_lab))) + xlab("Nodes") + ylab("Performance in MiB/s") + theme(axis.text.x=element_text(angle=90, hjust=0.95, vjust=0.5)) + @@ -116,8 +116,8 @@ for (scale in c("linear")) { filename_eps = sprintf("%s/%s_%s_ib.eps", folder_out, to_fn_str(lab_fs), scale) filename_png = sprintf("%s/%s_%s_ib.png", folder_out, to_fn_str(lab_fs), scale) - ggsave(filename_png, width = 16, height = 8) - ggsave(filename_eps, width = 16, height = 8) + ggsave(filename_png, width = 8, height = 8) + ggsave(filename_eps, width = 8, height = 8) #system(sprintf("epstopdf %s", filename_eps)) system(sprintf("rm %s", filename_eps)) diff --git a/benchmark/results.db b/benchmark/results.db index b66bf39ee..decfd91ea 100644 Binary files a/benchmark/results.db and b/benchmark/results.db differ diff --git a/paper/paper.tex b/paper/paper.tex index c7f47f371..e40231089 100644 --- a/paper/paper.tex +++ b/paper/paper.tex @@ -38,7 +38,7 @@ \usepackage{float} \graphicspath{ {./fig/} - {../benchmark/eval_analysis_output/} + {../benchmark/eval_analysis_output_v2/} } %\newcolumntype{P}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1\textwidth}} @@ -63,7 +63,56 @@ University of Reading, Reading, United Kingdom,\\ \keywords{Lustre, FUSE, evaluation, flash-based storage} +\section{DDN-IME} +The IOR stonewalling option (-d 60) was used together with the wear out option (-o StonewallingWearOut=1). +In this way we make sure, that each node writes the same amount of data, even if the stonewalling deadline is achieved. + +For read access a 12TB test file was pre-created and used for all experiments. +Since IME has the ability to migrate data from back-end file system to IMEs and vice versa, we made sure that this file was always locate on IMEs. +For write access we used a separate test file, which was always deleted after each test run. + + +\begin{table} + \centering + \begin{tabular}{l|l} + Parameter & Values \\ + \hline + Number of nodes & 1, 2, 4, 8, 16 \\ + Processes per node & 1, 4, 8, 16 \\ + Access & read, write \\ + Block sizes & 16KiB, 100KiB, 1MiB, 10MiB \\ + Iterations & 3 \\ + \end{tabular} + \caption{Explored parameteres} + \label{tab:params:ime} +\end{table} + +During the parameter exploration 540 experimentes were conducted. +The explored parameters are showed in \Cref{tab:params:ime}. +The resulting peformance is showed in \Cref{fig:perf:linear:ime}. + + +\begin{figure} + \begin{subfigure}{.5\textwidth} + \centering + \includegraphics[width=0.9\textwidth]{ime_linear_performance.png} + \caption{Linear scale} + \label{fig:perf:linear:ime} + \end{subfigure} + \begin{subfigure}{.5\textwidth} + \centering + \includegraphics[width=0.9\textwidth]{ime_logarithmic_performance.png} + \caption{Logarithmic scale} + \label{fig:perf:log:ime} + \end{subfigure} + \caption{Native IME random performance to a shared file measured with IOR} +\end{figure} + +\textbf{Reproducible performance} + +\textbf{Good scaling behaviour for large blocks} +\textbf{Limited scaling behavour for small block sizes} \section{IBM Spectrum Scale} % https://support.dvsus.com/hc/en-us/articles/212928566-GPFS-general-commands- @@ -74,6 +123,60 @@ University of Reading, Reading, United Kingdom,\\ A GPFS 4.2.3.0 file system was used as back-end for IMEs. The pagepool was 6GB large. +\begin{table} + \centering + \begin{tabular}{l|l} + Parameter & Values \\ + \hline + Number of nodes & 1, 2, 4, 8, 16 \\ + Processes per node & 1, 4, 8 \\ + Access & read, write \\ + Block sizes & 16KiB, 100KiB, 1MiB, 10MiB \\ + Iterations & 3 \\ + \end{tabular} + \caption{Explored parameteres} + \label{tab:params:gpfs} +\end{table} + +During the parameter exploration 540 experimentes were conducted. +The explored parameters are showed in \Cref{tab:params:ime}. +The resulting peformance is showed in \Cref{fig:perf:linear:ime}. + + +\begin{figure} + \begin{subfigure}{.5\textwidth} + \centering + \includegraphics[width=0.8\textwidth]{ibm_spectrum_scale_linear_performance.png} + \caption{Linear scale} + \label{fig:perf:linear:gpfs} + \end{subfigure} + \begin{subfigure}{.5\textwidth} + \centering + \includegraphics[width=0.8\textwidth]{ibm_spectrum_scale_logarithmic_performance.png} + \caption{Logarithmic scale} + \label{fig:perf:log:gpfs} + \end{subfigure} + \caption{Native IME random performance to a shared file measured with IOR} + \label{fig:perf:gpfs} +\end{figure} + +\begin{figure} + \begin{subfigure}{.5\textwidth} + \centering + \includegraphics[width=0.8\textwidth]{ibm_spectrum_scale_linear_ib.png} + \caption{Linear scale} + \label{fig:ib:linear:gpfs} + \end{subfigure} + \begin{subfigure}{.5\textwidth} + \centering + \includegraphics[width=0.8\textwidth]{ibm_spectrum_scale_logarithmic_ib.png} + \caption{Logarithmic scale} + \label{fig:ib:log:gpfs} + \end{subfigure} + \caption{Native IME random performance to a shared file measured with IOR} + \label{fig:ib:gpfs} +\end{figure} + \subsection{Benchmarks}