Figure 2: Ein Screendump von XPVM
Bei der Entwicklung von parallelen Programmen ist es immer sinnvoll,
durch ein Tool
das Laufzeitverhalten der parallelen Prozesse zu betrachten, um
Programmierfehler
zu erkennen und die Effizienz der Parallelisierung zu steigern.
Zu beobachten ist dazu die Auslastung der einzelnen Prozessoren
bzw. Hosts und der
Overhead der Parallelisierung.
Dieser wird in erster Linie durch die Kommunikation bestimmt, d.h. durch
die Zahl
und Größe der Nachrichten und die Wartezeit der einzelnen Tasks
auf entsprechende Nachrichten.
Auch können solche Tools beim Auffinden von Kommunikationsdeadlocks
sehr nützlich sein.
Ein solches Tool ist
XPVM
[2].
Es handelt sich dabei um eine in
Tcl/Tk
entwickelte X-Version der
PVM-Console.
XPVM
ermöglicht anhand von automatisch erzeugten
Trace-Files
eine
Visualisierung des Programmablaufs.
Insbesondere wird hier der zeitliche Verlauf der einzelnen Tasks und die
Kommunikation
zwischen ihnen grafisch dargestellt, siehe Abbildung 2.
In einem weiteren Fenster wird die von jeder Task zuletzt aufgerufene
PVM -Routine
angezeigt, so daß --- zumindest in Ansätzen --- deutlich wird, in
welchen Bereichen
des Programmtexts sich die einzelnen Tasks befinden.
Ebenfalls auf Log-Files arbeitet das Tool ParaGraph [3]. Im Gegensatz zu XPVM kann hier eine Analyse jedoch nur im Anschluß an den Programmablauf erfolgen. Dieses Analyse-Tool ist deutlich umfangreicher und allgemeiner. Es ist nicht speziell für PVM entwickelt worden, weshalb der Einsatz von ParaGraph in Zusammenarbeit mit PVM sehr umständlich ist. Es bietet jedoch die Möglichkeit, anhand der im Programmlauf erfolgten Kommunikation eine optimale Prozeßtopologie zu ermitteln. Dieses ist insbesondere auf echten Parallelrechnern wichtig, da hier die einzelnen Prozessorelemente nicht über einen gemeinsamen Bus kommunizieren, sondern immer nur mit aufgrund der vorgegebenen Hardware-Topologie im System benachbarten Prozessoren.