====== 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//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./sock'' fájlt
id
uid=11700(foo) gid=100(users) groups=100(users),8291(pvm)