„Budapest2 klaszter” változatai közötti eltérés
a (→Adatok megosztása projekt tagok számára) |
|||
87. sor: | 87. sor: | ||
rsync -avuP --delete $HOME/DIRECTORY /mnt/fhgfs/home/$USER | rsync -avuP --delete $HOME/DIRECTORY /mnt/fhgfs/home/$USER | ||
</pre> | </pre> | ||
+ | |||
+ | == SLURM ütemező használata == | ||
+ | A szupergépen CPU óra (gépidő) alapú ütemezés működik. A felhasználóhoz tartozó Slurm projektek (Account) állapotáraól a következő parancs ad információt: | ||
+ | <code> | ||
+ | sbalance | ||
+ | </code> | ||
+ | A második oszlopban (Usage) az egyes felhasználók elhasznált gépideje, a negyeik 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ő (Available) gépidőről ad tájékoztatást. | ||
+ | <pre> | ||
+ | Scheduler Account Balance | ||
+ | ---------- ----------- + ---------------- ----------- + ------------- ----------- | ||
+ | User Usage | Account Usage | Account Limit Available (CPU hrs) | ||
+ | ---------- ----------- + ---------------- ----------- + ------------- ----------- | ||
+ | bob * 7 | foobar 7 | 1,000 993 | ||
+ | alice 0 | foobar 7 | 1,000 993 | ||
+ | </pre> | ||
+ | |||
+ | === 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ó: | ||
+ | <code> | ||
+ | sestimate -N NODES -t WALLTIME | ||
+ | </code> | ||
+ | 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. | ||
+ | |||
+ | '''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.''' | ||
+ | |||
+ | === Á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: | ||
+ | <code> | ||
+ | scontrol show job JOBID | ||
+ | </code> | ||
+ | |||
+ | 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: | ||
+ | <code> | ||
+ | sacct -l -j JOBID | ||
+ | </code> | ||
+ | |||
+ | A felhasznált memóriáról a következő parancs ad tájékoztatást: | ||
+ | <code> | ||
+ | smemory JOBID | ||
+ | </code> | ||
+ | |||
+ | A lemezhasználatról pedig a | ||
+ | <code> | ||
+ | sdisk JOBID | ||
+ | </code> | ||
+ | |||
+ | ==== Slurm figyelmeztető üzenetek ==== | ||
+ | <pre> | ||
+ | Resources/AssociationResourceLimit - Erőforrásra vár | ||
+ | AssociationJobLimit - Nincs elég CPU idő vagy a maximális CPU szám le van foglalva | ||
+ | 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. | ||
+ | |||
+ | Az ütemezőben 3 feladat van. Az első egy arrayjob, éppen erőforrásra vár (PENDING). A második egy MPI job, ami 4 node-on fut már 25 perce (TIME). A harmadik egy egy node-os OMP futtatás, éppen most indult el. A feladatik nevei (NAME) egyénileg adható meg. Rövid, informatív neveket érdemes adni. | ||
+ | <pre> | ||
+ | squeue -l | ||
+ | |||
+ | Wed Oct 16 08:30:07 2013 | ||
+ | JOBID PARTITION NAME USER STATE TIME TIMELIMIT NODES NODELIST(REASON) | ||
+ | 591_[1-96] normal array alice PENDING 0:00 30:00 1 (None) | ||
+ | 589 normal mpi bob RUNNING 25:55 2:00:00 4 cn[05-08] | ||
+ | 590 normal omp alice RUNNING 0:25 1:00:00 1 cn09 | ||
+ | </pre> | ||
+ | |||
+ | Ennek a 2 node-os batch jobnak a jellemző memóriaterhelés a következő volt: kb. 10GB virtuális és 6.5GB RSS memóriát használt el node-onként. | ||
+ | <pre> | ||
+ | smemory 430 | ||
+ | |||
+ | MaxVMSize MaxVMSizeNode AveVMSize MaxRSS MaxRSSNode AveRSS | ||
+ | ---------- -------------- ---------- ---------- ---------- ---------- | ||
+ | 10271792K cn06 10271792K 6544524K cn06 6544524K | ||
+ | 10085152K cn07 10085152K 6538492K cn07 6534876K | ||
+ | </pre> | ||
+ | |||
+ | ==== CPU felhasználás ellenőrzése ==== | ||
+ | Nagyon fontos meggyőződni arról, hogy az alkalmazás kihasználja-e a rendelkezésre álló gépidőt. Egy futó alkalmazás a következő paranccsal tudunk monitorozni: | ||
+ | <code> | ||
+ | sjobcheck JOBID | ||
+ | </code> | ||
+ | |||
+ | Ez a job 4 node-on fut. A LOAD csoport a gép általános terheléséről ad információt és kb. a core-ok számával egyezik meg. A helyes felhasználásról a CPU csoport ad tájékoztatást. Ideális esetben a <code>User</code> oszlop értékei 90 fölött vannak. Ez alatt valamilyen probléma lépett fel és a futást érdemes megszakítani. | ||
+ | <pre> | ||
+ | Hostname LOAD CPU Gexec | ||
+ | CPUs (Procs/Total) [ 1, 5, 15min] [ User, Nice, System, Idle, Wio] | ||
+ | cn08 24 ( 25/ 529) [ 24.83, 24.84, 20.98] [ 99.8, 0.0, 0.2, 0.0, 0.0] OFF | ||
+ | cn07 24 ( 25/ 529) [ 24.93, 24.88, 20.98] [ 99.8, 0.0, 0.2, 0.0, 0.0] OFF | ||
+ | cn06 24 ( 25/ 529) [ 25.00, 24.90, 20.97] [ 99.9, 0.0, 0.1, 0.0, 0.0] OFF | ||
+ | cn05 24 ( 25/ 544) [ 25.11, 24.96, 20.97] [ 99.8, 0.0, 0.2, 0.0, 0.0] OFF | ||
+ | </pre> | ||
+ | |||
+ | ==== Licenszek ellenőrzése ==== | ||
+ | Az elérhető és éppen használt licenszekről a következő parancs ad információt: | ||
+ | <code> | ||
+ | slicenses | ||
+ | </code> |
A lap 2015. május 20., 11:46-kori változata
Klaszter | Budapest2 |
Típus | HP |
core / node | 10 × 2 Xeon E5-2680v2 2.80GHz |
GPU / node | 2 × Nvidia K20 |
CN szám | 14 |
Tartalomjegyzék
[elrejtés]Belépés
ssh USER@login.budapest2.hpc.niif.hu
Nem alapértelmezett kulcs használata esetén a -i KULCS
kapcsolóval megadása szükséges (SSH és SCP parancsok).
Fájlok másolása SCP-vel
Letöltés a HOME könyvtárból és feltöltés a HOME könyvtárba:
Fel: scp FILE USER@login.budapest2.hpc.niif.hu:FILE Le : scp USER@login.budapest2.hpc.niif.hu:FILE FILE
Adatszinkronizáció
Nagyobb fájlok ill. könyvtárstruktúrák szinkronizálásához a következő parancsokat kell használni
Fel: rsync -a -e ssh DIRECTORY USER@login.budapes2t.hpc.niif.hu:/home/USER Le : rsync -a -e ssh USER@login.budapest2.hpc.niif.hu:/home/USER/DIRECTORY
A törölt fájlok szinkronizálásához a --delete
opciót kell megadni.
Felhasználói felület
rövid CWD
|
BUDAPEST2[login] ~ (0)$
| | |
HPC állomás | |
rövid gép név |
előző parancs exit kódja
Modul környezet
Az elérhető modulok listáját a következő paranccsal kapjuk meg:
module avail
a már betöltött modulok listáját:
module list
Alkalmazást a következő paranccsal tölthetünk be:
module load APP
A NIIF által beállított környezeti változókat nce
parancs listázza ki.
Adatok megosztása projekt tagok számára
Fájlok ill. könyvtárak megosztásához ACL-eket kell beállítani. A HOME könyvtárat más felhasználó (OTHER) számára olvashatóvá, így tehetjük
setfacl -m u:OTHER:rx $HOME
Addott könyvtárat (DIRECTORY) írahtóvá:
setfacl -m u:OTHER:rxw $HOME/DIRECTORY
A kiterjesztett jogokat a következő paranccsal kérhetjük le:
getfacl $HOME/DIRECTORY
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ó:
/mnt/fhgfs/home/$USER
Biztonsági mentést a közös könyvtárba a következő paranccsal tudunk végezni:
rsync -avuP --delete $HOME/DIRECTORY /mnt/fhgfs/home/$USER
SLURM ütemező használata
A szupergépen CPU óra (gépidő) alapú ütemezés működik. A felhasználóhoz tartozó Slurm projektek (Account) állapotáraól a következő parancs ad információt:
sbalance
A második oszlopban (Usage) az egyes felhasználók elhasznált gépideje, a negyeik 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ő (Available) gépidőről ad tájékoztatást.
Scheduler Account Balance ---------- ----------- + ---------------- ----------- + ------------- ----------- User Usage | Account Usage | Account Limit Available (CPU hrs) ---------- ----------- + ---------------- ----------- + ------------- ----------- bob * 7 | foobar 7 | 1,000 993 alice 0 | foobar 7 | 1,000 993
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ó:
sestimate -N NODES -t WALLTIME
ahol a NODES
a lefoglalni kívánt node-ok száma, a WALLTIME
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 sacct
paranccsal is ellenőrizni.
Állapotinformációk
Az ütemezőben lévő jobokról az squeue
, a klaszter általános állapotáról az sinfo
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:
scontrol show job JOBID
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:
sacct -l -j JOBID
A felhasznált memóriáról a következő parancs ad tájékoztatást:
smemory JOBID
A lemezhasználatról pedig a
sdisk JOBID
Slurm figyelmeztető üzenetek
Resources/AssociationResourceLimit - Erőforrásra vár AssociationJobLimit - Nincs elég CPU idő vagy a maximális CPU szám le van foglalva Piority - Alacsony prioritás miatt várakozik
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.
Az ütemezőben 3 feladat van. Az első egy arrayjob, éppen erőforrásra vár (PENDING). A második egy MPI job, ami 4 node-on fut már 25 perce (TIME). A harmadik egy egy node-os OMP futtatás, éppen most indult el. A feladatik nevei (NAME) egyénileg adható meg. Rövid, informatív neveket érdemes adni.
squeue -l Wed Oct 16 08:30:07 2013 JOBID PARTITION NAME USER STATE TIME TIMELIMIT NODES NODELIST(REASON) 591_[1-96] normal array alice PENDING 0:00 30:00 1 (None) 589 normal mpi bob RUNNING 25:55 2:00:00 4 cn[05-08] 590 normal omp alice RUNNING 0:25 1:00:00 1 cn09
Ennek a 2 node-os batch jobnak a jellemző memóriaterhelés a következő volt: kb. 10GB virtuális és 6.5GB RSS memóriát használt el node-onként.
smemory 430 MaxVMSize MaxVMSizeNode AveVMSize MaxRSS MaxRSSNode AveRSS ---------- -------------- ---------- ---------- ---------- ---------- 10271792K cn06 10271792K 6544524K cn06 6544524K 10085152K cn07 10085152K 6538492K cn07 6534876K
CPU felhasználás ellenőrzése
Nagyon fontos meggyőződni arról, hogy az alkalmazás kihasználja-e a rendelkezésre álló gépidőt. Egy futó alkalmazás a következő paranccsal tudunk monitorozni:
sjobcheck JOBID
Ez a job 4 node-on fut. A LOAD csoport a gép általános terheléséről ad információt és kb. a core-ok számával egyezik meg. A helyes felhasználásról a CPU csoport ad tájékoztatást. Ideális esetben a User
oszlop értékei 90 fölött vannak. Ez alatt valamilyen probléma lépett fel és a futást érdemes megszakítani.
Hostname LOAD CPU Gexec CPUs (Procs/Total) [ 1, 5, 15min] [ User, Nice, System, Idle, Wio] cn08 24 ( 25/ 529) [ 24.83, 24.84, 20.98] [ 99.8, 0.0, 0.2, 0.0, 0.0] OFF cn07 24 ( 25/ 529) [ 24.93, 24.88, 20.98] [ 99.8, 0.0, 0.2, 0.0, 0.0] OFF cn06 24 ( 25/ 529) [ 25.00, 24.90, 20.97] [ 99.9, 0.0, 0.1, 0.0, 0.0] OFF cn05 24 ( 25/ 544) [ 25.11, 24.96, 20.97] [ 99.8, 0.0, 0.2, 0.0, 0.0] OFF
Licenszek ellenőrzése
Az elérhető és éppen használt licenszekről a következő parancs ad információt:
slicenses