Felhasználói eszközök

Eszközök a webhelyen


swquide

Ez a dokumentum egy előző változata!


Programok futtatása: single task, pthread, OpenMP, MPI, PVM

Nagy számítási kapacitású rendszereknél elkerülhetetlenül szükség van arra, hogy az alkalmazások futását valamilyen módon összehangoljuk, és megszervezzük az erőforrások elosztását. Emiatt rendszerünkön a programok futtatására a queue rendszer ajánlott. A hpc2009 részben a queue rendszer használata kötelező.

A rendszernek 4 partíciója (része) van: atlasz, hpc2009, hpc2005, flocking. MPI/PVM szempontjából ezek átjárhatatlan partíciók, a program vagy az egyiken fut, vagy a másikon.

Futtatás a queue rendszeren keresztül az adott partíción

  • sbatch -p hpc2009 ….
  • sbatch -p hpc2005 ….
  • sbatch -p atlasz ….

Single task programok futtatása

Az egész cluster igazából párhuzamosított programok futtatására hatékony. Mégis, amennyiben valami okból a rendelkezésre álló program csak 1 szálú, úgy lehetőség van azt is futtatni.

1 darab egyszálú program indítása a fejgépen

A programot indítsa egy script. Példában a neve startscript.sh

sbatch -p atlasz startscript.sh
8 darab egyszálú program indítása valamelyik számoló node-on

A programot indítsa egy script. Példában a neve startscript.sh Ez a script legyen képes arra, hogy 8 példányban indítsa el a programot, mindegyiket a megfelelő paraméterekkel. Például:

startscript.sh
#!/bin/bash
myprog < input1 > output1 &
myprog < input2 > output2 &
myprog < input3 > output3 &
myprog < input4 > output4 &
myprog < input5 > output5 &
myprog < input6 > output6 &
myprog < input7 > output7 &
myprog < input8 > output8 &
wait
sbatch -p hpc2009 -B 1:4:1 startscript.sh 

Pthread vagy OpenMP programok futtatása

A programot indítsa egy script. Példában a neve startscript.sh

sbatch -p hpc2009 -N 1 startscript.sh 

Ekkor a queue rendszer lefoglal 1 node-ot (-N) és azon egy példányban elindítja a startscript.sh programot. A hpc2009 partíción 8 core = 16 vcore (HyperThreading) található, a hpc2005 partíción 4 core. Érdemes automatizmust gyártani, ami megállapítja a CPU (magok) számát.

  • shell: getconf _NPROCESSORS_ONLN
  • c: sysconf(_SC_NPROCESSORS_ONLN)
Open MPI programok futtatása

Az összeakadások elkerülése végett egy számoló node nem osztozik több feladaton. Erőforrást allokálni node-onként lehet.

Az indításhoz kell egy wrapper, például startscript.sh. Nézzen így ki:

startscript.sh
#!/bin/bash
mpirun.openmpi /teljes/utvonal/exename param1 param2
  • indítás 4 node-on, mindegyiken 8 magon
    • sbatch -p hpc2009 -N 4 -B 2:4:1 startscript.sh
  • indítás 4 node-on, mindegyiken 16 szálon (HyperThreading)
    • sbatch -p hpc2009 -N 4 -B 2:4:2 -O startscript.sh

Ugyan a HyperThreading használatával az egy szálra jutó teljesítmény csökken, azonban az eredő teljesítmény eddigi tapasztalataink szerint jobb. A 8 gyors szál kevesebbet tud, mint a 16 lassabb szál. Azonban eddigi tapasztalataink alapján az erős lebegontos számításokat végző programoknál a HyperThreading hátrány. Javasoljuk tesztelésképpen kipróbálni, hogy a -B 2:4:1 vagy a -B 2:4:2 -O ad jobb futási teljesítményt.

Amenmyiben az alkalmazás magonként több mint 1.5 Gbyte memóriát igényel, úgy nem lehet minden magon futtatni. Ha például az alkalmazás szálanként 6 Gbyte memóriát igényel, úgy indokolt lehet az egész node-ot allokálni, de csak 2 szálat futtatni.

  • indítás 4 node-on, mindegyiken 2 magon
    • sbatch -p hpc2009 -N 4 -B 2:1:1 startscript.sh

MPICH2 programok futtatása

Hasonló az Open MPI programok futtatásához, azonban az mpirun.openmpi parancs helyett az srun parancsot kell használni a start scriptben.

PVM programok futtatása

PVM programok használata pvm-students (ORSI hallgató) csoport számára

A pvm-students csoport csak a hpc2005 partíciót használhatja (blade01..blade12). Azokra interaktívan be is léphet, de a fejgépen kiadott pvm konzol esetén is használhatja azokat. A queue rendszer használata nem feltétel. Bővebben lásd → pvm-students. Tényleg olvasd el.

PVM programok használata a queue rendszeren keresztül

Az összeakadások elkerülése végett egy számoló node nem osztozik több feladaton. Erőforrást allokálni node-onként lehet. Az indításhoz kell egy wrapper, például startscript.sh. Nézzen így ki:

startscript.sh
#!/bin/sh
pvmrun /teljes/utvonal/programname
  • indítás 4 node-on, HyperThreading on:
    • sbatch -p hpc2009 -N 4 -B 2:4:2 -O startscript.sh

A pvmrun parancs automatikusan elinditja a pvmd -ket, beallitja a pvm konfigurációt (hostfile) annak megfelelően, hogy a queue rendszer éppen hol futtatja a jobot. A program végrehajtása után felszámolja a pvm környezetet.

A pvm konzolt hívni külön nem kell. A kimenetként kapott slurm-`job-id'.out fájlban benne lesz a virtuális gép konfigurációja. (pvm> conf parancs)

PVM programok használata interaktívan a hpc2005 partíción

A partíció gépeire az rlogin paranccsal be lehet lépni. Ezek a gépek: blade01…blade12. Ott használható a pvm konzol. Időnként a látványosan beragadt taszkokat kilőjük. Természetesen a queue rendszerrel is lehet a hpc2005 partíción pvm programokat futtatni (lásd feljebb) azokat nem lőjük ki.

swquide.1359799633.txt.gz · Utolsó módosítás: 2013/02/02 11:07 szerkesztette: maulis