aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-03-01 14:07:02 +0100
committerAdrian Kummerlaender2019-03-01 14:07:02 +0100
commit3765a4aaf62e3621b9e38738f0f91f26cf13c5fa (patch)
tree12a3f10af0b378f6020ddcc566091ca22bf89b19
parent7af1b522e19a20785153320af40078d34122ad74 (diff)
downloadgrid_refinement_bsc_thesis-3765a4aaf62e3621b9e38738f0f91f26cf13c5fa.tar
grid_refinement_bsc_thesis-3765a4aaf62e3621b9e38738f0f91f26cf13c5fa.tar.gz
grid_refinement_bsc_thesis-3765a4aaf62e3621b9e38738f0f91f26cf13c5fa.tar.bz2
grid_refinement_bsc_thesis-3765a4aaf62e3621b9e38738f0f91f26cf13c5fa.tar.xz
grid_refinement_bsc_thesis-3765a4aaf62e3621b9e38738f0f91f26cf13c5fa.zip
Add small parallelization section
-rw-r--r--content.tex30
-rw-r--r--main.tex2
-rw-r--r--quellen.bib29
3 files changed, 57 insertions, 4 deletions
diff --git a/content.tex b/content.tex
index 9fe3fb8..849b31b 100644
--- a/content.tex
+++ b/content.tex
@@ -1074,14 +1074,38 @@ Alternativ ist es möglich über das Festhalten der Anzahl der Freiheitsgrade, d
\newpage
Wir sehen das Geschwindigkeitsbild dieser Bemühungen in Abbildung~\ref{fig:CylinderOptimizedGridComparison}. Die dort dargestellten Gitter beinhalten beide jeweils maximal 13500 Zellen. Der kleine Unterschied in der Knotenanzahl ist dabei der Einschränkung auf quaderförmige Gitter geschuldet, welche eine exakte Fixierung der Knotenanzahl erschwert.
-Klar zu erkennen ist die in der verfeinerten Variante deutlich bessere Diskretisierung des Zylinders durch Konzentration der verfügbaren Gitterknoten in dessen Umfeld. Auch liegt dem Ausfluss des verfeinerten Gitters die Divergenz ferner als dem Ausfluss des uniformen Gitters, an welchem sich schon Artefakte abzeichnen. Eine formalere Analyse der Qualität dieses optimierten Gitters erwartet uns im nachfolgenden Unterkapitel.
+Klar zu erkennen ist die in der verfeinerten Variante deutlich bessere Diskretisierung des Zylinders durch Konzentration der verfügbaren Gitterknoten in dessen Umfeld. Auch liegt dem Ausfluss des verfeinerten Gitters die Divergenz ferner als dem Ausfluss des uniformen Gitters, an welchem sich schon Artefakte abzeichnen. Eine formalere Analyse der Qualität dieses optimierten Gitters erwartet uns in Kapitel~\ref{kap:cylinder2dCoefficients}.
+
+\subsubsection{Parallelisierung}
+
+Bevor wir dazu kommen, wollen wir, aufbauend auf den bezüglich der Knotenanzahl vergleichbaren Gittern in Abbildung~\ref{fig:CylinderOptimizedGridComparison}, einen sehr kurzen Blick auf die Effizienz der parallelen Ausführung von verfeinerten Gittern riskieren. OpenLB implementiert hierzu mit OpenMPI~\cite{OpenMPI} und OpenMP~\cite{OpenMP} zwei gängige Konzepte zur Kommunikation zwischen parallel arbeitenden Prozessen.
+
+\begin{table}[H]
+\centering
+\begin{tabular}{l l l l l l}
+& Nicht parallel & OpenMPI & & OpenMP & \\
+Prozessanzahl & 1 & 2 & 4 & 2 & 4 \\
+\hline
+\hline
+Uniform & \num{36.461}\si{\second} & \num{19.380}\si{\second} & \num{10.774}\si{\second} & \num{23.242}\si{\second} & \num{14.315}\si{\second} \\
+\hline
+Verfeinert & \num{29.896}\si{\second} & \num{54.794}\si{\second} & \num{73.974}\si{\second} & \num{24.251}\si{\second} & \num{18.384}\si{\second} \\
+\hline
+\hline
+\end{tabular}
+\caption{Vergleich der parallelen Ausführung auf einem Shared Memory System}
+\end{table}
+
+Überraschenderweise steht es ohne die Beantwortung der Frage nach Minimierung des Kommunikationsaufwands in der Gitterkopplung noch schlechter um den Einfluss von Gitterverfeinerung auf die Ausführungszeit als erwartet. Da die einzelnen Gitter in der OpenMPI-Variante ohne Rücksicht auf deren Lokalität den vorhandenen Prozessoren zugeordnet werden, müssen die zur Kopplung notwendigen Informationen schlimmstenfalls in jedem Zeitschritt zwischen allen Prozessen kommuniziert werden. Solange das durch Verfeinerungsbeziehungen entstehende Bedürfnis nach Kommunikationsnähe von ansonsten unabhängigen Gitter von der Lastverteilung nicht beachtet wird, ist die OpenMPI-basierende Parallelverarbeitung nicht sinnvoll einsetzbar.
+
+Bessere Ergebnisse können dagegen mit OpenMP und der Einschränkung auf Shared Memory Systeme erzielt werden. Der zusätzliche unoptimierte Kommunikationsaufwand der Gitterverfeinerung dominiert hier nicht mehr die eigentliche Simulationszeit und führt zu sinnvoller Anwendbarkeit auf Systemen mit gemeinsam genutztem Speicher.
\bigskip
-Bevor wir dazu kommen, bemerken wir, dass sich mit dieser flexibleren Verteilung der Knotenfreiheitsgrade hier auch ein, bis jetzt lediglich in der Einführung erwähnter, Vorteil von Gitterverfeinerung illustriert: Selbst wenn ein Verfeinerungsverfahren bezogen auf den Fehler im Vergleich mit analytischen Lösungen keine Verbesserungen oder sogar leichte Einbußen produziert, kann es doch potenziell eingesetzt werden, um Probleme zu behandeln, welche anderweitig nicht oder nur mit deutlich höherem Speicher- und Rechenaufwand zugänglich wären.
+Die Grundproblematik der effizienten Parallelisierung von verfeinerten Gittern tritt auch in den Ausführungen von Lagrava et al.~\cite[Kap.~4.1, letzter Abschnitt]{Lagrava12} insofern in Erscheinung, dass deren Vergleich der benötigten Rechenzeit sich auf einen Prozessor und somit Shared Memory Systemen beschränkt.
\newpage
-\subsubsection{Vergleich von Widerstands- und Auftriebskoeffizienten}
+\subsubsection{Vergleich von Widerstands- und Auftriebskoeffizienten}\label{kap:cylinder2dCoefficients}
Bis hier haben wir die den Einfluss von Gitterverfeinerung auf die Zylinderumströmung entweder subjektiv, durch Vergleich der Strömungsbilder, oder grob, durch einfachen Vergleich der für eine divergenzfreie Simulation benötigten Knotenanzahl, bewertet. Wie eingangs erwähnt, existiert für die vorliegende Strömungssituation keine analytische Lösung, weshalb wir uns für eine formal belastbarere Bewertung auf vertrauenswürdige aber ebenfalls simulierte Referenzwerte stützen wollen.
diff --git a/main.tex b/main.tex
index f456518..3ccecaf 100644
--- a/main.tex
+++ b/main.tex
@@ -132,8 +132,8 @@ Ziel dieser Arbeit ist es, diese Einschränkung aufzuheben und OpenLB um eine fl
\addcontentsline{toc}{section}{Literatur}
\printbibliography
\newpage
-
\blankpage
+
\thispagestyle{empty}
\vspace*{8cm}
\section*{Erkl\"arung}
diff --git a/quellen.bib b/quellen.bib
index 8ebcc61..58e7eba 100644
--- a/quellen.bib
+++ b/quellen.bib
@@ -145,4 +145,33 @@
year = {2010},
publisher = {Kitware},
key = {zzz}
+},
+@InProceedings{OpenMPI,
+ author = {E. Gabriel and Graham E. Fagg and George Bosilca
+and Thara Angskun and Jack J. Dongarra and Jeffrey M. Squyres and Vishal Sahay and Prabhanjan Kambadur
+and Brian Barrett and Andrew Lumsdaine and Ralph H. Castain and David J. Daniel and Richard L. Graham and Timothy S. Woodall },
+ title = {Open {MPI}: Goals, Concept, and Design of a Next Generation {MPI} Implementation},
+ booktitle = {Proceedings, 11th European PVM/MPI Users' Group Meeting},
+ year = 2004,
+ address = {Budapest, Hungary},
+ pages = {97--104},
+ month = {September}
+},
+@article{OpenMP,
+ author = {Dagum, L. and Menon, R.},
+ title = {OpenMP: An Industry-Standard API for Shared-Memory Programming},
+ journal = {IEEE Comput. Sci. Eng.},
+ issue_date = {January 1998},
+ volume = {5},
+ number = {1},
+ month = jan,
+ year = {1998},
+ issn = {1070-9924},
+ pages = {46--55},
+ numpages = {10},
+ doi = {10.1109/99.660313},
+ acmid = {615542},
+ publisher = {IEEE Computer Society Press},
+ address = {Los Alamitos, CA, USA},
}
+