% !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}