From d7cfc9301f4d0f88e0c486ae329efab56061faa6 Mon Sep 17 00:00:00 2001 From: Eugen Betke Date: Wed, 19 Dec 2018 19:20:12 +0100 Subject: [PATCH] Start paper writing --- benchmark/eval_analysis_v2.R | 20 +++---- benchmark/results.db | Bin 311296 -> 262144 bytes paper/paper.tex | 105 ++++++++++++++++++++++++++++++++++- 3 files changed, 114 insertions(+), 11 deletions(-) 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 b66bf39eef8c503bf92cf3191704e09ea335308f..decfd91ea100efb7238c81b98c5b032d79d6cf09 100644 GIT binary patch delta 46399 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

#kkCmU-AD>F2&Dai zg~Gb7L#6vV2uJ6436hcM85E1dS-jo{?3yR_Yj9( zh35<`RCU$OVRi-|*7XrEnuY=9>*sI{WXXyvtQp5hbsmQV$=Mc^uSa|?9VN6?;6rFvDt{D3Gne+ezgSSCZ6^vi-X%?2>M5&>>2ngqpH*X35+D(qz686 z059p4Xdsn#8lq4sZUdF0L?)CcdI<@l34%>*EnJdgyiVA*8s31qj`8;Wwklh)^=Zpn z5WNPPHX6T#hh>aX1}|0zw!}b@GDWca6u8AD3xAClq)GEgM>wQR@`SjctK0uhtl(md{J^3j+hP)sJ0gHn7G8Y2e2O&q>5e-*+~=lD8=%T zxGTn05R@mA(@l(ghzO~&B7Gk$<^@Tlo4jT$NQC69yLL2Zv0lAS!8OH?AG2ft=0xVK%LZUP0Yprk23 z#0xTH4=yz2U_t%FjtQu2Q8T`g7o>}UNeoTkB`AM0fgj}sJq2sZqqHYKh6owKTZtM;oMyg%B4+kF-^Mem6(T4?3C?d}#Ova?<=E>O zYP1;#nU|Y8!G&|iJ`+x%OEwP}+E3OkrnM$F*ws!L=nhG)WI()HsD%pw)+DOJVIMA6 zx!TFdPpt?odh_!++tzf zF(QA|r%SjQC-xTxy&EX3r(1EwAUsRZc2R8vK!brQ51}A|9Yev(;&n)!Qy`~NiR5Ow9Zav{@dFG8LaFHuf~JZ?MWVe{)9J9MWh`rG!2ilG}(| z`{fw?ocX>S0&0_tnDcv*qhpv-JP>>_wlWwo{GFtYb&_9X|AASN+^J)r!5S3LhKYIN zQH~b7sv#Q{7!smxM~XxJcorKWU@gcLp1l~mzJ;@UBKl#Noc-($yop@cp@EEOk+%d6 zwIPqyoi_rF4VD?$jQ$=DlC5Re#7Jci2Z}DV;K-q%HO^qf_oovWtoHPr7Y5f%*g*^m z73sU4v+MvVK>8simt_UoYAtH)L(j_^!n9wx05O3XvQ-cj*mzg)^?tHZWWahz%rQMc zc94O=_*(XrHn|~W<5>@e)c`i06L!^>W8Gr;!IEg6Z#rXg7>BBRmEW+{7P2>(1sYCG3k2+)^jEHWtm`-i{aZf)QdzJDR@Xfu3Rh zhKU*-_^Z5NXrMilNbG<<=T)M=Iw9wdP!TrQk$2+-Luhu7_-%Pmy3!FI`5nR|=OWxs zwGFWDuv~*JZ;I)lu?pdSbCr|)KEi7rDP3MBc09+=aj!w-uHvV8!BR2iS1^%xpM`+p zUQIk^iHN;Xo%3)t7fRcL#Uf$?Ni&PYCljcz&xp~7QDoOdVgU<9+z})$PX@%!oWwEm zr-gGe@x%qdz-2ag{&CYto4){1iY}`)dkMHxs2hV1P33(+Hgo-x{ZCuPNe;2KykHK^_(5aA>;QHAAD5R-dS&sj zFpy^XSASZ}r>bdL_jak|Agd*5v@E`ncx3?Z;VhVi3jL>Ln7Gv+61Kl4U2PEK2J)V~ zAdeO>np|dP@zFr)&rG6|2ywTqVuPLUwKRySHyJ@1_*mjP$v^`}}%_q#$%y9_)`P{m~+TL>Avc-~R zIAHjfea{5zt(uhM%2Xv9R>EgZ?Tt72M?7C=u{DCqgJuUcgqAnhXi?8NKX*RsZ0Gpd zvB}Zf{x5F{(SY@bO8BS^g>Tt35OP2-ua!b2iJ5u}i=M$U&x{6%%>0P!50LcrPGM6+06T&mZ2bme~2+(;;Y>5n0i^y z90`;81N_)LTlNg;coTaH!og&W3ym#A{dw~cMM^BS2DR5jkGWGqWGf&$2Ni%L82l2d zH@GMw-6$h@J_sHa^x>er>W((!IL4ZZFeM(JQ-dlPwB}Yh!egx7#*CvXmvK&3mN6oK zKlUFOR3H;kl^lKmonWvcID_#nq8&+Y%YQ7BqAE#MhrrauiO8Dj6{S}EWV=w?tVTOf7H!xXjW z)$L_N>>F)g*=k#dSxU^`nCqIR8;={A+EsauUqVRn1d&{>c$FkC!n%5c4LC~xFT;!Y zdhQJuRYm+T_lAklg?MxE6yEf@uORa56(}m@e};;XV%`^%8T&UF`|M)AlY498fE&uX z&!B9h<~Yw;z8^9$9mf#MG{B*^hWJneJNJf&oVy_MgJ)52-+Ercy}^*~p)z=b0v*|G zZ0B_XoDO|~E^Os{xz`~~+kpID2;1BEdG57|ZɚzYfajKCD(BIA5iodqQy5zMI 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 Gruu(<9j2E6 delta 72803 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\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}