PVM - PowerPoint PPT Presentation

About This Presentation
Title:

PVM

Description:

PVM Parallel Virtual Machine Michael Springmann PVM Eigenschaften Aufbau von Hypercomputern / Beowulf-Cluster verteilte Ressourcen als virtueller Rechner einfache ... – PowerPoint PPT presentation

Number of Views:115
Avg rating:3.0/5.0
Slides: 15
Provided by: Michae1760
Category:

less

Transcript and Presenter's Notes

Title: PVM


1
PVM Parallel Virtual Machine
  • Michael Springmann

2
PVM Eigenschaften
  • Aufbau von Hypercomputern / Beowulf-Cluster
  • verteilte Ressourcen als virtueller Rechner
  • einfache Installation und Konfiguration
  • leichte Programmeerstellung durch Bibliothek für
    Message-Passing-Funktionen
  • Heterogenität auf Applikations-, Maschinen-und
    Netzwerk-Ebene möglich
  • Anforderungen dementsprechend niedrig

3
PVM - Entwicklung
  • PVM 1.0
  • Ab 1989 entwickelt von Vaidy Sunderam und Al
    Geist am Oak Ridge National Laboratory
  • Nur intern genutzt / nicht veröffentlicht
  • PVM 2.0
  • Februar 1991 an der UTK veröffentlicht
  • PVM 3.0
  • Februar 1993 veröffentlicht
  • Wurde de facto Standard für paralleles Rechnen
  • Aktuell PVM 3.4.4
  • Letzte Aktualisierung September 2001

4
Bestandteile von PVM
  • Anwendungen
  • pvmd PVM Dämon
  • pvm Konsole
  • Bibliotheken
  • pvm3
  • C Interface
  • FORTRAN Interface
  • ... weitere wie Perl, Python, Java erhältlich
  • Tools
  • XPVM
  • Debugger
  • Anwendung (z.B. pvmpov)

5
PVM Dämon
  • Läuft auf jedem Rechner im Cluster
  • Führt KEINE Berechnungen durch
  • Fungiert als Message-Router und Controller

6
Task-Task-Kommunikation
  • Mit pvm_setopt(PvmRoute, PvmRouteDirect)lässt
    sich diese auch beschleunigen

gepackte Daten und Statusinformationen
7
PVM Konsole
  • Wird mit Befehl pvm gestartet
  • Startet wenn nötig pvmd
  • Zeigt den Prompt pvmgt
  • Nimmt Befehle entgegen, z.B.
  • add lthostgt
  • delete lthostgt
  • conf
  • ps -a
  • quit
  • halt
  • spawn -gt
  • Zeigt die Ausgabe

8
PVM Hostfile Optionen
  • Befehl add startet neuen Dämon auf lthostgt
  • Optionen können direkt oder in hostfile
    angegeben werden
  • louserid
  • sopw
  • dxPfad zu pvmd
  • epPfad zu Anwendungen
  • sprelative Leistung im Cluster
  • min. 1, max. 100000, default ist 1000
  • bxPfad zum Debugger
  • wdArbeitsverzeichnis
  • ipHostname
  • soms

9
PVM C Bibliothek
  • Kontrollfunktionen
  • ähnlich Befehlen auf der Konsole
  • Beispiele
  • int info pvm_addhosts(char hosts, int nhost,
    int infos)
  • int info pvm_delhosts(char hosts, int nhost,
    int infos)
  • int tid pvm_mytid(void)
  • int info pvm_kill(int tid)
  • Informationsfunktionen
  • Beispiele
  • int tid pvm_parent(void)
  • int dtid pvm_tidtohost(int tid)
  • int info pvm_perror(char msg)
  • int val pvm_getopt(int what)

10
PVM C Bibliothek II
  • Signal-Funktionen
  • int info pvm_sendsig(int tid, int signum)
  • int info pvm_notify(int about, int msgtag, int
    ntask, int tids)
  • Nachrichten-Puffer-Funktionen
  • Beispiele
  • int bufid pvm_initsend(int encoding)
  • int bufid pvm_getsbuf(void)
  • int oldbuf pvm_setrbuf(int bufid)
  • int info pvm_freebuf(int bufid)

11
PVM C Bibliothek III
  • Funktionen zum Packen und Senden
  • int info pvm_pkint(int np, int nitem, int
    stride)
  • int info pvm_pkdouble(int dp, int nitem, int
    stride)
  • int info pvm_pkstr(char cp)
  • int info pvm_packf(printf-like format ...)
  • int info pvm_send(int tid, int msgtag)
  • int info pvm_mcast(int tids, int ntask, int
    msgtag)
  • Funktionen zum Empfangen und Entpacken
  • int bufid pvm_recv(int tid, int msgtag)
  • int bufid pvm_nrecv(int tid, int msgtag)
  • int bufid pvm_trecv(int tid,int msgtag,struct
    timeval tmout)
  • int bufid pvm_probe(int tid, int msgtag)
  • int info pvm_upk(...) wie pvm_pk

12
PVM C Bibliothek IV
  • Gruppenfunktionen
  • PVM bietet dynamische, benannte Gruppen
  • Erleichtert hierdurch erheblich die
    Programmierung
  • Beispiele
  • int inum pvm_joingroup(char group)
  • int info pvm_lvgroup(char group)
  • int size pvm_gsize(char group)
  • int tid pvm_gettid(char group, int inum)
  • int inum pvm_getinst(char group, int tid)
  • int info pvm_bcast(char group, int msgtag)
  • int info pvm_reduce(void (func)(), void data,
    int nitem, int datatype, int msgtag,
    char group, int root)
  • func kann vordefinierte Funktionen PvmMax,
    PvmMin, PvmSum oder PvmProduct annehmen
  • int info pvm_barrier(char group, int count)

13
Quellen
  • Bücher
  • Al Geist et al. PVM - A Users Guide and
    Tutorial for Networked Parallel ComputingMIT
    Press 1994
  • Internet
  • PVM Homepage http//www.epm.ornl.gov/pvm/pvm_home
    .html(leider seit Wochen offline)
  • Netlib.org http//www.netlib.org/pvm3/
  • Studienarbeit von Carsten Schindler
    http//parallel.fh-bielefeld.de/ti/studien/pvm/tit
    le.html

14
Ende der Präsentation
Write a Comment
User Comments (0)
About PowerShow.com