IPVR –FRTI

MIMD-Modell des Netzobjektes mit konzentrierten Parametern



1.Einleitung. (Arbeitsbericht!)


Die Netzobjekte sind in verschiedenen technischen Gebieten als Objekt-klasse der Untersuchung, Projektierung, Überwachung und Steuerung verbreitet. Die reale Netze haben die groe Anzahl der Elemente, starke Zusammenwirkung der gesteuerten Variablen, die Nichtlinearität und Verteilung von Parametern. Wir werden die aerodynamischen Netze, die für die Lösung der Sicherheitsprobleme in Gruben wichtige Rolle spielen, betrachten.

Die Kompliziertheit der aerodynamischen Netze und ihrer Prozeleit-systeme (PLS) als Simulationsobjekte, umfangreiche Problemstellungen bei der Untersuchungen und rechnergestützte Projektierung solcher Systeme bestimmen die folgenden Anforderungen an die mathematischen Modelle.

Die Modelle sollen die Prozesse in Netzen mit realen Kompliziertheit wiederspiegeln. Die groe Dimension der Netze (Zweigenmenge

m 200, Knotenmengen n 50) bringen gewisse Schwierigkeiten und mögliche Fehler bei der Anschreibung der Differentialgleichungen mit. Deshalb ist die rechnergestützte Erstellung der Simulationsmodelle nach der minimalen Information über Struktur und Parameter des Objektes vorzusehen. Die Netzmodelle sollen die Echtzeitaufgaben zur Kopplung mit der realen Prozeleitsystemskomponenten lösen und sich mit den Systemen für rechnergestützte Projektierung von PLS integrieren, alle Etappe der PLS-Entwicklung (von Simulation der Algorythmen und Strukture bis zur Schulung von Bedienpersonal) unterstützen.

Entwicklung der Simulationsverfahren und der Modellrealisierung wird immer mit der Berücksichtigung dieser Anforderungen durchgeführt [1]. Untersuchen wir die Möglichkeiten der parallelen Simulation der genannten Netzobjekte mit Hilfe von parallelen MIMD-Rechner und parallele Programmierumgebung MPI (Message Passing Interface) [2].



2. Netzobjekt als ein dynamisches System mit

konzentrierten Parametern.


Für die verschiedene Forschungs- und Projektaufgaben geben die Modelle mit konzentrierten Parametern die erforderliche Genauigkeit [1]. Ein Netzobjekt (das Schema der Luftstromverteilung) lät sich als Graph G(U,Q) mit n =/U/ Knoten und m=/Q/ Zweigen betrachten und mit der folgenden Tabelle kodieren


AKJ, EKK, QI, (1)


wo QI als Nummer der Luftstromzweige, AKJ und EKK entsprechend die Nummer von Anfangs- und Endknoten der QI-Zweige sind. Dabei J, K (1,2, ... ,n), I (1,2, ... , m). Aus Tabelle (1) werden Inzydenzmatrix


A = FA(AKJ, EKK, QI) (2)


und Schleifematrix


S = FS(AKJ, EKK, QI) (3)


mit Hilfe von Algorithmen FA, FS generiert.

Die durch QI bezeichnete Zweige des Graphen G(U,Q) werden mit folgender Differentialgleichung beschrieben [1]


(4)


Hier sind:

, - Luftdichte;

Li, Fi - die Lange und die Querschnittsfläche der Zweige;

Ri - aerodynamischer Widerstand;

Qi - Luftstrom;

Hi = PAKJ - PEKK - die Druckdifferenz.


Wir führen ein Vektor der Luftströme


, (5)


diagonale Matrizen der Parameter


, (6)


ein Vektor der Druckdifferenzen der Ventilatoren


(7)

ein.

Dabei sind X,Y die Untervektoren der Luftströme entsprechend in den Baumzweigen und in den Antibaumzweigen.

Matrixdifferentialgleichungen für ein Netz sehen so aus


AQ = 0 (8)


(9)

Hier ist Z ein Vektor mit den Elementen Zi = Qi/Qi/, d.h.

Netzobjekt als ein dynamisches System mit konzentrierten Parametern hat also in seiner formalen Beschreibung einen topologischen Teil (1), (2), (3) und ein System der Algebragleichungen (8) und der Differentialgleichungen (9). Lösung der Gleichungen (8), (9) wird für folgenden praktischen Aufgaben benutzt:


- Die Suche der Luftströmverteilung bei bekannten Topologie, Parametern K, R und die Charakteristika der Ventilatoren .

- Die Suche der optimalen Bewetterungsvorgänge bei vorgegebenen Sollwertenvektor und minimierten Energiebedarf

.

- Verschiedene Projektlösungen mit den Änderungen von Topologie, Parametern und Ventilatoren.

- Synthese und Analyse der Algorithmen, Strukturen der Prozeleitsysteme für den Netzobjekte. Dabei wird Vektor QSOLL aus Sicherheitsbedingungen definiert. Als regelbare Parameter werden und betrachtet.


3. Struktur des MIMD- parallelen Modells.


Mit Orientierung nach MIMD-Rechner und parallele Programmierumgebung MPI soll entwickeltes paralleles Model die folgende Strukturteile beinhalten:


  1. topologischer Teil mit den Mitteln für die Netzkodierung und dem topologischen Analysator;

2)ein Gleichungsgenerator;

3) Abschnitt der Iterationsschleifeorganisation für parallele numerische Lösung der Modellgleichungen (ein Gleichungslöser);

4)Abschnitt der Ergebnisseausgabe und Visualisierung.

Im diesen Beitrag werden wir näher zur Entwicklung des Gleichungsgenerators und des MIMD-Gleichungslösers eingehen.




4. Algorithmus der Gleichungsgenerierung.


Die guten Möglichkeiten für die rechnergestützten Erstellung der Netzmodelle gibt uns das Verfahren der vormalen Umformung der Gleichungen (8), (9). Die Gleichung (8) wird in Form


AxX + AYY = 0 (10)

und

X = -WY (11)


dargestellt. Hier sind


Ax, Ay - die Inzidenzmatrixteile entsprechend den Untervektoren X, Y;

- Hilfsmatrix.


Unter der Berücksichtigung der Matrix S(Sx, Sy) stellen wir (9) in folgenden Form dar


(12)


und setzen in (12) Untervektor X nach (11) ein. Nach einigen Umformungen bekommen wir die Gleichung


(13)


in der die umgeformten Ausdrücke


(14)

sind.

Das Gleichungssystem (11), (13) hat eine Darstellung, die nummerische Lösungsverfahren brauchen. Algorithmus der Generierungen dieses Systems wird als Reihenfolge der Matrixoperationen auf Matrizen Ax, Ay, Sx, Sy, Kx, Ky, R(Rx Ry), S(Sx Sy) dargestellt:



IAX =

W = IAx * Ay

W1 = SX * KX

W2 = W1 * W (15)

W3 = SY * KY

W4 = W3 - W2

Vektorkomponenten von H[HX(X) HY(Y)] sind die Funktionen von dynamischen Variablen, die berechnet werden. Deshalb Vektor HU für Gleichung (13) wird in der Iterationsschleife berechnet. Endergebnisse der topologischen Operationen (15) sind die Topologie- und Parametermatrizen


(16)




5.Algorithmus der MIMD- parallelen numerischen Lösung der

Modellgleichungen.


Wie oben gezeigt wurde, das Gleichungssystem des Netzobjektes


X = -WY

(17)


wird in der für numerische Lösung geeigneten Form dargestellt. Für die MIMD- parallele Lösung des Systems wird die folgende Methodik vorgeschlagen:


1. Es wird numerisches Verfahren für die Lösung der gewöhnlichen Dif- ferentialgleichungen ausgewählt. Bibliothek der MIMD-parallelen Verfahren wird von uns entwickelt und beinhaltet alle Verfahren, die in sequentiellen Simulationssprachen ISRSIM, ACSL, SIMULINK [ ] zur Verfügung stehen . Diese erleichtert die gemeinsame Nutzung der parallelen und sequentiellen Simulationsmittel. Wir zeigen hier Ergebnisse mit Adams-Bashforth-Verfahren 2.Ordnung.

2. Nach ausgewählten Verfahren wird für System (17) numerischer Algorithmus entwickelt. Er beinhaltet alle Berechnungsformeln für i-Schritt mit Berücksichtigung der Anfangsbedingungen.

Im System (17) werden die Anfangsbedingungen für Vektor Y vorgegeben


Y(i) := Y(0) (18)


und für Vektoren X, Y, H im Anfangsschritt i:=0 berechnet:


X(i) := -WY(i)

Zxj(i) := Xj(i) * |Xj(i)|

Zyj(i) := Yk(i) * |Yk(i)|

Z[i] := (Zx(i), Zy(i)) (19)

H(i) := (Hx1(i), ... , HXn-1(i), Hy1(i), ... , Hy(i)

Dabei sind:



Weiter wird rechte Seite der Differentialgleichung des Systems (17) für i-Schritt berechnet:


HU(i) := TP * H(i)

V1(i) := RU * Z[i] (20)

V(i) := HU[i] - V1(i)


Nach Adams-Bashforth-Verfahren 2.Ordnung wird gesuchte Vektor-

variable Y im i-Schritt berechnet:


(21)


Jetzt sind alle i-Schrittberechnungen durchgeführt. Für Ausgabe der

Simulationsergebnisse wird Vektor Q(i) formiert:


Q(i) := [X(i), Y(i)] (22)


Für Untersuchungen der dynamischen Verhältnisse kann auch Ab-leitungsvektor V(i) ausgegeben werden.

3. Für die Steuerung von Schleifedurchläufen kann Genauigkeitskriterium


Qi = |Q(i) - Q(i-1)| (23)


oder vorgegebene Zeit der Integrierung TSIM benutzt werden.

4. Entwicklung des C-Programms in der MPI-Umgebung. Dabei sind die Struktur des parallelen Modells und folgende Bemerkungen zu berücksichtigen:


- die Topologie-Operationen sind die Matrix-Vektor-Operationen und Umformungen, die in vorgeschriebene Reihenfolge entsprechend den Formeln (15,16) als Vorbereitungsberechnungen für Iterationsschleife durchgeführt werden sollen; im diesen Beitrag werden wir die entsprechende Matrizen benutzen, die schon im Topologieanalysator berechnet wurden,


- Iterationsschleife beinhaltet am jeden i-Schritt eine Reihe von Matrix- Vektor-Operationen für Berechnungen der rechte Seite von Matrix-Differentialgleichungen (Schleifevariable V(i));


- Schleifeberechnung der Vektoren Y(i) hat eine von numerischen Verfahren abhängige Verzweigung: nur für i:=1 wird entsprechenden Block aktiviert und Y(1) berechnet; für i > 1 werden Berechnungen im anderen Block realisiert; Steuerungsblock entscheidet nach Bedingung i > 1;


- die gesuchte Vektoren X(i), Y(i) sind über Topologie-Matrix W

verbunden, d.h. X-Prozessoren brauchen den Datenaustausch mit

Y-Prozessoren , die die in Matrix W zugeordnete Adresse haben;


- nach Berechnung X(i), Y(i) alle andere Vektor-Variablen werden

unabhängig von einander berechnet;


- besondere Eigenschaft dieses Modells besteht darin, da im Rahmen

des i-Schrittes strenge Reihenfolge von Operationen vorhanden ist.


Mit der Berücksichtigung der oben genannten Eigenschaften des Objektes und deren Gleichungen sowie der topologischen Aspekte der Modellentwicklung wurde SPMD-Ansatz zur Parallelisierung des Netzmodells von uns vorgeschlagen:

1.Es wird Struktur des sequentiellen Algorithmus für die Lösung desGleichungssystems (17) mit der Berücksichtigung der Matrix-Vektor-Operationen (....) entwickelt . In Abb. 1 wird das Block-Diagramm des Algorithmus dargestellt.

2.Es wird vorgeschlagen das MIMD-Modell, bestehend aus XiYi-Prozessoren (i=1,2,...,m-(n-1)), so zu erstellen, dass im jeden i-Prozessor die Prozesse für Berechnung der Komponenten von Vektoren X(X1,...X(n-1)), Y(Y1,...Y(m-n+1)) realisiert werden. In diesem MIMD-Modell-1 werden m-(n-1) Prozessoren des MIMD-Rechners benutzt. Struktur des parallelen Algorithmus wird in Abb.2 dargestellt.



Abb.1. Block-Diagramm des sequentiellen Algorithmus.



Abb.2.Algorithmus der SPMD-Parallelisierung mit Prozesse (MIMD-Mod.-1)


3. Als Variant für die Untersuchung wird MIMD-Modell-2 vorgeschlagen, das aus m Prozessoren besteht, die n-1 Komponenten des X-Vektors sowie m-(n-1) Komponenten des Y-Vektors parallel berechnen. Struktur dieses parallelen Algorithmus wird in Abb.3 dargestellt.




6.Implementierung.


6.1. Charakteristik des Testnetzobjektes

Ein Anteil der oben entwickelten Algorithmen (mit Voraussetzung, da Matrizen A, S vorgegeben sind) wurde in Programmiersprache C und MPI-Bibliothek implementiert und in MIMD-Rechnern CRAY T3E, HITACHI SR 2201 realisiert. Für die Erprobung wurde typisches, aber kleindimensionales Netzobjekt mit m=8, n= 5 benutzt (Abb.6.1). In dem Anhang 2 werden die Parametern sowie Matrizen A(Ax Ay), S(Sx Sy) des Netzes gezeigt.

Abb.6.1. Test-Netz

6.2. Bemerkungen zum MPI-Programm

Im Anhang 1 ist MPI-Programm, die der Struktur des SPMD-parallelen

MIMD-Modells (Abb. 2) entspricht, dargestellt.

MPI-Programm soll die Matrix-Vektor-Gleichungen des Netzobjektes numerisch nach SPMD-Prinzip lösen. Es wird Prozesse (Prozessoren) vorgesehen, die parallel die Vektorenkomponenten X1....Xn-1, Y1....Y berechnen. In diesem Testbeispiel wird der Fall m=8 =n-1=4 betrachtet.

Es werden die folgenden Matrix-Vektor-Operationen definiert:

Matrixinitialisierung

void InitMatrix(char*filename, Matrix pMatrix)

Vektorinitialisierung

void InitVector(char*filename, Vector pVector)

Vektorelement als Ergebnis der Multiplikation von i-Matrixzeile und des Vektors

float VectorElement(Matrix pMatrix, Vector pVector, int rank)


Abb.3.Algorithmus der SPMD-Parallelisierung mit m Prozesse

(MIMD-Modell-2)


Diese Initialisierungsfunktionen lesen aus vorgegebenen Dataeien (oder im Topologieanalysator) entsprechende Matrix- und Vektor-Daten und weisen den Elementen von Matrizen und Vektoren diese Daten zu.

Die Funktion VectorElement berechnet das i-Element des Vektors (i ist Prozessnummer, wo die Berechnungen durchgeführt werden).

Im Hauptteil des Programms werden die programmrelevanten Variablen deklariert sowie wird MPI initialisiert. Dazu sind die folgende Funktionen notwendig:


MPI_Init(&argc, &argv);

MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);

MPI_Comm_size(MPI_COMM_WORLD, &p);


Mit diesen Funktionen wird vom Benutzer ausgesprochene Menge der Prozessoren bereitgestellt und Prozessoren erhalten die logischen Namen (Nummer) von 0 bis -1.

Prozessor 0 initialisiert die Anfangsdaten.

Mit der Berücksichtigung der Zuordnung von Topologiematrizen A(Ax Ay), S(Sx Sy) sowie Parametermatrizen Rdia(Rx Ry), Kdia(Kx Ky) und Vektoren H(Hx Hy), Z(Zx Zy) entsprechend den Luftstromvektoren in den Baumzweige X und in den Antibaumzweige Y haben die verwendete Matrizen die Dimensionen (n-1)*(n-1),

(n-1)*(), * und die Vektoren – (n-1)*1, *1.

Während Prozessor 0 führt die Initialisierung durch, sollen alle andere Prozessoren warten. Die MPI-Anweisung


MPI_Barrier(MPI_COMM_WORLD);


garantiert, daß alle Prozessoren nur nach Beendigung der Initialisierung starten können. Paralleler Algorithmus setzt voraus, daß die in den Berechnungen beteiligte Matrizen und Vektoren außer dem 0-Prozessor auch aller anderen Prozessoren bekannt sind. Für die Übertragung dieser Daten (z.B. der Matrix W) aus 0-Prozessor aller anderen Prozessoren dient die MPI-Anweisung

MPI_Bcast(W, M*N, MPI_FLOAT, 0, MPI_COMM_WORLD);


Für die Garantierung der Beendigung aller solchen kollektiven Operationen vor den Anfang der nachfolgenden Programmsegment wird die Sinchronisierungsanweisung MPI_Barrier() in ensprechenden Stellen benutzt.

Um die Ergebnisse zu speichern, öffnet jeder Prozessor die Dateien mit den Namen Xproc-„Prozessnummer“, Yproc-„Prozessnummer“ und schreibt dorthin seine Daten.

Sobald die Vorbereitungsoperationen beendet sind, wird die Intergrierung der Gleichungen begonnen. Im jeden Prozessor werden die Komponenten von Vektor X (im Programm haben sie Name Xlocal), dann von Vektoren Zx, Zy (Zxlocal, Zylocal) berechnet. Weiter werden im 0-Prozessor die Vektoren X, Zx, Zy aus den berechneten Komponenten zusammengestellt. Diese Operation wird mit der MPI-Anweisung von Typ


MPI_Gather(&Xlocal, 1, MPI_FLOAT, X, 1, MPI_FLOAT,0,

MPI_COMM_WORLD)

durchgeführt. Mit der Anweisung MPI_Bcast() stellt der 0-Prozessor den allen beteiligten Prozessoren die für die Berechnungen notwendige Vektoren X, Zx und Zy zur Verfügung.

Weiter werden die rechte Seiten der nach Adams-Bashfort-Verfahren numerisch dargestellten Differentialgleichungen (die Variablen Vlocal und VPlocal) im jeden Prozessor berechnet. Die Integrierung der Differentialgleichungen wird mit der Schrittweite h bis der Erreichung von Tmodel-Dauer oder der stationären Zustände durchgeführt. Für die Kontrolle der stationären Zustände dient die MPI-Funktion


MPI_Reduce(&DeltaY, &MaxDeltaY, 1, MPI_FLOAT, MPI_MAX, 0,

MPI_COMM_WORLD),

die maximale Differenz DeltaY (DeltaX) der Lösungen Y,X auf Nachbarnschritten liefert und in 0-Prozessor für die weitere Entscheidung

max (DeltaX, DeltaY) <Delta

speichert.

Vektor Y wird aus im jeden Prozessor berechneten Komponenten ähnlich wie X, Zx, Zy erstellt.

Nach der Integrierungsberechnungen werden die Ausgangsdateien geschloßen und wird die Schlußfunktion MPI_Finalize() erfüllt.


6.3. Simulationsexperimente mit dem Modell des Testnetzobjektes und Simulationsergebnisse

Es wurden die folgende Simulationsexperimente (SE) durchgeführt:

SE-1 – Untersuchung der dynamischen Prozesse bei der natürlichen Luftstromverteilung. Die Anfangsbedingungen sind

Y(0)= 0,

X(0)= -W*Y(0)=0,

dabei die regelbaren Widerstände stehen in Null-Position und Testdruck des Ventilators wird sprungweise geändert von H=0 bis H=4100.


SE-2 - Untersuchung der Luftstromänderungen bei den sprungweise Einführungen der regelbaren Widerständen. Die Anfangsbedingungen werden aus SE-1 (die erzielte stationäre Zustände) entnommen.

In der Abb.... werden die SE-1-Ergebnisse dargestellt. Die natürliche Luftstromverteilung genau entspricht der vorberechneten stationären Luftstromwerte (Tab.6.4) (datj tabl. Sravnenija ust. Znatsch.. ). Dynamische Prozesse haben qualitativ exponentiale Charakter ohne Schwingungen. Bei der sprungweisen Änderungen der regelbaren Widerständen (Abb....., SE-2-Ergebnisse) werden die Luftströme in relevanten Zweige dynamisch verkleinert bzw. vergrößert entsprechend den RR-Größen.

6.4. Reales Netzobjekt

Als reales wird das Netzobjekt mit m=117 Zweige und n=61 Knoten betrachtet. Graph des Netzes wird mit der Tabelle 6.1 (Anhang) kodiert und parametrisch spezifiziert.










6.5. MIMD-Modell mit Prozessoren

Es ist vorausgesetzt, dass reales Netzobjekt mit demselben Programm simuliert wird. Dabei sollen Daten m=117, n=61 eingegeben werden. In diesem Fall =m-(n-1)=57. Im Programm sind M=n-1=60, N==57. Wenn nehmen wir 57 Prozessoren, dann werden Vektorkomponenten (X1,Y1),....(X57,Y57) in den zugeordneten P0, P1,.... P56 berechnet. Sonstige Komponenten X58, X59, X60 können in folgenden Arten berechnet werden:

-in der drei letzten Prozessoren, d.h. X58 in P54, X59 – P55, X60 – P56. Dazu brauchen wir das Modellprogramm entsprechend ergänzen.

6.6. Die Simulationsergebnisse.

6.7. MIMD-Modell mit m Prozessoren

6.8. Die Simulationsergebnisse.


Inhaltsverzeichnis



1.Einleitung

2. Netzobjekt als ein dynamisches System mit

konzentrierten Parametern.

3. Struktur des MIMD- parallelen Modells.

4. Algorithmus der Gleichungsgenerierung.

5.Algorithmus der MIMD- parallelen numerischen Lösung der

Modellgleichungen.

6.Implementierung.

6.1. Charakteristik des Testnetzobjektes

6.2. Bemerkungen zum MPI-Programm

6.3. Simulationsexperimente mit dem Modell des Testnetzobjektes und die

Simulationsergebnisse

6.4. Reales Netzobjekt

6.5. MIMD-Modell mit Prozessoren

6.6. Die Simulationsergebnisse.

6.7. MIMD-Modell mit m Prozessoren

6.8. Die Simulationsergebnisse.




Anhang 1

MPI-Programm des MIMD-Modells