Módosítások

Debrecen2 GPU klaszter

4 931 bájt hozzáadva, 2018. március 12., 13:03
nincs szerkesztési összefoglaló
|-
| Típus
| HPSL250s
|-
| core / node
| 10 8 × 2 Xeon E5-2680v2 2650v2 2.80GHz 60GHz
|-
| GPU / node
| 2 × 68 * 3 Nvidia K20 K20x + 16 * 3 Nvidia K40x
|-
| Compute node-ok
| 88 84 db
|-
| Max Walltime
| 7-00:00:00
|-
| Max szálakcore-ok / projekt| 140 (7db node)336|-| Max mem / core| 7000 MB
|}
 
 
=== CPU idő kérés ===
 
 
{{ATTENTION|A CPU idő igénylésekor egy olyan rövid indoklást várunk a HPC projekt vezetőktől, amiből kiderül, hogy a futtatandó alkalmazás képes GPU-t használni (ez alól kivétel, ha a felhasználás célja a gépen elérhető licenszelt szoftver használata, amennyiben az nem képes GPU-t használni (pl. Gaussian, Maple)). Erre azért van szükség, mert az erőforrás teljesítményének nagyobbik része GPU gyorsításból származik, egy gyorsítás nélküli program a CPU-kat lefoglalja, korlátozva ezzel a GPU-k használatát, ami kihasználatlansághoz vezet. Az NVidia [http://www.nvidia.com/object/gpu-applications.html közzétett egy listát] arról, hogy melyik alkalmazás rendelkezik jelenleg hivatalosan NVidia GPU támogatással, de természetesen egyéb, GPU-t használó program is nagy valószínűséggel jól fut a gépen.
 
* A GPU programozás iránt érdeklődőknek tartottunk egy workshopot, amelynek video anyagai elérhetőek itt: [http://videotorium.hu/hu/events/details/1864,GPU_programozas_workshop GPU programozás workshop (videotorium)]
 
}}
=== Belépés ===
rövid CWD
|
LEODEBRECEN2[login] ~ (0)$
| | |
HPC állomás | |
rsync -avuP --delete $HOME/DIRECTORY /mnt/fhgfs/home/$USER
</pre>
 
== Alkalmazások lefordítása ==
 
Mindenkitől azt kérjük, hogy először próbálja meg saját maga lefordítani az alkalmazását. Ha ez valamilyen oknál fogva mégsem sikerülne, akkor következő lépésként a magyarországi szuperszámítógép felhasználóktól érdemes kérdezni, mert nagy esély van rá hogy mások is belefutottak ugyanabba a problémába. Ezen a címen lehet őket elérni: <code>hpc-forum kukac listserv.niif.hu</code>. Feliratkozni [https://listserv.niif.hu/mailman/listinfo/hpc-forum itt lehet erre] a levelezőlistára. Az archívumban is érdemes utánanézni a kérdésnek. Az NIIF HPC support csak igen korlátozottan képes egyéni fordítási kérésekkel foglalkozni, de problémával felkeresheti a <code>hpc-support kukac niif.hu</code> címet. Az utóbbi esetben pár napos türelmüket mindenképp kérjük válaszunkig.
== SLURM ütemező használata ==
A szupergépen szuperszámítógépen CPU óra (gépidő) alapú ütemezés működik. A felhasználóhoz tartozó Slurm projektek (Account) állapotáraól állapotáról a következő parancs ad információt:
<pre>
sbalance
</pre>
A második oszlopban (Usage) az egyes felhasználók elhasznált gépideje, a negyeik negyedik oszlopban pedig a számla összesített gépideje látható. Az utolsó két oszlop a maximális (Account Limit) és a még alérhető elérhető (Available) gépidőről ad tájékoztatást.
<pre>
Scheduler Account Balance
Piority - Alacsony prioritás miatt várakozik
</pre>
Az utóbbi esetben, csőkkenteni 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 ====
#SBATCH --gres=gpu:N
</pre>
Az <code>N</code> a GPU-k/node számát adja meg, ami 1 , 2 és 2 3 lehet maximum. ==== Interaktív használat ====Rövid interaktív feladatokat az 'srun' paranccsal tudunk beküldeni, pl.:<pre>srun -l -n 1 -t TIME --gres=gpu:1 -A ACCOUNT APP</pre>
==== JobBatch job-ok indítása ====
A jobok feladását a következő parancs végzi:
<pre>
==== Feladat sorok ====
A szupergépeken szupergépen két, egymást nem átfedő, sor (partíció) áll rendelkezésre, a <code>testprod-gpu-k40</code> sor és a <code>prod-gpu-k20</code> sor. Utóbbi az Mind a kettő éles számolásokra való, előbbi fejlesztés és tesztelés céljára használható. A teszt sorban összesen 1 nodeaz első olyan CN gépeket tartalmaz amikben Nvidia K40x GPU-otk, maximum fél órára lehet lefoglalnia másodikban pedig Nvidia K20x GPU-k vannak. Az alapértelmezett sor a <code>prod-gpu-k20</code>. A teszt prod-gpu-k40 partíciót a következő direktívával lehet kiválasztani:
<pre>
#SBATCH --partition=testprod-gpu-k40
</pre>
A teszt partícióban 1 GPU található (<code>--gres=gpu:1</code>)
==== A szolgáltatás minősége (QOS) ====
#SBATCH --mem-per-cpu=MEMORY
</pre>
ahol <code>MEMORY</code> MB egységben van megadva. Budapesten és Szegeden a A maximális memória/core 3000 7800 MBlehet.
==== Email értesítés ====
#SBATCH --array=1-96
srun envtest.sh
</pre>
 
==== Soros (serial) jobok ====
Több soros job futtatását a tömbfeladatokhoz hasonlóan kell indítani.
<pre>
#!/bin/bash
 
#SBATCH -A ACCOUNT
#SBATCH --job-name=serial
#SBATCH --time=24:30:00
#SBATCH -n 3
#SBATCH --partition=test
srun -n 1 program input1 &
srun -n 1 program input2 &
srun -n 1 program input3
wait
</pre>
#SBATCH --job-name=mpi
#SBATCH -N 2
#SBATCH --ntasks-per-node=208
#SBATCH --time=12:00:00
mpirun --report-pid ${TMPDIR}/mpirun.pid 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=8
</code>
 
A következő példában egy taskhoz 8 CPU core-t rendeltunk, a 8 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 8 szálas OMP alkalmazást.
<pre>
#!/bin/bash
#SBATCH -A foobar
#SBATCH --job-name=omp
#SBATCH --time=06:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK ./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 8 OMP szálat használ. A 2 gépen összesen 2 MPI proceszz és 2 x 8 OMP szál fut.
<pre>
#!/bin/bash
#SBATCH -A foobar
#SBATCH --job-name=mpiomp
#SBATCH --time=08:00:00
#SBATCH -N 2
#SBATCH --ntasks=2
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=8
#SBATCH -o slurm.out
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
mpirun ./a.out
</pre>
 
==== Maple Grid feladatok ====
Maple-t az OMP feladatokhoz hasonlóan 1 node-on lehet futtatni. Használatához be kell tölteni a maple modult is. A Maple kliens-szerver üzemmódban működik ezért a Maple feladat futtatása előtt szükség van a grid szerver elindítására is (<code>${MAPLE}/toolbox/Grid/bin/startserver</code>). Ez az alkalmazás licensz köteles, amit a jobszkriptben meg kell adni (<code>#SBATCH --licenses=maplegrid:1</code>). A Maple feladat indátását a <code>${MAPLE}/toolbox/Grid/bin/joblauncher</code> paranccsal kell elvégezni.
 
Alice felhasználó a foobar számla terhére, 6 órára indítja el a Maple Grid alkalmazást:
<pre>
#!/bin/bash
#SBATCH -A foobar
#SBATCH --job-name=maple
#SBATCH -N 1
#SBATCH --ntasks-per-node=16
#SBATCH --time=06:00:00
#SBATCH -o slurm.out
#SBATCH --licenses=maplegrid:1
 
module load maple
 
${MAPLE}/toolbox/Grid/bin/startserver
${MAPLE}/toolbox/Grid/bin/joblauncher ${MAPLE}/toolbox/Grid/samples/Simple.mpl
</pre>
 
 
[[Kategória: HPC]]

Navigációs menü