Informace Fórum Stav sítě ČVUT IDS Hledání Přihlášení Mapa stránek

POE - Parallel Operating Environment

Parallel Operating Environment (POE) je aplikační programové rozhraní pro paralelní počítače řady IBM SP. Ač navrženo především pro tyto počítače, umožňuje též práci na clusteru počítačů typu RS/6000 či dokonce na jediném počítači typu RS/6000 (v tzv. time sharing environment).

POE poskytuje možnost provádění SPMD i MPMD programů. Je implementováno jako knihovna funkcí (tzv. MPI Message Passing Interface a MPL Message Passing Library), které lze volat z C, C++ a FORTAN programu. Tyto knihovní funkce je možno rozdělit do několika skupin podle typu služby, kterou provádějí:

Před spuštěním jobu je třeba určit počet úloh. Tento počet je během celé doby výpočtu stejný, system nepodporuje dynamické vytváření a rušení úloh. Každá úloha je jednoznačně určena svým identifikačním číslem, která jsou v rozmezí 0,1,..., počet úloh - 1.

Začátek práce s POE

Na jednoduchem prikladu si ukazeme, které kroky je třeba provést pro spuštění programu. Pro jednoduchost budeme uvažovat SPMD program. Nemate-li žádný vlastní program k dispozici, můžete užít ilustrační prográmek. Dle uvedeného postupu je možno postupovat při užívání knihovny MPI i MPL.

  1. Vytvoříme si soubor .rhosts ve svém domovském adresáři (Soubor musí obsahovat seznam uzlů na kterých bude běžet POE. Format souboru se skládá z dvojice název uzlu uid)
    
    např.
    
           spe01   karel
    
           spe02   karel
    
           spe03   karel
    
    
    
    případně
    
           spe101  karel
    
           spe103  karel
    
           spe105  karel
    
        
    Vytvoříme si soubor host.list v adresáři, ze kterého budeme spouštět POE. (Soubor bude rovněž obsahovat seznam uzlu, na kterých poběží POE.)
    
    např.
    
           spe01
    
           spe02
    
           spe03
    
    
    
    případně
    
           spe101
    
           spe103
    
           spe105
    
        
  2. Program přeložíme:
    
          mpcc program.c pro program napsaný v C,
    mpCC program.C pro C++,
    mpxlf program.f pro FORTRAN.
  3. Není-li náš program na sdíleném systému souboru, zkopírujeme program na uzly, které chceme při běhu využít. Např. chceme-li zkopírovat program program.out, vyskytující se pouze na jediném uzlu v adresáři /scratch/mpl, na všechny uzly uvedené v souboru host.list do téhož adresáře, můžeme použít
    
    	mprcp host.list /scratch/mpl/program.out
    
          
  4. Provedeme nastavení systemových proměných. Např. chceme-li, aby náš job byl tvořen 4 úlohami, které ke kominikaci užívají high performance switch a běží na uzlech prvního poolu, nastavíme níže uvedeným způsobem následující proměnné:
    
            export MP_PROCS=4
    
            export MP_EULIB=us
    
            export MP_EUIDEVICE=css0
    
            export RM_POOL=1
    
          
  5. Spustíme přeložený program z některého z uzlů, na kterém chceme, aby program běžel:
    
    	poe /scratch/mpl/program.out
    
          

Pozn. Máte-li program v domovském adresáři, neni třeba provádět krok 2, a ve kroku 4 stačí zavolat poe program.out .

Programy v POE doporučujeme spouštět pomocí LoadLeveleru.

Tento a jiné příklady jsou pro uživatele SP dostupné v adresáři /vol/proj/POE/examples.
Více podrobnějších informací je možno získat prostřednictvím manuálových stránek (napr. man poe, man pe, man MP_SUMMARY) nebo systému info (info -l pe v prostředí X-Windows, info -a -l pe kdekoli).

Paralelní prostředí