====== 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)