Next: Hilfsprogramme und Rechnerplattformen
Up: Implementierung
Previous: Struktur des Master-Prozesses
Auch die Struktur und der Ablauf des im folgenden beschriebenen
Slave-Prozesses ist in Form eines Flußdiagramms (Abb. 5.3)
dargestellt.
Abbildung:
Struktur der Slave-Prozesse von
pfastDNAml, inklusive der Master/Slave-Kommunikation
zum Empfangen und Senden der Bäume. Die Kommunikation während
des init- und exit-Schrittes ist nicht
eingezeichnet, da sie von untergeordneter Bedeutung ist.
 |
- init
- Im init-Schritt empfängt der Slave-Prozeß vom Master-Prozeß
den Inhalt der gesamten Eingabedatei sowie alle anderen für die
Initialisierung notwendigen Daten.
Anschließend werden die Daten aus der Eingabedatei ausgewertet und
der notwendige Speicherplatz reserviert und initialisiert, wie in
der sequentiellen Version in Punkt 1. bis 3. beschrieben.
Nach Abschluß der Initialisierung geht der Slave-Prozeß zum
receive/send-Schritt über.
- receive/send
- Kommt der Slave-Prozeß nach der Ausführung von enumerate
an diese Stelle, so sendet er den berechneten Baum an den Master-Prozeß.
Jetzt wird eine Anfrage nach einem zu berechnenden
Baum an den Master-Prozeß gesandt.
Der Slave-Prozeß geht nun in eine Warteschleife über, bis Antwort vom
Master-Prozeß übermittelt wurde. Handelt es sich bei der empfangenen
Nachricht um einen Baum, so wechselt der Slave-Prozeß in die
enumerate-Routine.
Ist dagegen eine Nachricht über das Ende der Analyse eingetroffen,
so wird, mit dem exit-Schritt fortgefahren.
- enumerate
- Bei dem empfangenen Baum werden alle Kanten der Reihe nach so lange
nach der ML-Methode (siehe Kap. 4.2) optimiert, bis der
Likelihood-Wert des Baumes sein Maximum erreicht.
Nach der Berechnung der Baumkanten kehrt der Slave-Prozeß
mit dem berechneten Baum wieder zum receive/send-Teil zurück.
- exit
- Nachdem die Analyse vom Master-Prozeß als abgeschlossen gemeldet
wurde, werden alle reservierten Speicherbereiche wieder freigegeben
und der Slave-Prozeß beendet.
Ist das Programm mit der PM_DEBUG-Option compiliert worden,
so wird auch von jedem Slave-Prozeß eine Ausgabedatei angelegt und
Angaben über den Programmlauf darin ausgegeben.
Next: Hilfsprogramme und Rechnerplattformen
Up: Implementierung
Previous: Struktur des Master-Prozesses
Heiko Schmidt
7/17/1997