next up previous
Next: Die Portierbarkeit dieses Up: PVM auf MPPs Previous: Eine einfache Anwendung

Die Parallelisierung

Bei jeder Parallelisierung müssen im wesentlichen zwei Aufgaben gelöst werden:

Die Zerlegung des Problems in mehrere Teilprobleme ist im Fall der Baumsuche sehr einfach und nahezu beliebig fein möglich: Jeder innere Knoten im Suchbaum ist die Wurzel eines Teilbaums, der als Teilproblem von einer Task bearbeitet werden kann. Da im allgemeinen jedoch die Größe der bei der Aufteilung entstandenen Teilbäume im voraus nicht bekannt ist, muß zur Laufzeit eine dynamische Lastverteilung durchgeführt werden, um ein paralleles System effizient zu nutzen.

In einem einfachen Parallelisierungsansatz, der nach einem Master-Slave Prozeßmodell arbeitet, erzeugt ein Master-Prozeß die ersten Ebenen dieses Suchbaums und speichert die Suchfront, d.h. die Knoten, an denen er die Suche abgebrochen hat. Diese Knoten werden dann der Reihe nach an die einzelnen Slaves abgegeben. Sie beschreiben Teilbäume, welche die Slaves parallel durchsuchen. Ist die Suche in einem Teilbaum erfolglos abgebrochen worden, so teilt ein Slave dieses dem Master-Prozeß mit und erhält ein neues Teilproblem in Form eines einzelnen Knotens aus der Suchfront. Wird eine neue Lösung gefunden, so muß die sich daraus eventuell ergebende bessere Schranke allen Tasks bekanntgegeben werden. Dieses Verfahren setzt sich fort, bis alle Knoten der Suchfront abgearbeitet wurden und somit das optimale Layout ermittelt wurde.



WWW-Administration
Thu Jul 13 19:06:34 MET DST 1995