PVM

http://daniel-h.web.elte.hu/pvm/pvm.html

Előkészületek

Szükséges könyvtárak létrehozása:

mkdir -p ~/pvm3/bin/LINUX64

Fordításhoz (~/pvm3/src/<projekt>/Makefile.aimk):

# Makefile.aimk - PVM programok fordításához # # Használat: # Ezt a Makefile-t egy tetszöleges könyvtárba el lehet helyezni, amely # C vagy C++ nyelvű forrásfile-okat tartalmaz. Minden forrásfile-ból egy # programfile-t készít, az eredményt a LINUX alkönyvtárba helyezi el. # # Az `aimk' parancs az összes, alább megadott programot lefordítja. # Az `aimk links' parancs linkeket készít a lefordított programokra, # hogy a futtatás során megtalálja öket a PVM. Ezt a parancsot akkor # kell kiadni, ha a programok listája megváltozik. # A lefordítandó programok nevei (szóközzel elválasztott felsorolás) BINS = hello hello_other # Kapcsolók a fordítónak OPTIONS = -W -Wall # Kapcsolók a linkernek LOPT = #################################################################### # # # Innentöl semmit nem kell módosítani # # # #################################################################### BDIR = $(HOME)/pvm3/bin XDIR = $(BDIR)/$(PVM_ARCH) CFLAGS = $(OPTIONS) -I$(PVM_ROOT)/include $(ARCHCFLAGS) LIBS = -lpvm3 $(ARCHLIB) LDFLAGS = $(LOPT) -L$(PVM_ROOT)/lib/$(PVM_ARCH) default: $(BINS) % : ../%.c $(CC) $(CFLAGS) -o $@ $< $(LDFLAGS) $(LIBS) % : ../%.cc $(CXX) $(CFLAGS) -o $@ $< $(LDFLAGS) $(LIBS) % : ../%.cpp $(CXX) $(CFLAGS) -o $@ $< $(LDFLAGS) $(LIBS) $(XDIR): mkdir -p $(XDIR) links: $(XDIR) @( CURRENT=`pwd` ;\ echo cd $(XDIR) ;\ cd $(XDIR) ;\ for i in $(BINS) ;\ do \ echo ln -sf $$CURRENT/$$i $$i ;\ ln -sf $$CURRENT/$$i $$i ;\ done ; ) clean: - rm *.o - rm $(BINS) - (cd $(XDIR); rm $(BINS))

Szerverek listája (~/pvm_hosts):

add blade01 blade02 blade03 blade04 blade05 blade06 blade07 blade08 blade09 blade10 blade11 blade12

Fordítás

Lépjünk be a projekt mappába, ahol a forrás fájlok vannak és a Make file!

Kód lefordítása és linkelése futtatásra:

aimk && aimk links

Futtatás

Belépés a PVM-be úgy

Host fájlból automatikusan beolvasva a node-okkal:

pvm < ~/pvm_hosts

Kézzel hozzáadva a node-okat:

pvm
add blade01 add blade02 ...

Node-ok ellenőrzése:

conf

A lefordított és belinkelt hello program futtatása:

spawn -> hello

Leállítás / kilépés

A Ctrl+D-vel bármikor ki lehet lépni a pvm környezetből úgy, hogy a programunk tovább fut.

A teljes termináláshot:

halt

Bentragadt PVM program

Figyeljük, hogy minden taszkunk rendesen leállt-e

Ha nem, lőjük ki a bent ragadtakat

Ha a pvm démont nem tudjuk leállítani, lőjük ki azt is

Töröljük le a /tmp/pvm.<id>/sock fájlt

id uid=11700(foo) gid=100(users) groups=100(users),8291(pvm)