% !TeX spellcheck = de_DE
\subsection{Beispielanwendungen}
\begin{itemize}
	\item numerisch: Abbildung partieller Differentialgleichungen\begin{itemize}
		\item parallele Simulation disjunkter Abschnitte
		\item Verteilung disjunkter Zeit- und Werteintervalle durch einen Master-Knoten
		\item Kommunikation von Grenzwerten für benachbarte Bereiche wichtig
	\end{itemize}
	\item Klimamodellierung für Ozeane: Partitionierung von Gittern\begin{itemize}
		\item verschiedene Skalen notwendig
		\item Partionierung des Problemfelds von großer Bedeutung, um Kommunikation möglichst gering zu halten
		\item reguläre, statische Partionierung (etwa durch Modulo-Operation mit Knotenzahl) sorgt für ungleiche Last-Verteilung (z.B. Landmassen)
		\item irreguläre Partitionierung: \begin{itemize}
			\item Entfernung ungenutzter Prozessoren und Ermittlung des nächstliegenden aktiven Prozessors
			\item für jeden Prozessor die Anzahl der \enquote{vorherigen}, inaktiven Prozessoren bestimmen
			\item aktive Nachbarn bestimmen, indem von Koordinate die inaktiven Prozessoren abgezogen werden (Verschiebung?)
		\end{itemize}
	\end{itemize}
	\item Parameterstudien / Ensemble-Simulationen: Entwurf und Simulation von Mikrosystemen\begin{itemize}
		\item jeder einzelne Parametersatz kann unabhängig simuliert werden
		\item Master-Programm wertet Ergebnisse aus und erzeugt Jobs mit neuen Parametersätzen
		\item Job- und Ressourcen-Verwaltungssystem muss auf Durchsatz optimiert sein, dafür möglichst immer alle verfügbaren Ressourcen verwenden (\begriff{opportunistisch})
		\item zusätzlich Fehler- und Ausfallbehandlung wichtig
		\item Beispiel: \textsc{Condor}:\begin{itemize}
			\item \enquote{ClassAd}-Matchmaking ordnet Anforderungen zu gegebenen Ressourcen zu: \begin{itemize}
				\item Knoten publizieren klassifizierte Anzeigen ihrer Rechenleistung und Hardware-Ausstattung
			\end{itemize}
			\item Checkpoints sichern Prozesszustand periodisch und können bei Fehlern auf anderen Knoten wiederhergestellt werden (\begriff{Migration}):\begin{itemize}
				\item Realisierung durch Linken mit Condor-Bibliothek, aber keine Unterstützung für OS-State (Threads, \texttt{fork()}, Shared Memory, IPC, \textellipsis)
				\item Checkpoints können periodisch, bei Auslagerung und explizit aus dem Programm erstellt werden
			\end{itemize}
			\item verschiedene \begriff{Universen} (Laufzeitumgebungen) mit unterschiedlichen Fähigkeiten
			\item Fern-Systemaufrufe leiten Ein- und Ausgabe an den den Job startenden Knoten zurück
			\item Zusammensetzung aus mehreren Dämonen:\begin{itemize}
				\item \texttt{master}: Überwachung und Kommunikation
				\item \texttt{startd}: Ein- und Auslasten von Jobs (auch abhängig vom Eigentümer der Maschine)
				\item \texttt{schedd}: Verwaltung der Job-Queue und Kommunikation mit verfügbaren Maschinen
				\item \texttt{collector}: Sammlung von Statusinformationen und Beantwortung von Informationsanfragen
				\item \texttt{negotiator}: Match-Making von Ressourcen und Jobs
			\end{itemize}
		\end{itemize}
	\end{itemize}
\end{itemize}