145 lines
3.4 KiB
TeX
145 lines
3.4 KiB
TeX
\subsection{Intel MPI Benchmark (IMB)}
|
|
|
|
Zur Messung der Kommunikationsleistung wurden die MPI-Test Ping-Pong, Barrier, Allreduce und Alltoall mit variierenden Nachrichtengrößen durchgeführt.
|
|
|
|
\subsubsection{Ping-Pong}
|
|
|
|
\pgfplotstableread{
|
|
fs t s
|
|
0 88.99 0.00
|
|
1 109.42 0.01
|
|
2 109.43 0.02
|
|
4 109.62 0.03
|
|
8 109.83 0.07
|
|
16 109.87 0.14
|
|
32 110.12 0.28
|
|
64 143.19 0.43
|
|
128 149.24 0.82
|
|
256 150.41 1.62
|
|
512 155.65 3.14
|
|
1024 160.39 6.09
|
|
2048 164.54 11.87
|
|
4096 217.32 17.97
|
|
8192 308.20 25.35
|
|
16384 434.78 35.94
|
|
32768 573.14 54.52
|
|
65536 1742.36 35.87
|
|
131072 1800.80 69.41
|
|
262144 3070.65 81.42
|
|
524288 5457.60 91.62
|
|
1048576 10350.31 96.62
|
|
2097152 20150.02 99.26
|
|
4194304 38953.70 102.69
|
|
8388608 77368.40 103.40
|
|
16777216 154088.97 103.84
|
|
33554432 319229.01 100.24
|
|
67108864 634328.48 100.89
|
|
134217728 1262632.97 101.38
|
|
268435456 2514089.47 101.83
|
|
536870912 5052755.00 101.33
|
|
}\imbpingpong
|
|
|
|
\begin{tikzpicture}
|
|
\pgfplotsset{
|
|
y axis style/.style={
|
|
yticklabel style=#1,
|
|
y axis line style=#1,
|
|
ylabel style=#1,
|
|
ytick style=#1
|
|
}
|
|
}
|
|
\begin{axis}[
|
|
xmin=1,
|
|
xmax=536870912,
|
|
xmode=log,
|
|
log basis x=2,
|
|
xlabel={Nachrichtengr\"o{\ss}e in MiB},
|
|
ymode=log,
|
|
axis y line*=left,
|
|
ylabel={Zugriffszeit in $\mu$s},
|
|
y axis style=blue!75!black,
|
|
width=15cm, height=10cm
|
|
]
|
|
\addplot[smooth,blue] table[x={fs}, y={t}] {\imbpingpong};
|
|
\end{axis}
|
|
\begin{axis}[
|
|
xmin=1,
|
|
xmax=536870912,
|
|
xmode=log,
|
|
axis x line=none,
|
|
ytick pos=right,
|
|
axis y line* = right,
|
|
ylabel={{\"U}bertragungsgeschwindigkeit in MiB/s},
|
|
ylabel near ticks,
|
|
y axis style=red!75!black,
|
|
width=15cm, height=10cm
|
|
]
|
|
\addplot[smooth,red] table[x={fs}, y={s}] {\imbpingpong};
|
|
\end{axis}
|
|
\end{tikzpicture}
|
|
|
|
\subsubsection{Auswertung}
|
|
|
|
Die Zugriffszeiten für kleine Nachrichtengrößen entsprechen in etwa dem Ping zwischen 2 Nodes. Mit zunehmender Nachrichtengröße steigt die Zugriffszeit exponentiell an. Ab einer Nachrichtengröße von $2^7$ MiB steigt die Übertragungsgeschwindigkeit mit zunehmender Nachrichtengröße solange an, bis sie bei einer Nachrichtengröße von ca. $2^{21}$ MiB auf einem Wert von knapp über $100$ MiB/s stagniert. Dies ist auf eine Sättigung des Netzwerks zurückzuführen. Die Zugriffszeit steigt ebenfalls mit der Anzahl der Prozesse, wie in den folgenden Test ersichtlich wird.
|
|
|
|
\subsubsection{Barrier}
|
|
|
|
Verzögerungszeiten: (jeweils Mittelwert aus 1000 Messläufen)
|
|
\begin{itemize}
|
|
\item 2 Prozesse: 151 $\mu$s
|
|
\item 4 Prozesse: 177 $\mu$s
|
|
\item 8 Prozesse: 670 $\mu$s
|
|
\end{itemize}
|
|
|
|
\pagebreak
|
|
|
|
\subsubsection{All-to-All}
|
|
|
|
\paragraph{2 Prozesse} \mbox{}\\
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics{benchmarks/all-to-all-2.pdf}
|
|
\end{figure}
|
|
|
|
\paragraph{4 Prozesse} \mbox{}\\
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics{benchmarks/all-to-all-4.pdf}
|
|
\end{figure}
|
|
|
|
\pagebreak
|
|
|
|
\paragraph{8 Prozesse} \mbox{}\\
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics{benchmarks/all-to-all-8.pdf}
|
|
\end{figure}
|
|
|
|
\subsubsection{All-Reduce}
|
|
|
|
\paragraph{2 Prozesse} \mbox{}\\
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics{benchmarks/all-reduce-2.pdf}
|
|
\end{figure}
|
|
|
|
\pagebreak
|
|
|
|
\paragraph{4 Prozesse} \mbox{}\\
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics{benchmarks/all-reduce-4.pdf}
|
|
\end{figure}
|
|
|
|
\paragraph{8 Prozesse} \mbox{}\\
|
|
|
|
\begin{figure}[h!]
|
|
\centering
|
|
\includegraphics{benchmarks/all-reduce-8.pdf}
|
|
\end{figure}
|