Informatik V ParLab: Lokale PVM-Installation

Grundsätzliches

Auf unseren Maschinen ist PVM folgendermaßen installiert:


Solaris8/Sparc Solaris10/Sparc NetBSD/arm32 NetBSD/amd64
Version 3.4.5 3.4.5 3.4.5 3.4.5
PVM_ROOT /usr/local/pvm3 /usr/local/pkg/pvm3 /usr/pkg/pvm3 /usr/pkg/pvm3
PVM_ARCH SUN4SOL2 SUN4SOL2 NBSDARM32 NETBSDX86_64

Ich empfehle, an das Ende von .cshrc (Standard-stud-account: .cshrc.local) folgendes einzufügen:



if (-f /usr/local/standard/Cshrc.pvm) then
	source /usr/local/standard/Cshrc.pvm
endif

Damit werden PVM_ROOT und PVM_ARCH sowie der Suchpfad für ausfürbare Programme gesetzt. Eigene Programme sollten in $HOME/pvm3/bin/$PVM_ARCH abgelegt werden, damit sie vom pvmd gefunden werden.

PVM über SSH für Anfänger

Beachten Sie bitte, dass unsere Installation von PVM ssh statt rsh zum Starten der entfernten Netzknoten benutzt. Hier ist ein einfaches Rezept, wie Sie Ihr persönliches ssh-Schlüsselpaar erzeugen und für PVM nutzen können.

Erzeugung eines persönlichen SSH-Schlüsselpaars und Freigabe des Passwort-losen Logins für den eigenen Schlüssel

Wenn Sie schon ein SSH-Schlüsselpaar in ihrer Home-Directory installiert haben, müssen Sie diesen Abschnitt überspringen!

% ssh-keygen -t rsa
ignatios@cello 20 % ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/stud/meinname/.ssh/id_rsa): Return-Taste
Enter passphrase:  Passphrase gefolgt von der Return-Taste
Enter the same passphrase again:  Passphrase gefolgt von der Return-Taste
Your identification has been saved in /home/stud/meinname/.ssh/id_rsa.
Your public key has been saved in /home/stud/meinname/.ssh/id_rsa.pub.
The key fingerprint is:
f8:23:5e:22:90:d6:f3:77:a7:29:eb:2e:87:fd:ea:46 ignatios@cello.cs.uni-bonn.de
ignatios@cello 21 % 

% touch .ssh/authorized_keys
% cat .ssh/id_rsa.pub >> ~/.ssh/authorized_keys


Nutzung des ssh-agenten

Da der geheime Teil Ihres Schlüssels seinerseits verschlüsselt ist, müssen Sie bei jedem Gebrauch die Passphrase eintippen. Dies ist unpraktisch und macht das Starten entfernter PVM-Knoten ohne Benutzereingriff unmöglich.

Die Lösung ist die Nutzung des ssh-agent. Ihm können Sie ihren entschlüsselten Schlüssel anvertrauen, und er wird ihn von ihm gestarteten Programmen übergeben.

Weil das agent forwarding eine Sicherheitslücke darstellen kann, ist es bei unseren Maschinen ausgeschaltet. Sie müssen den ssh-agent also auf der Maschine starten, auf der Sie anschliessend pvm starten wollen.




% ssh random53
Welcome to random53.
% ssh-agent tcsh
% ssh-add -l
This agent has no identities.
% ssh-add
Need passphrase for /home/stud/meinname/.ssh/id_rsa (meinname@rost).
Enter passphrase: Passphrase gefolgt von der Return-Taste.
Identity added: /home/stud/meinname/.ssh/id_rsa (meinname@rost).
% pvm
pvm>
...


Hinweise zur Programmübersetzung

Wir empfehlen dringend die Benutzung des PVM-Tools aimk und Makefile.aimk, da dadurch die Maschinenspezifischen abweichungen der Libraries und der Include-Suchpfade automatisch behandelt werden!

Übersetzen von C-Programmen

Makefile.aimk:

SDIR	= ..
BDIR	= $(HOME)/pvm3/bin
XDIR	= $(BDIR)/${PVM_ARCH)
OPTIONS	= -O2 -g
CFLAGS	= $(OPTIONS) -I$(PVM_ROOT/include $(ARCHFLAGS)

LIBS    =       -g -L$(PVM_ROOT)/lib/$(PVM_ARCH) -R$(PVM_ROOT)/lib/$(PVM_ARCH) -
lpvm3 $(ARCHLIB)
GLIBS   =       -lgpvm3
MLIBS   =       -lm

LFLAGS  =       $(LOPT)

default:	programm1 programm2

clean:
		rm -rf *.o

$(XDIR):
		- mkdir $(BDIR)
		- mkdir $(XDIR)

programm1: $(SDIR)/programm1.c $(XDIR)
	$(CC) $(CFLAGS) -o $@ $(SDIR)/programm1.c $(LFLAGS) $(LIBS)
	cp programm1 $(XDIR)

programm2: $(SDIR)/programm2.c $(XDIR)
	$(CC) $(CFLAGS) -o $@ $(SDIR)/programm2.c $(LFLAGS) $(LIBS)
	cp programm2 $(XDIR)

Denken Sie daran, dass die Folgezeilen (also Anweisungszeilen) von Erzeugungsregeln bei allen Varianten von Makefiles immer mit einem Tabulator beginnen müssen, und *nicht* mit einer folge von Leerzeichen! Falls Sie getrennt compilieren und linken: stattdessen z.B.

...

programm3: programm3a.o programm3b.o
	$(CC) $(CFLAGS) -o $@ programm3a.o programm3b.o $(LFLAGS) $(LIBS)

Verfügbare Maschinen der verschiedenen Typen

Folgende Maschinen können für PVM-Experimente benutzt werden:
Solaris 8 (UltraSparc-II/IIe 270/300/333/500/650 MHz)
piano, random52, random53, random54, talisker, thera, theta, turing
NetBSD/amd64 (8-core Opteron, 2300 MHz)
random86
NetBSD/arm32 (SA-110, 233 MHz)
random30, random31, ..., random39 [Hier scheint es bei einem Teil der Maschinen Stabilitätsprobleme zu geben.]
Mit folgendem Befehl koennen Sie eine Liste der ausgefallenen Rechner erhalten:

finger .down@theory.cs.uni-bonn.de
bzw. eine List der speziell fuer das Parallellabor abstellten Rechner:

finger .parlab@theory.cs.uni-bonn.de

Literatur

Ein Ordner mit PVM-Literatur steht bei der Bibliothekarin zur Einsicht bereit. Für die schnelle Referenz am Schirm eignet sich - Netzverbindung vorausgesetzt - die Online-Version des PVM User's Guide.

Skript "Unix-Grundlagen und C-Programmierung"


Letzte Änderung: Fri Feb 8 13:45:00 CET 2008 ignatios