next up previous contents
Next:
Versenden der Daten Up: Implementierung von PORTAL in Previous: Implementierung von PORTAL in

Erstellen der darzustellenden Daten

Das Versenden der Daten mit PORTAL geschieht bei der Implementierung von FLOW von einem Prozessor aus. Dieser schickt folgende Daten an das Visualisierungsprogramm:

Der Teil der Daten, der sich während jedes Rechenschrittes ändert, muß vor jeder Darstellung auf dem Prozessor vollständig vorliegen, der die Daten an AVS weitergibt. Diese Daten sind die Wasserhöhen der Berechnung, die in der Darstellung die z-Koordinaten ergeben sowie die Geschwindigkeiten in den Knoten und die Verteilung der Elemente auf die Prozessoren.
Die z-Koordinate wird vor der Darstellung mit dem Unterprogramm f_hyper_cube aktualisiert. Dieses Unterprogramm tauscht die Daten im  Hypercube aus und addiert die Werte der Knoten. Dieser Austausch ist durch die Aufteilung der Elemente auf die Prozessoren notwendig, da jeder Prozessor nur Wasserhöhen kennt, die zu Knoten gehören, deren Elemente er berechnet.
Für die Darstellung der Geschwindigkeit ist kein zusätzlicher Austausch notwendig. Die Geschwindigkeiten in den Knoten liegen nach jedem Rechenschritt getrennt nach den Koordinatenrichtungen für jeden Knoten vor. Zur Visualisierung der Geschwindigkeit muß nur die Resultierende aus den Komponenten gebildet werden.
Zur Darstellung der Verteilung der Elemente auf die Prozessoren ist ebenfalls kein Austausch notwendig. Auf jedem Prozessor liegt die Information vor, welche CPU welches Element berechnet.
Bei der Visualisierung werden die Extremalwerte der Koordinaten und der darzustellenden Ergebnisdaten benötigt. Die x- und y-Koordinaten ändern sich während des Programmablaufes nicht. Sie können daher zu Beginn der Berechnung einmal ermittelt werden. Die Ermittlung erfolgt auf dem Prozessor, der die Daten an PORTAL weitergibt.
Die Ermittlung der Minima und Maxima muß für die z-Koordinate sowie für die Geschwindigkeit vor jeder Darstellung durchgeführt werden, da auch diese sich ändern können. Hierfür läuft auf jedem Prozessor eine Schleife über seine Elemente, in der er die Extremwerte für die Knoten seiner Elemente bestimmt. Die Extremwerte müssen dann noch ausgetauscht werden. Hierfür wird wiederum das Unterprogramm f_hyper_cube verwendet. Es bietet die Möglichkeit, nicht nur Werte von jedem Prozessor während des Austausches aufzuaddieren, es kann auch den maximalen oder minimalen Wert des auszutauschenden Wertes als Resultat des Austausches liefern.


next up previous contents
Next:
Versenden der Daten Up: Implementierung von PORTAL in Previous: Implementierung von PORTAL in

Michael Burghardt