Felhasználói eszközök

Eszközök a webhelyen


swquide

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalon Előző változat
Következő változat
Előző változat
swquide [2013/02/01 18:28]
dancsa
swquide [2021/03/03 00:06] (aktuális)
maulis 2019 aktualizálás
Sor 1: Sor 1:
 ====Programok futtatása: single task, pthread, OpenMP, MPI, PVM==== ====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 [[slurm|queue rendszer]] ajánlott. A [[hpc2009]] részben a queue rendszer használata kötelező.+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 [[slurm|queue rendszer]] ajánlott. A [[hpc2019]] részben a queue rendszer használata kötelező.
  
-A rendszernek partíciója (része) van: [[headnode|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.+A rendszernek partíciója (része) van: [[loginnode|login]], [[hpc2019]], [[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=== ===Futtatás a queue rendszeren keresztül az adott partíción===
  
-  *''sbatch -p hpc2009 ....'' +  *''sbatch -p hpc2019 ....'' 
-  *''sbatch -p hpc2005 ....'' +  *''sbatch -p flocking ....''
-  *''sbatch -p atlasz ....''+
  
 ===Single task programok futtatása=== ===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.+Az az atlasz tervezési célja a többszálú, MPI programok hatékony futtatásáraAmennyiben mégis 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==+==1 darab egyszálú program indítása a login node-on==
  
 A programot indítsa egy script. Példában a neve ''startscript.sh'' A programot indítsa egy script. Példában a neve ''startscript.sh''
-  sbatch -p atlasz startscript.sh+  sbatch -p login -n 1 startscript.sh
  
-==8 darab egyszálú program indítása valamelyik számoló node-on==+==8 darab egyszálú program indítása egyetlen jobként 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: 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:
Sor 34: Sor 33:
 wait wait
 </file> </file>
-  sbatch -p hpc2009 -B 1:4:1 startscript.sh +  sbatch -p hpc2019 --nodes --ntasks-per-node=8 startscript.sh  
 +==8 darab egyszálú program indítása 8 különböző jobként== 
 + 
 +A programotokat indítsa egy script. Példában az első programot indító script neve ''startscript01.sh'' 
 +  sbatch -p hpc2019 -n 1 startscript01.sh  
 +  sbatch -p hpc2019 -n 1 startscript02.sh  
 +  sbatch -p hpc2019 -n 1 startscript03.sh  
 +  sbatch -p hpc2019 -n 1 startscript04.sh  
 +  sbatch -p hpc2019 -n 1 startscript05.sh  
 +  sbatch -p hpc2019 -n 1 startscript06.sh  
 +  sbatch -p hpc2019 -n 1 startscript07.sh  
 +  sbatch -p hpc2019 -n 1 startscript08.sh 
  
 ===Pthread vagy OpenMP programok futtatása=== ===Pthread vagy OpenMP programok futtatása===
  
 A programot indítsa egy script. Példában a neve ''startscript.sh'' A programot indítsa egy script. Példában a neve ''startscript.sh''
-  sbatch -p hpc2009 -1 startscript.sh +  sbatch -p hpc2019 --nodes --ntasks-per-node=16 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 core = 16 vcore (HyperThreadingtalálható, a hpc2005 partíción 4 core. +Ekkor a queue rendszer lefoglal 1 node-ot (-N) és azon egy példányban elindítja a ''startscript.sh'' programot. A hpc2019 partíción 18 core van. Hyperthread jelenleg nincs. 
-Érdemes automatizmust gyártani, ami megállapítja a CPU (magok) számát+ 
-  *shell: getconf _NPROCESSORS_ONLN +A "--ntasks-per-node" értéket a következő shellváltozó (environment variabletartalmazza: ''SLURM_TASKS_PER_NODE'' 
-  *c: sysconf(_SC_NPROCESSORS_ONLN)+ 
 +Érdemes automatizmust gyártani, ami ennek megfelelően indítja az OpenMP vagy Pthread programot.  
 + 
 +Rengeteg olyan Openmp vagy Pthread programmal találkoztunk, ami 2 hatvány szálon (2,4,8,16gyorsabban futott, mint másképp. Érdemes 18 mag helyett csak 16-ot allokálni, legalább egyszer kipróbálva.
  
 ==Open MPI programok futtatása== ==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: Az indításhoz kell egy wrapper, például startscript.sh. Nézzen így ki:
Sor 56: Sor 68:
  
   * indítás 4 node-on, mindegyiken 8 magon   * indítás 4 node-on, mindegyiken 8 magon
-    * ''sbatch -p hpc2009 -N 4 -B 2:4:1 startscript.sh'' +    * ''sbatch -p hpc2019 --nodes --ntasks-per-node=8 startscript.sh'' 
-  * indítás 4 node-on, mindegyiken 16 szálon (HyperThreading) +  * indítás 4 node-on, mindegyiken 16 szálon 
-    * ''sbatch -p hpc2009 -N 4 -B 2:4:2 -startscript.sh''+    * ''sbatch -p hpc2019 --nodes 4 --ntasks-per-node=16  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.+Javasoljuk tesztelésképpen kipróbálni, hogy a ''--ntasks-per-node=16'' vagy a ''--ntasks-per-node=18'' 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.+Amenmyiben az alkalmazás magonként több mint 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 további paramétereket adni a sbatch parancsnak:
  
-  * indítás 4 node-onmindegyiken 2 magon +  * indítás 64 szálonde mindegyikhez 6 GB memória 
-    * ''sbatch -p hpc2009 -N 4 -B 2:1:1 startscript.sh''+    * ''sbatch -p hpc2019 -n 64 --mem-per-cpu=6G 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 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== ==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: Az indításhoz kell egy wrapper, például ''startscript.sh''. Nézzen így ki:
 <file bash startscript.sh> <file bash startscript.sh>
Sor 84: Sor 89:
 pvmrun /teljes/utvonal/programname pvmrun /teljes/utvonal/programname
 </file> </file>
-  *indítás 4 node-on, HyperThreading on: +  *Például indítás 4 node-on. 
-    * ''sbatch -p hpc2009 -N 4 -B 2:4:2 -O startscript.sh''+    * ''sbatch -p hpc2019 --nodes 4 -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 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.
Sor 91: Sor 96:
 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)  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.1359739704.txt.gz · Utolsó módosítás: 2013/02/01 18:28 szerkesztette: dancsa