Módosítások

Miskolc UV 2000

3 944 bájt törölve, 2022. március 9., 05:32
a
A SLURM leírásban duplán szereplő magas prioritás leírásából az első előfordulás törölve
| SGI UV 2000
|-
| core CPU / node
| 44 × Intel Xeon E5-4627 v2 @ 3.33 GHz
|-
|-
| Max mem / core
| 4000 3750 MB
|}
<pre>
getfacl $HOME/DIRECTORY
</pre>
 
== Közös home könyvtár használata ==
A szuperszámítógépek login gépeit összekötő közös fájlrendszer a következő könyvtár alatt található:
<pre>
/mnt/fhgfs/home/$USER
</pre>
Biztonsági mentést a közös könyvtárba a következő paranccsal tudunk végezni:
<pre>
rsync -avuP --delete $HOME/DIRECTORY /mnt/fhgfs/home/$USER
</pre>
sestimate -c CORES -t WALLTIME
</pre>
ahol a <code>CORES</code> a lefoglalni kívánt core-ok száma, amelynek 8 többszörösének kell lenni. 8 szálhoz core-hoz 30 GByte memória tartozik. Ha több memóriára van szükségünk, akkor meg kell növelni a core-ok számát. A <code>WALLTIME</code> pedig a futás maximális ideje.
'''Fontos, hogy a lefoglalni kívánt gépidőt a lehető legpontosabban adjuk meg, mivel az ütemező ez alapján is rangsorolja a futtatásra váró feladatokat. Általában igaz, hogy a rövidebb job hamarabb sorra kerül. Érdemes minden futás idejét utólag az <code>sacct</code> paranccsal is ellenőrizni.'''
Piority - Alacsony prioritás miatt várakozik
</pre>
Az utóbbi esetben, csökkenteni kell a job által lefoglalni kívánt időt. Egy adott projekt részére maximálisan 512 CPU-n futhatnak jobok egy adott időben.
==== Licenszek ellenőrzése ====
<pre>
sacctmgr show qos
</pre>
===== Magas prioritás =====
A magas prioritású jobok maximum 24 óráig futhatnak, és kétszer gyorsabb időelszámolással rendelkeznek, cserébe az ütemező előreveszi ezeket a feladatokat.
<pre>
#SBATCH --qos=fast
</pre>
ahol az <code>EMAIL</code> az értesítendő emial cím.
==== Tömbfeladatok (arrayjob) OpenMP Példa ====Tömbfeladatokra akkor van szükségünk, egy szálon futó (soros) alkalmazást szeretnénk egyszerre sok példányban (más-más adatokkal) futtatni. A példányok számára az ütemező a <code>SLURM_ARRAY_TASK_ID</code> környezeti változóban tárolja az egyedi azonosítót. Ennek lekérdezésével lehet az arrayjob szálait elkülöníteni. A szálak kimenetei a <code>slurm-SLURM_ARRAY_JOB_ID-SLURM_ARRAY_TASK_ID.out</code> fájlokba íródnak. Az ütemező a feltöltést szoros pakolás szerint végzi. Ebben az esetben is érdemes a processzorszám többszörösének választani a szálak számát. [http://slurm.schedmd.com/job_array.html Bővebb ismertető] 
<pre>
#!/bin/bash
#SBATCH -A ACCOUNTbarfoo#SBATCH --job-name=arrayomp#SBATCH -n 48#SBATCH --time=2403:00:00#SBATCH --array=1-96srun envtesto slurm.shout</pre> ==== Soros (serial) jobok ====Több soros job futtatását a tömbfeladatokhoz hasonlóan kell indítani.<pre>#!opt/nce/bin/bash #SBATCH -A ACCOUNT#SBATCH --job-name=serialnumainfo#SBATCH --timeOMP_NUM_THREADS=24:30:00#SBATCH -n 3#SBATCH --partition=testsrun -n 1 program input1 &srun -n 1 program input2 &srun -n 1 program input3wait$SLURM_NTASKS ./a.out
</pre>
==== IntelMPI feladatok =SGI MPT MPI Példa ===MPI feladatok esetén meg kell adnunk az egy node-on elinduló MPI processzek számát is (<code>#SBATCH --ntasks-per-node=</code>). A leggyakoribb esetben ez az egy node-ban található CPU core-ok száma. A párhuzamos programot az <code>mpirun</code> paranccsal kell indítani.
<pre>
#!/bin/bash
#SBATCH -A ACCOUNT#SBATCH --job-name=mpi#SBATCH -N 2#SBATCH --ntasks-per-node=20#SBATCH --time=12:00:00 mpirun PROGRAM</pre> OpenMPI FAQ: http://www.open-mpi.org/faq ==== OpenMP (OMP) feladatok ====OpenMP párhuzamos alkalmazásokhoz maximum 1 node-ot lehet lefoglalni. Az OMP szálák számát az <code>OMP_NUM_THREADS</code> környezeti változóval kell megadni. A változót vagy az alkamazás elé kell írni (ld. példa), vagy exportálni kell az indító parancs előtt:<code>export OMP_NUM_THREADS=10</code> A következő példában egy taskhoz 10 CPU core-t rendeltunk, a 10 CPU core-nak egy node-on kell lennie. A CPU core-ok számát a <code>SLURM_CPUS_PER_TASK</code> változó tartalmazza, és ez állítja be az OMP szálak számát is. Alice felhasználó a foobar számla terhére, maximum 6 órára indít el egy 10 szálas OMP alkalmazást.<pre>#!/bin/bash#SBATCH -A foobarbarfoo
#SBATCH --job-name=omp
#SBATCH -n 48#SBATCH --time=0603:00:00#SBATCH --ntasks=1o slurm.out#SBATCH --cpus-per-task=10/opt/nce/bin/numainfoOMP_NUM_THREADS=mpirun $SLURM_CPUS_PER_TASK SLURM_NTASKS ./a.out
</pre>
==== Hibrid MPI-OMP feladatok ====
Hibrid MPI-OMP módról akkor beszélünk, ha a párhuzamos alkalmazás MPI-t és OMP-t is használ. Érdemes tudni, hogy az Intel MKL-el linkelt programok MKL hívásai OpenMP képesek. Általában a következő elosztás javasolt: az MPI processzek száma 1-től az egy node-ban található CPU foglalatok száma, az OMP szálak ennek megfelelően az egy node-ban található összes CPU core szám vagy annak fele, negyede (értelem szerűen). A jobszkipthez a fenti két mód paramétereit kombinálni kell.
A következő példában 2 node-ot, és node-onként 1-1 taskot indítunk taskonként 10 szállal. Alice felhasználó a foobar számla terhére, 8 órára, 2 node-ra küldött be egy hibrid jobot. Egy node-on egyszerre csak 1 db MPI processz fut ami node-onként 10 OMP szálat használ. A 2 gépen összesen 2 MPI proceszz és 2 x 10 OMP szál fut.<pre>#!/bin/bash#SBATCH -A foobar#SBATCH --job-name=mpiomp#SBATCH --time=08[[Kategória:00:00#SBATCH -N 2#SBATCH --ntasks=2#SBATCH --ntasks-per-node=1#SBATCH --cpus-per-task=10#SBATCH -o slurm.outexport OMP_NUM_THREADS=$SLURM_CPUS_PER_TASKmpirun ./a.out</pre>HPC]]
1
szerkesztés

Navigációs menü