Módosítások

Budapest2 klaszter

3 922 bájt hozzáadva, 2017. március 15., 12:33
a
nincs szerkesztési összefoglaló
|-
| Típus
| HPSL250s
|-
| core / node
| 10 × 2 Xeon E5-2680v2 2.80GHz
|-
| GPU Intel Xeon Phi / node| 2 × Nvidia K20 Intel(R) Xeon Phi(TM) MIC SE10/7120P
|-
| CN számCompute node-ok| 14db|-| Max Walltime| 7-00:00:00|-| Max core-ok / projekt| 140 (7db node)|-| Max mem / core| 3000 MB
|}
== Felhasználói felület ==
<codepre>
rövid CWD
|
rövid gép név |
előző parancs exit kódja
</codepre>
=== Modul környezet ===
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.
 
== Intel Xeon Phi használata ==
 
* [[Intel_Xeon_Phi |Részletes]] használati és alkalmazás optimalizációs leírás
* [http://software.intel.com/en-us/mic-developer Itt] található az Intel hivatalos dokumentációja ezzel kapcsolatban
* [https://software.intel.com/en-us/xeonphionlinecatalog Itt] található az Intel által hivatalosan támogatott alkalmazások listája
* [http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor Itt] tájékozódhatnak az Intel matematikai könyvtárainak a linkeléséről
== 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:<codepre>
sbalance
</codepre>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
=== A gépidő becslése ===
Nagyüzemi (production) futtatások előtt gépidőbecslést érdemes végezni. Ehhez a következő parancs használható:
<codepre>
sestimate -N NODES -t WALLTIME
</codepre>
ahol a <code>NODES</code> a lefoglalni kívánt node-ok száma, a <code>WALLTIME</code> pedig a futás maximális ideje.
=== Állapotinformációk ===
Az ütemezőben lévő jobokról az <code>squeue</code>, a klaszter általános állapotáról az <code>sinfo</code> parancs ad tájékoztatást. Minden beküldött jobhoz egy egyedi azonosítószám (JOBID) rendelődik. Ennek ismeretében további információkat kérhetünk. Feladott vagy már futó job jellemzői:
<codepre>
scontrol show job JOBID
</codepre>
Minden job egy ún. számlázási adatbázisba (accounting) is bekerül. Ebből az adatbázisból visszakereshetők a lefuttatott feladatok jellemzői és erőforrás-felhasználás statisztikái. A részletes statisztikát a következő paranccsal tudjuk megnézni:
<codepre>
sacct -l -j JOBID
</codepre>
A felhasznált memóriáról a következő parancs ad tájékoztatást:
<codepre>
smemory JOBID
</codepre>
A lemezhasználatról pedig a
<codepre>
sdisk JOBID
</codepre>
==== Slurm figyelmeztető üzenetek ====
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 ====
Az elérhető és éppen használt licenszekről a következő parancs ad információt:
<codepre>
slicenses
</codepre>
==== Karbantartás ellenőrzése ====
A karbantartási időablakban az ütemező nem indít új jobokat, de beküldeni lehet. A karbantartások időpontjairól a következő parancs ad tájékoztatást:
<codepre>
sreservations
</codepre>
==== Összesített felhasználás ====
Egy hónapra visszamenőleg az elfogyasztott CPU perceket a következő paranccsal kérhetjük le:
<codepre>
susage
</codepre>
==== Teljes fogyasztás ====
Ha szeretnénk tájékozódni arról, hogy egy bizony idő óta mennyi a CPU idő felhasználásunk akkor azt ezzel paranccsal tudjuk lekérdezni:
<codepre>
sreport -t Hours Cluster AccountUtilizationByUser Accounts=ACCOUNT Start=2015-01-01
</codepre>
=== Feladatok futtatása ===
#SBATCH --job-name=NAME
#SBATCH --time=TIME
#SBTACH --gres=gpu:N
</pre>
ahol az <code>ACCOUNT</code> a terhelendő számla neve (elérhető számláinkről az <code>sbalance</code> parancs ad felvilágosítást), a <code>NAME</code> a job rövid neve, a <code>TIME</code> pedig a maximális walltime idő (<code>DD-HH:MM:SS</code>). A következő időformátumok használhatók:
"minutes", "minutes:seconds", "hours:minutes:seconds", "days-hours", "days-hours:minutes" és "days-hours:minutes:seconds".
==== Intel Xeon Phi-k lefoglalása ====A Intel Xeon Phi-k lefoglalása a következő direktívával történik:<pre>#SBATCH --gres=mic:N</pre>Az <code>N</code> a GPUaz Intel Xeon Phi-k/node számát adja meg, ami 1 és 2 lehet maximum.
==== Job-ok indítása ====
A jobok feladását a következő parancs végzi:
<codepre>
sbatch slurm.sh
</codepre>
Sikeres feladás esetén a következő kimenetet kapjuk:
A feladat leállítását a következő parancs végzi:
<codepre>
scancel JOBID
</codepre>
==== Nem újrainduló jobok ====
#SBATCH --partition=test
</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 MBlehetAmennyiben a szálaknak 4GB-nál több virtuális memóriára van szükségük, akkor az indítandó program elé a következő parancsot is el kell helyezni:<pre>ulimit -v unlimited</pre>
==== Email értesítés ====
#!/bin/bash
#SBATCH -A ACCOUNT
 
#SBATCH --job-name=array
#SBATCH --time=24:00:00
</pre>
==== OpenMPI IntelMPI feladatok ====
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>
#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 foobar
#SBATCH --job-name=omp
#SBATCH --time=06:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=10
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 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:00:00
#SBATCH -N 2
#SBATCH --ntasks=2
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=10
#SBATCH -o slurm.out
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
mpirun ./a.out
</pre>
 
 
[[Kategória: HPC]]

Navigációs menü