From 39ef28af054ec4d06f25aa9c94bcfeaaadc27f41 Mon Sep 17 00:00:00 2001 From: hanemile Date: Wed, 7 Mar 2018 21:04:23 +0100 Subject: presentation (posters) --- pres/plakat/docs/abstract.tex | 32 +++++++++++++++++++++++++++++++ pres/plakat/docs/bigo.tex | 16 ++++++++++++++++ pres/plakat/docs/danksagung.tex | 15 +++++++++++++++ pres/plakat/docs/ergebnisse.tex | 7 +++++++ pres/plakat/docs/gan.tex | 7 +++++++ pres/plakat/docs/hauptziele.tex | 17 ++++++++++++++++ pres/plakat/docs/lookup.tex | 33 ++++++++++++++++++++++++++++++++ pres/plakat/docs/methoden.tex | 9 +++++++++ pres/plakat/docs/nutzen.tex | 11 +++++++++++ pres/plakat/docs/random_sampling_nfw.tex | 28 +++++++++++++++++++++++++++ pres/plakat/docs/rechner.tex | 11 +++++++++++ pres/plakat/docs/wirkende_kraefte.tex | 9 +++++++++ pres/plakat/docs/zellen.tex | 14 ++++++++++++++ pres/plakat/docs/zukunft.tex | 12 ++++++++++++ 14 files changed, 221 insertions(+) create mode 100644 pres/plakat/docs/abstract.tex create mode 100644 pres/plakat/docs/bigo.tex create mode 100644 pres/plakat/docs/danksagung.tex create mode 100644 pres/plakat/docs/ergebnisse.tex create mode 100644 pres/plakat/docs/gan.tex create mode 100644 pres/plakat/docs/hauptziele.tex create mode 100644 pres/plakat/docs/lookup.tex create mode 100644 pres/plakat/docs/methoden.tex create mode 100644 pres/plakat/docs/nutzen.tex create mode 100644 pres/plakat/docs/random_sampling_nfw.tex create mode 100644 pres/plakat/docs/rechner.tex create mode 100644 pres/plakat/docs/wirkende_kraefte.tex create mode 100644 pres/plakat/docs/zellen.tex create mode 100644 pres/plakat/docs/zukunft.tex (limited to 'pres/plakat/docs') diff --git a/pres/plakat/docs/abstract.tex b/pres/plakat/docs/abstract.tex new file mode 100644 index 0000000..78e8ee1 --- /dev/null +++ b/pres/plakat/docs/abstract.tex @@ -0,0 +1,32 @@ +\begin{abstract} + + Das Ziel meines Projektes war es, Galaxien drei-dimensional zu + visualisieren. + Dazu verwendete ich das sogenannte ''Navarro-Frenk-White''' Profil als + Dichtefunktion in Kombination mit der Random-Sampling Methode zum Generieren + von Koordinaten. + \par + Die Generierung der Koordinaten hat jedoch ein Problem: Es ist extrem + rechenaufwendig. Um dieses Problem zu lösen, habe ich mehrere Methoden zur + Optimierung angewendet, darunter die Nutzung von Lookup-Tabellen und die + Verwendung von mehreren Computer-Rechenkernen. + \par + Im Verlauf des Projektes habe ich viel Neues dazugelernt, darunter die + Handhabung mit großen Datenmengen und die Organisation eines größeren Projektes, + jedoch auch mit vielen tiefer gehenden Funktionen und Bibliotheken + in der Programmiersprache Python umzugehen. + +\end{abstract} + + +\vspace{0.5cm} +\setlength{\fboxsep}{10pt} +\fbox{ + \parbox{0.95\linewidth}{ + An das Praktikum im Astronomischen Recheninstitut in Heidelberg gelangte + ich, indem ich mein Jugend Forscht Projekt aus dem letztem Jahr (Satellite + Computation), auf der Social-Media Plattform Reddit hochgeladen habe, wonach + mich der Doktorand Tim Tugendhat anschrieb, ob ich Interesse an einem + Praktikum hätte, das ich im Sommer 2017 absolviert habe. + } +} diff --git a/pres/plakat/docs/bigo.tex b/pres/plakat/docs/bigo.tex new file mode 100644 index 0000000..bf02951 --- /dev/null +++ b/pres/plakat/docs/bigo.tex @@ -0,0 +1,16 @@ +\section*{Rechenaufwand (n-Körper Problem)} + +\begin{equation} + O(n) = n^2 \quad \Rightarrow \quad O(n) = n \cdot log(n) +\end{equation} + +Um die Kräfte die zwischen allen Sternen in einer Galaxie wirken zu berechnen +werden \( n^2 \) Rechenschritte benötigt (\( n \) entspricht der Anzahl der) +Sterne. + +\vspace{-0.25cm} +\begin{center} +\includegraphics[width=0.8\linewidth]{figs/bigo_large} +\caption{Orange \( n^2 \), Blau \( n \log(n) \)} +\label{fig:bigo} +\end{center}\vspace{-1.25cm} diff --git a/pres/plakat/docs/danksagung.tex b/pres/plakat/docs/danksagung.tex new file mode 100644 index 0000000..02c7da8 --- /dev/null +++ b/pres/plakat/docs/danksagung.tex @@ -0,0 +1,15 @@ +\section*{Danksagungen} + +Hier möchte ich mich bei \( \dots \) +\begin{itemize} + \item[\( \dots \)] Tim Tugendhat + \item[\( \dots \)] Konstantin Bosbach + \item[\( \dots \)] Jörg Thar + \item[\( \dots \)] Martin Dessauer +\end{itemize} +bedanken, denn ohne sie wäre die Durchführung des Projektes nicht möglich +gewesen. + +% Tim Tugendhat und Konstantin Bosbach bedanken ohne die +% das Praktikum in Heidelberg nicht möglich gewesen wäre, welches mir den einstieg +% in das Thema erst ermöglicht hat. diff --git a/pres/plakat/docs/ergebnisse.tex b/pres/plakat/docs/ergebnisse.tex new file mode 100644 index 0000000..804079e --- /dev/null +++ b/pres/plakat/docs/ergebnisse.tex @@ -0,0 +1,7 @@ +\section*{Ergebnisse} + +\begin{center}\vspace{0.5cm} +\includegraphics[width=0.8\linewidth]{figs/galaxy_flammkuchenblech} +\caption{ Diese generierte Galaxie bestehend aus \( 680.000 \) Sternen} +\label{fig:galaxy_flammkuchenblech} +\end{center}\vspace{-1cm} diff --git a/pres/plakat/docs/gan.tex b/pres/plakat/docs/gan.tex new file mode 100644 index 0000000..b406fbb --- /dev/null +++ b/pres/plakat/docs/gan.tex @@ -0,0 +1,7 @@ +\section*{Generative Adversarial Neural Networks} + +\begin{center}\vspace{0.5cm} +\includegraphics[width=1\linewidth]{figs/galaxy_gan.png} +\caption{Aufbau eines GAN Netzwerkes zum Generieren von Galaxien} +\label{fig:galaxy_gan} +\end{center}\vspace{-1cm} diff --git a/pres/plakat/docs/hauptziele.tex b/pres/plakat/docs/hauptziele.tex new file mode 100644 index 0000000..b37310e --- /dev/null +++ b/pres/plakat/docs/hauptziele.tex @@ -0,0 +1,17 @@ +\section*{Hauptziele} + +\begin{enumerate} +\item Generieren von elliptischen Galaxien mithilfe des Narvarro-Frenk-White-Profils in Verbindung mit der Random-Sampling Methode + +\item Verbesserung des Generierungsprozesses mithilfe verschiedener Methoden +\begin{itemize} + \item Lookup-Tabellen + \item Unterteilung der Galaxie in verschiedene Zellen + \item Effizientere Speichernutzung +\end{itemize} + +\item Generierung von Dunkle-Materie-Halos und Spiralgalaxien + +\item Nutzung von konkurrierenden neuronalen Netzen zum unbeaufsichtigten +Generieren von Galaxien und deren Anpassung an ''echte`` Galaxien. +\end{enumerate} diff --git a/pres/plakat/docs/lookup.tex b/pres/plakat/docs/lookup.tex new file mode 100644 index 0000000..da37fe1 --- /dev/null +++ b/pres/plakat/docs/lookup.tex @@ -0,0 +1,33 @@ +\section*{Lookup Tabellen} + +Um den Rechenaufwand der beim Berechnen eines Wertes aus dem NFW-Profil +entsteht zu mindern, wird die Funktion \( \rho(r)\) im Vorhinein +berechnet und zum Weiterverwenden gespeichert: + +\lstset{ + frame=single, + % numbers=left, + title=2e8.csv \qquad (\( \sim \) 500 MB) +} + +\begin{lstlisting} +0, 1477.1586582000994 +1, 1477.0588424006478 +2, 1476.9590343243835 +3, 1476.8592346184294 +4, 1476.7594429495975 +... +19999995, 0.0028544345590963767 +19999996, 0.0028544345175450904 +19999997, 0.0028544344759938085 +19999998, 0.002854434434442531 +19999999, 0.002854434392891257 +\end{lstlisting} + +Möchte man zu einem Wert \( r \) aus der Funktion die Wahrscheinlichkeit +\( \rho(r) \) erhalten, muss man nur noch aus der Tabelle ablesen. +\par +Hier entsteht jedoch ein Problem: Alle Prozesse müssen aus dieser Tabelle die +Werte auslesen, weshalb sie für jeden Prozess einmal in den Arbeitsspeicher +geladen werden müssen. Dies lässt sich jedoch durch effizientes Parallelisieren +umgehen. diff --git a/pres/plakat/docs/methoden.tex b/pres/plakat/docs/methoden.tex new file mode 100644 index 0000000..de5af64 --- /dev/null +++ b/pres/plakat/docs/methoden.tex @@ -0,0 +1,9 @@ +\section*{Methoden} + +\begin{itemize} + \item Random Sampling des NFW-Profils + \item Generierung von Lookup-Tabellen + \item Code Vectorization + \item Parallelization + \item Kräfteberechnung mithilfe der universellen Gravitationsformel +\end{itemize} diff --git a/pres/plakat/docs/nutzen.tex b/pres/plakat/docs/nutzen.tex new file mode 100644 index 0000000..e050fde --- /dev/null +++ b/pres/plakat/docs/nutzen.tex @@ -0,0 +1,11 @@ +\section*{Nutzen} + +\begin{itemize} + \item Visualisierung zur Verbesserung der Vorstellung von Galaxien + + \item Möglichkeit, sich eine Galaxie aus allen Perspektiven + anzusehen + + \item Modell einer Galaxie, welches genutzt werden kann, um Vorhersagen + für die echte Galaxie zu treffen +\end{itemize} diff --git a/pres/plakat/docs/random_sampling_nfw.tex b/pres/plakat/docs/random_sampling_nfw.tex new file mode 100644 index 0000000..d276540 --- /dev/null +++ b/pres/plakat/docs/random_sampling_nfw.tex @@ -0,0 +1,28 @@ +\section*{Random-Sampling des NFW Profils} + +Beim Random-Sampling wird eine zufällige Koordinate generiert und dessen +Abstand zum Mittelpunkt der Galaxie \( r \) berechnet. +Diesen Wert \( r \) setzt man in das NFW-Profil ein, um eine Wahrscheinlichkeit +\( \phi = \rho(r) \) zu berechnen, mit der der Stern generiert wird. +Es wird ein zufälliger Wert \( s \) im Intervall \( [\rho_{min};~\rho_{max}] \) +generiert. +Gilt \( s < r \), dann werden die Koordinaten des Sterns beibehalten, +ansonsten werden neue Koordinaten generiert und der Prozess wird wiederholt. + +\begin{center}\vspace{-1cm} +\begin{equation} \label{eq:NFW_profile} + \rho_{NFW}(r) = \frac{ 1 }{ \sqrt{ 2 \pi } \cdot \sigma } \cdot + \exp \left( \frac{ -\phi(r) }{ \sigma^{ 2 } } \right) +\end{equation} + +\begin{equation} + \phi(r) = \frac{ 4\pi \cdot G \cdot f_{0} \cdot R_{s}^3 }{ r } \cdot + ln{ \left( 1 + \frac{ r }{ R_{s} } \right) } +\end{equation} +\end{center}%\vspace{0.5cm} +% +\begin{center}\vspace{-0.5cm} +\includegraphics[width=0.8\linewidth]{figs/1e6_6} +\caption{Der entsprechende Funktionsgraph zum NFW-Profil} +\label{fig:lookup_NFW} +\end{center}\vspace{-1cm} diff --git a/pres/plakat/docs/rechner.tex b/pres/plakat/docs/rechner.tex new file mode 100644 index 0000000..993b2a0 --- /dev/null +++ b/pres/plakat/docs/rechner.tex @@ -0,0 +1,11 @@ +\section*{Genutzte Rechner} + +{\setlength{\extrarowheight}{10pt}% +\begin{tabular}{l | l | l | l} + Bezeichnung & Kerne & Threads & Taktrate \\[0.25ex] \hline + Acer Laptop & 2 & 4 & 3.1 GHz \\ + Heidelberg Cluster & 44 & 88 & \( \sim \) 2.5 GHz \\ + Flammkuchenblech & 6 & 24 & 2.5 GHz \\ + +\end{tabular} +} diff --git a/pres/plakat/docs/wirkende_kraefte.tex b/pres/plakat/docs/wirkende_kraefte.tex new file mode 100644 index 0000000..a703696 --- /dev/null +++ b/pres/plakat/docs/wirkende_kraefte.tex @@ -0,0 +1,9 @@ +\section*{Kräfte die auf einen Stern wirken} + +Um die Gesamtkraft die auf einen Stern wirkt zu berechnen, habe ich +das Newton'sche Gravitationsgesetz in der folgenden Form verwendet: + +\begin{equation} + \vec{F_1} = G \cdot m_1 \cdot \sum_{i=2}^n m_i \cdot + \frac{\vec{r_i} - \vec{r_1}}{| \vec{r_i} - \vec{r_1} |^3} +\end{equation}\vspace{-1cm} diff --git a/pres/plakat/docs/zellen.tex b/pres/plakat/docs/zellen.tex new file mode 100644 index 0000000..1bc38b4 --- /dev/null +++ b/pres/plakat/docs/zellen.tex @@ -0,0 +1,14 @@ +\section*{Unterteilung der Galaxie in Zellen} + +Um den Rechenaufwand, der bei der Berechnung der wirkenden Kräfte entsteht, +zu minimieren, wird die Galaxie in verschiedene Zellen unterteilt: + +\begin{center}\vspace{1cm} +\includegraphics[width=0.8\linewidth]{figs/cells_2D} +\label{fig:galaxy_cells} +\end{center} + +\begin{center} +\includegraphics[width=1\linewidth]{figs/cells} +\label{fig:galaxy_cells_3d} +\end{center}\vspace{-3cm} diff --git a/pres/plakat/docs/zukunft.tex b/pres/plakat/docs/zukunft.tex new file mode 100644 index 0000000..f36b0ac --- /dev/null +++ b/pres/plakat/docs/zukunft.tex @@ -0,0 +1,12 @@ +\section*{Zukunft} +\begin{itemize} + \item OpenMP + \item OpenACC statt CUDA oder OpenCL + \item Code Vectorization + \item Shared Memory + \begin{itemize} + \item[\( \rightarrow \)] Distributed Memory + \end{itemize} + \item Hilbert Spiral + \item Nutzung des L1, L2 und L3 caches +\end{itemize} -- cgit 1.4.1