next up previous contents
Next: Hilfsprogramme und Rechnerplattformen Up: Implementierung Previous: Struktur des Master-Prozesses

Struktur des Slave-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.
\begin{figure}
\centering

\setlength {\unitlength}{1cm}
 
\begin{picture}
(10,6...
 ...\put(2,3){\vector(1,0){2}}
 \put(4,3){\vector(-1,0){2}}\end{picture}\end{figure}

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 up previous contents
Next: Hilfsprogramme und Rechnerplattformen Up: Implementierung Previous: Struktur des Master-Prozesses
Heiko Schmidt
7/17/1997