Felhasználói eszközök

Eszközök a webhelyen


Oldalsáv

Index menü


Tagek listája

Szavak listája

tudasbazis:programozas:pvm

PVM

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
    # 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):
    pvm_hosts
    add blade01 blade02 blade03 blade04 blade05 blade06 blade07 blade08 blade09 blade10 blade11 blade12

Fordítás

  1. Lépjünk be a projekt mappába, ahol a forrás fájlok vannak és a Make file!
  2. Kód lefordítása és linkelése futtatásra:
    aimk && aimk links

Futtatás

  1. 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
      ...
  2. Node-ok ellenőrzése:
    conf
  3. 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)
tudasbazis/programozas/pvm.txt · Utolsó módosítás: 2014.11.07 22:36 (külső szerkesztés)