Módosítások

NIIF szuperszámítógépek használata

1 864 bájt hozzáadva, 2019. október 29., 15:57
a
Köszönetnyilvánítás
== A szuperszámítógépekről ==
Az NIIF Intézet A KIFÜ szuperszámítógép szolgáltatása tudományos számítási feladatok futtatására, valamint tudományos célú adattárolásra szolgál. A jelenleg integrált szuperszámítógép-rendszer komponensei négy helyszínen találhatók:
* Debreceni Egyetem
* NIIFI KIFÜ központ
* Pécsi Tudományegyetem
* Szegedi Tudományegyetem
A tudományos számítási feladatok különböző típusainak minél szélesebb körű lefedettsége érdekében az egyes helyszíneken különböző felépítésű gépek találhatók: egy helyszínen SMP/ccNUMA, három helyszínen pedig "fat-node" fürtözött megoldás. Az alrendszereket az NIIFI a KIFÜ nagy sávszélességű, alacsony késleltetésű HBONE+ adathálózatán keresztül, ARC grid köztesréteg, valamint harmonizált felhasználói azonosítás segítségével integráljuk egységes elvek mentén elérhető számítási egységgé. Az erőforrás jelenleg Magyarország legnagyobb tudományos számítás céljára felhasználható erőforrása, amely összesen 50 billió lebegőpontos művelet elvégzését teszi lehetővé másodpercenként.A szuperszámítógép-rendszert az NIIFI a KIFÜ üzemelteti és fejleszti. A rendszerhez regisztrációt követően, minden olyan személy vagy kutatócsoport hozzáférhet, amely tagintézményi szerződéses kapcsolatban áll az NIIF Intézettela KIFÜ-vel.A gépen megtalálhatók és futtathatók a legkorszerűbb fejlesztőeszközök és tudományos számításra szolgáló alkalmazások, valamint, az NIIF a KIFÜ adatközpontban elhelyezett alrendszer kivételével, valamennyi alrendszer kiegészül a számítási feladatok eredményeit megjelenítő vizualizációs eszközökkel. ==== Magyar Szuperszámítógépek összehasonlítása ==== {| class="wikitable" border="1" |- | Helyszín| Budapest| Szeged| Debrecen| Pécs|- | Típus| HP CP4000BL| HP CP4000BL| SGI ICE8400EX| SGI UV 1000|- | CPU-k / node | 2 | 4 | 2 | 2 |- | Core-ok / CPU | 12| 12| 6| 6|- | Memória / node | 62 GB | 125 GB| 47 GB| 6 TB|- | Memória / core | 2.6 GB | 2.6 GB| 3.5 GB| 5 GB|- | CPU | AMD Opteron 6174 @ 2.2GHz | AMD Opteron 6174 @ 2.2GHz | Intel Xeon X5680 @ 3.33 GHz| Intel Xeon X7542 @ 2.66 GHz|- | Scheduler | [http://slurm.schedmd.com/ SLURM] | [http://slurm.schedmd.com/ SLURM]| [http://slurm.schedmd.com/ SLURM]| [http://slurm.schedmd.com/ SLURM] |- | MPI | OpenMPI (ompi) | OpenMPI (ompi) | SGI MPT (mpt)| SGI MPT (mpt)|}
=== Köszönetnyilvánítás ===
Tudományos publikációkban a következő köszönetnyilvánítást javasoljuk:
'''We acknowledge [PRACE/NIIF] KIFÜ for awarding us access to resource based in Hungary at [Budapest/Debrecen/Pécs/Szeged].'''
Where technical support has been received the following additional text should also be used:
'''The support of [name of person/people] from NIIF InstituteKIFÜ, Hungary to the technical work is gratefully acknowledged.''' == Hozzáférés a szuperszámítógépekhez == A témában több videót is készítettünk, amelyek bemutatják a hozzáférés menetét (kulcsgenerálás és hozzáférés) és a filefeltöltés gyakorlati tutoriál keretében Windows operációs rendszeren. * [http://videotorium.hu/hu/recordings/details/12290,Hozza_fe_re_s_a_HPC-hez_kezdo_le_pe_sek_elo_ada_s_e_s_demo_ Kezdő lépések (videó)] * [http://videotorium.hu/hu/recordings/details/12307,A_HPC_felhaszna_la_s_gyakorlati_le_pe_sei_demo_.mp4 A HPC felhasználás gyakorlati lépései (videó)] A fenti videók tartalmazhatnak elavult információkat pl. az ütemezővel kapcsolatban, a jelenlegi ütemező használatához külön videóanyagot ajánljunk. 
== Hozzáférés a szuperszámítógépekhez ==
A szuperszámítógépekhez kulcsos SSH használatával lehet hozzáférni. Ajánlott UTF-8 képes terminált használ az ékezetes betűk megjeelenítése érdekében. PUTTY terminál esetén a ''Window/Translation'' beállítás alatt a character set-et kell UTF-8-ra állítani.
=== Adatok megosztása projekt tagok számára ===
Fájlok ill. könyvtárak megosztásához használjuk a [http://www.techrepublic.com/blog/linux-and-open-source/learn-to-use-extended-file-attributes-in-linux-to-boost-security/](fájlrendszer ACL-eket). Az ACL-ekkel a hagyományos unix engedélyeken felül finoman szabályozhatjuk a fájlok és könyvtárak hozzáférési engedélyeit. <span style="color:#ce1256"> Kérjük, hogy fokozottan figyeljenek arra, hogy a teljes <code>$HOME</code> könyvtárra sose adjanak "rwx" jogot más felhasználóknak, mivel pl. a <code>.ssh</code> mappa nagyon érzékeny a jogosultságokra, és a rendszer nem fogja beengedni legközelebb a felhasználót!</span> A következő példában a <code>$HOME/Shared</code> könyvtárat osztjuk egy munkatárs számára:
<pre>
# a home könyvtár beállítása
rsync -avuP --delete $HOME/data $NCE_SHARED
</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. A KIFÜ 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 ==
Weboldal:  http://slurm.schedmd.com A SLURM ütemező bemutatása:  * [http://videotorium.hu/hu/recordings/details/6122,A_slurm_HPC_utemezo Slurm HPC ütemező]
A szupergépeken CPU óra (gépidő) alapú ütemezés működik. Ez azt jelenti, hogy a fogyasztási időtartamra (hónap) az elérhető maximális gépidő fel van osztva a felhasználók között. Minden UNIX felhasználó egy vagy több számlához (''Account'') tartozhat. Az ütemező számla egy adott HPC-s projekthez tartozik, hasonló a UNIX csoporthoz. Szupergépes feladatokat csak az egyes számlák terhére lehet indítani. A CPU óra az elhasznált idő (''Walltime'') és az igényelt processzorok számának szorzata. Például a budapesti gépen 2 db node (48 processzor mag) foglalása 30 percre 48 * 30 = 1440 CPU perc = 24 CPU óra. A CPU órát az ütemező a futás kezdetétől a befejezésig méri.
</pre>
==== SGI ccNUMA UV SMP 1000 (Pécs) ====
A pécsi gépen legalább 6 szálon működő jobok futtatása lehetságes. Az egyetlen elfogadott paraméter a szálak szám (`-n`), amelynek 6 többszörösének kell lenni. Ezen a gépen nincs teszt sor. Kérjük, hogy 48-nál kevesebb szálon futó programokat az UV-n ne futtassanak! Egy szálú ill. array jobok futtatása nem lehetséges.
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=2410
</code>
A következő példában egy taskhoz 24 10 CPUcore-t rendeltunk, a 24 10 CPUcore-nak egy node-on kell lennie. A CPUcore-k 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 24 10 szálas OMP alkalmazást.
<pre>
#!/bin/bash
#SBATCH --time=06:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=2410
OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK ./a.out
</pre>
* Egy nagy egységgé kapcsolja össze a szuperszámítógépeket
* Szabványos webservice interfésszel ([https://www.ogf.org/documents/GFD.108.pdf OGSA-BES], [https://www.ogf.org/documents/GFD.114.pdf HPC Basic Profile]) rendelkezik. Ezáltal könnyen lehet integrálni más rendszerekkel
* Nagyon sok operációs rendszert támogat, például Microsoft Windows-t is* A saját számítógépünkről tudjuk kezelni a szuperszámítógépes jobokat
* A [http://pulse.fgi.csc.fi/gridrer/htdocs/index.phtml futás idejű környezetek használatával] a megfelelő módon lefordított alkalmazást tudjuk használni és nem kell észben tartani, hogy éppen melyik szuperszámítógépen van telepítve a program
=== Grid tanúsítvány igénylése ===
Első lépésként szükségünk lesz egy '''Grides X.509 tanúsítványra''', amivel az ARC klienseket használni tudjuk. A [https://portal.hpc.niif.hu HPC portálon] keresztül lehetőségünk van igényelni egy 2 hétig érvényes SLCS tanúsítványt. A személyes adatok menüpontra kell kattintani és az oldal végén lesz az igénylő felület. '''Fontos: legalább egy HPC projekt tagsággal rendelkeznünk kell a HPC portál felületenportálon. ''' Itt található az a letölthető UNIX script is, ami minden szükséges beállítást elvégez a számunkra:
<code>
Az SLCS másik nagy előnye az egyszerűsített igénylésen kívül az, hogy 1 órán belül az összes szuperszámítógépen automatikusan engedélyezve lesz. Viszont ha nem szeretnénk minden második héten új X.509-es tanúsítványt igényelni, akkor lehetőség van arra is, hogy 1 évig érvényes [https://www.igtf.net IGTF] tanúsítványt igényeljünk az NIIF Intézettől a KIFÜ-től [http://www.ca.niif.hu/hu/igenyles ezen az oldal keresztül]. Ebben az esetben a [mailto:hpc-support@niif.hu] címre kell elküldeni elküldenünk az IGTF-es tanúsítványunk publikus részért azértrészét és meg kell adnunk, hogy engedélyezve melyik témaszámunkhoz legyen majd rendelve a szuperszámítógépeken.
=== ARC kliensek használatba vétele ===
==== Telepítés ====
A csomagokat innen csomagok telepítéséhez az itt leírt repo-kat lehet letöltenihasználni: http://download.nordugrid.org/repos-15.03.html'''Fontos''': 5.0-ás ARC verziót telepítsük. Debian alapú rendszerek esetén: apt-get install nordugrid-arc-client
httpRedhat alapú rendszerek esetén://download. yum install nordugrid.org/repos-13.11.htmlarc-client
'''Fontos'''OSX csomag telepítése [http: 5//brew.0sh brew] segítségével: brew install nordugrid-ás verziót használjukarc
Ha nem találtunk megfelelő csomagot, akkor [http://download.nordugrid.org/packages/nordugrid-arc/releases/5.0.0/src/nordugrid-arc-5.0.0.tar.gz innen] le tudjuk tölteni a forráskódját és le tudjuk fordítani.
 
==== Konfigurálás ====
$HOME/.arc/client.conf:
<code>
$ cat .arc/client.conf
[common]
[computing/budapest]
url=https://login.budapest.hpc.niif.hu:60000/arex
infointerface=org.nordugrid.wsrfglue2
submissioninterface=org.ogf.bes
default=yes
defaultservices=[computing:ARC1:https://login.budapest.hpc.niif.hu:60000/arex computing:ARC1:szeged] url=https://login.szeged.hpc.niif.hu:60000/arex computing:ARC1:https://login infointerface=org.pecsnordugrid.hpcwsrfglue2 submissioninterface=org.niifogf.hu:60000/arex computing:ARC1:https://login.debrecen.hpc.niif.hu:60000/arexbes default=yes
[computing/debrecen]
url=https://login.debrecen.hpc.niif.hu:60000/arex
infointerface=org.nordugrid.wsrfglue2
submissioninterface=org.ogf.bes
default=yes
[computing/pecs]
url=https://login.pecs.hpc.niif.hu:60000/arex
infointerface=org.nordugrid.wsrfglue2
submissioninterface=org.ogf.bes
default=yes
# FastestQueue – ranks targets according to their queue length
brokername=FastestQueue
budapest=computing:ARC1:https://login.budapest.hpc.niif.hu:60000/arex
hp=budapest szeged
sgi=pecs debrecen $
</code>
$ cat job.xrsl
&
(executable="matlab.sh") (arguments="matlab.m")
(stdout="stdout.txt")
(stderr="stderr.txt")
("matlab.m" "")
)
(memory>="1000")
(gmlog="gm.log")
(wallTime="240") (runTimeEnvironment="APPS/MATH/MATLAB-7.13")
</code>

Navigációs menü