Commit 0e6ccdcd authored by Taddeüs Kroes's avatar Taddeüs Kroes

ModSim ass4 taddeus: Finished report.

parent be77083a
...@@ -26,7 +26,7 @@ for i in range(len(lines))[::3]: ...@@ -26,7 +26,7 @@ for i in range(len(lines))[::3]:
# Plot and optionally save data # Plot and optionally save data
plot(x, seq, 'o-', label='Sequentieel') plot(x, seq, 'o-', label='Sequentieel')
plot(x, par, 'o-', label='Parallel (9 nodes)') plot(x, par, 'o-', label='Parallel (9 processen)')
ylim(ymin=0) ylim(ymin=0)
legend() legend()
xlabel('Aantal afstandsstappen') xlabel('Aantal afstandsstappen')
......
...@@ -254,9 +254,15 @@ shell- en python-scripts aanwezig: ...@@ -254,9 +254,15 @@ shell- en python-scripts aanwezig:
parameters voor \emph{par.sh}. parameters voor \emph{par.sh}.
\item \emph{benchmark.sh} \\ \item \emph{benchmark.sh} \\
Voert een aantal tijdmetingen uit voor een verschillend aantal nodes Voert een aantal tijdmetingen uit voor een verschillend aantal nodes
meegegeven voor parallelle programma. De eerste twee parameters bepalen meegegeven voor parallelle programma. De parameter geeft het aantal
de aantallen nodes voor de benchmark. De laatste parameter geeft het gewenste afstandsstappen (gelijk aan $\frac{1}{\texttt{DX}}$).
aantal gewenste afstansstappen (gelijk aan $\frac{1}{\texttt{DX}}$). \item \emph{compare.sh} \\
Vergelijkt de runtime van het sequentiële en parallelle programma voor
een vast aantal parallelle nodes, maar een variabel aantal
afstandsstappen.
Voert een aantal tijdmetingen uit voor een vast aantal parallel nodes
meegegeven voor parallelle programma. De parameter geeft het aantal te
starten parallelle processen.
\item \emph{combine.py} \\ \item \emph{combine.py} \\
Combineert de uitvoer van de verschillende parallelle processen tot een Combineert de uitvoer van de verschillende parallelle processen tot een
enkele reeks (zoals de uitvoer van het sequentiële programma zou zijn). enkele reeks (zoals de uitvoer van het sequentiële programma zou zijn).
...@@ -273,6 +279,11 @@ shell- en python-scripts aanwezig: ...@@ -273,6 +279,11 @@ shell- en python-scripts aanwezig:
serie grafieken (met name voor gebruik in het verslag). Als optionele serie grafieken (met name voor gebruik in het verslag). Als optionele
parameter kan een bestand worden opgegeven om de grafieken in op te parameter kan een bestand worden opgegeven om de grafieken in op te
slaan. slaan.
\item \emph{plot\_benchmark.py} en \emph{plot\_compare.py} \\
Produceren grafieken van de uitvoer van \emph{benchmark.sh} en
\emph{compare.sh} (met name voor gebruik in het verslag). Als optionele
parameter kan een bestand worden opgegeven om de grafieken in op te
slaan.
\end{itemize} \end{itemize}
\subsection{Gebruik} \subsection{Gebruik}
...@@ -299,6 +310,9 @@ $ ... ...@@ -299,6 +310,9 @@ $ ...
# Benchmark voor 2, 4, 6 en 8 nodes met 1000 afstandsstappen (DX = .01) # Benchmark voor 2, 4, 6 en 8 nodes met 1000 afstandsstappen (DX = .01)
$ ./benchmark.sh 8 2 1000 $ ./benchmark.sh 8 2 1000
# Vergelijking voor sequentiëel vs. 4 nodes parallel
$ ./compare.sh 4
\end{verbatim} \end{verbatim}
Indien een verkeerd aantal parameters wordt meegegeven zal elk programma en Indien een verkeerd aantal parameters wordt meegegeven zal elk programma en
...@@ -397,7 +411,7 @@ is gedaan bij 9 processen, de speedup bij dit aantal is $\frac{9.67}{2.57} = ...@@ -397,7 +411,7 @@ is gedaan bij 9 processen, de speedup bij dit aantal is $\frac{9.67}{2.57} =
\begin{figure}[H] \begin{figure}[H]
\label{fig:benchmark} \label{fig:benchmark}
\includegraphics[width=13cm]{benchmark.pdf} \includegraphics[width=12.1cm]{benchmark.pdf}
\caption{Runtime met parameters \texttt{sinus 10000 1 .00002 1 2}. De \caption{Runtime met parameters \texttt{sinus 10000 1 .00002 1 2}. De
blauwe punten zijn de metingen van het parallelle programma, de blauwe punten zijn de metingen van het parallelle programma, de
groene lijn is een Least Squares datafit van die metingen. Het groene lijn is een Least Squares datafit van die metingen. Het
...@@ -412,8 +426,25 @@ afstandsstappen het parallelle programma langzamer zal zijn dan het ...@@ -412,8 +426,25 @@ afstandsstappen het parallelle programma langzamer zal zijn dan het
sequentiële programma, door overhead van de communicatie. Omdat het parallelle sequentiële programma, door overhead van de communicatie. Omdat het parallelle
programma bij de benchmark het snelst is met 9 processen, zullen we vergelijken programma bij de benchmark het snelst is met 9 processen, zullen we vergelijken
wanneer het sequentiële programma voordeel heeft t.o.v. 9 parallelle processen. wanneer het sequentiële programma voordeel heeft t.o.v. 9 parallelle processen.
Voor dit experiment wordt het script \emph{compare.sh} gebruikt, de resultaten
hiervan staan in figuur \ref{fig:compare}.
We zien dat tot ongeveer 8500 afstandsstappen het sequentiële programma sneller
is dan het parallelle programma, daarna wordt het parallelle programma sneller.
De groene pieken rechts kunnen worden afgedaan als uitschieters, deze kwamen in
een andere uitvoer van hetzelfde programma niet naar boven. Deze zijn ook
minder interessant dan de kruising van de blauwe en groene lijn.
%TODO: add graph Merk op dat deze meting alleen met 9 processen is gedaan, met minder processen
is het omslagpunt wellicht al bij minder afstandsstappen (een 3D grafiek zou
hier wellicht een beter licht op werpen).
\begin{figure}[H]
\label{fig:compare}
\includegraphics[width=13cm]{compare.pdf}
\caption{Runtime van sequentiëel (blauw) vs. parallel (groen) met
parameters \texttt{sinus 10000 1} \emph{dx} \texttt{1 2}.}
\end{figure}
\pagebreak \pagebreak
\appendix \appendix
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment