next up previous contents index
Next: Definition und Erzeugung von Up: 5 PVM Parallel Virtual Previous: 5 PVM Parallel Virtual

Überblick über PVM und die Message Passing Routinen

PVM besteht aus etwa 64 Bibliotheksroutinen in libpvm3.a, einem Daemon Prozeß pvmd sowie einer Konsole pvm zur Überwachung der virtuellen Maschine. Die prinzipielle Funktionsweise von PVM wird in Abbildung 5.1 gezeigt. Auf jedem an PVM beteiligten Rechener läuft ein Daemonprozess pvmd, der mit den Benutzerprogrammen mittels der PVM Bibliotheksroutinen kommuniziert. Die PVM Daemone kommunizieren ihrerseits untereinander und vermitteln die Datenübertragung zwischen den Benutzerprogrammen (via TCP/IP oder UDP).

   table1275
Tabelle 5.1: Funktionsschema von PVM

Der PVM Demonprozess  pvmd, wird etwa wie folgt (im Hintergrund) gestartet

 
       pvmd mytopology &
Der Daemon läuft als normaler Benutzerprozess und benötigt keine besonderen Rechte. Als Argument benötigt pvmd ein sogenanntes Hostfile  mytopology in dem die an dieser parallelen virtuellen Maschine beteiligten Rechner definiert sind. Mit dem Starten von pvmd werden alle benötigten PVM Daemons auf allen verlangten Rechnern gestartet. Ein Hostfile könnte z.B. so aussehen
 
       # pvm hosts file for Praktikum
       # defaults
       * ep=/home/kredel/pvm3/bin/%:/home/sw/pvm3/bin/%
       # hostnames 
       suparum ep=/home/kredel/pvm3/bin/%:/home/kredel/cvs/mas/ksr1/machine
Zeilen die mit # beginnen sind Kommentare. Jede sonstige Zeile definiert einen Hostrechner. z.B. die Zeile mit suparum definiert, daß der Rechner mit dem Internet Namen suparum an PVM teilnimmt. Die auf den Hostnamen folgenden Argumente bezeichnen im obigen Beispiel die Pfadnamen in denen PVM die ausführbaren Programme suchen soll (ep=). Ein % im Pfadnamen wird durch die aktuelle Architektur ersetzt (hier also durch KSR1). Die Zeile, die mit * als Hostnamen beginnt definiert defaults für die verschiedenen Argumente. Weitere mögliche Argumente in einer Host Zeile sind lo=userid (definiert den Loginnamen auf dem Rechner), pw (prompted nach dem Password) und dx= (Pfadname für den pvmd).

Über den Zustand der Daemone und der PVM tasks kann man sich mit der PVM Konsole  informieren. Die PVM Konsole wird einfach mit pvm gestartet. Dann stehen z.B. die Kommandos help, conf, ps und halt zurverfügung. conf zeigt die Konfiguration der parallelen virtuellen Maschine an, d.h. die beteiligten Hosts. ps zeigt die gestarteten PVM Tasks an, d.h. die gestarteten und bei PVM angemeldeten Benutzerprogramme. halt stoppt alle PVM Tasks und alle PVM Daemone.

Von den PVM Routinen  besprechen wir im Folgenden drei Gruppen:

  1. channel name ( ): Definition und Erzeugung von Kanälen:
    pvm_spawn, pvm_my tid, pvm_parent, (pvm_exit, pvm_kill), message tags,
  2. send (...): Packen und versenden:
    pvm_initsend, pvm_pk[type], pvm_send, (pvm_mcast),
  3. receive (...): Empfangen und auspacken:
    pvm_recv, pvm_nrecv, pvm_upk[type].
Darüber hinaus gibt es noch eine Reihe weiterer Funktionen zur Beschaffung von Informationen und zur Konfiguration der virtuellen Maschine, sowie Funktionen zur Bearbeitung mehrer Message Buffer. Zusätzlich existiert noch ein experimentelles Paket zur Gruppenkommunikation.


next up previous contents index
Next: Definition und Erzeugung von Up: 5 PVM Parallel Virtual Previous: 5 PVM Parallel Virtual

parallel@rz.uni-mannheim.de
Mon Okt 28 14:38:25 PST 1996