about summary refs log tree commit diff
path: root/pres/plakat/docs
diff options
context:
space:
mode:
Diffstat (limited to 'pres/plakat/docs')
-rw-r--r--pres/plakat/docs/abstract.tex32
-rw-r--r--pres/plakat/docs/bigo.tex16
-rw-r--r--pres/plakat/docs/danksagung.tex15
-rw-r--r--pres/plakat/docs/ergebnisse.tex7
-rw-r--r--pres/plakat/docs/gan.tex7
-rw-r--r--pres/plakat/docs/hauptziele.tex17
-rw-r--r--pres/plakat/docs/lookup.tex33
-rw-r--r--pres/plakat/docs/methoden.tex9
-rw-r--r--pres/plakat/docs/nutzen.tex11
-rw-r--r--pres/plakat/docs/random_sampling_nfw.tex28
-rw-r--r--pres/plakat/docs/rechner.tex11
-rw-r--r--pres/plakat/docs/wirkende_kraefte.tex9
-rw-r--r--pres/plakat/docs/zellen.tex14
-rw-r--r--pres/plakat/docs/zukunft.tex12
14 files changed, 221 insertions, 0 deletions
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}